mdsk.net
当前位置:首页 >> orAClE数据库,sql语句保存在A表B字段中,现需执行B... >>

orAClE数据库,sql语句保存在A表B字段中,现需执行B...

你是想将B字段中所有SQL的结果合并吧? 如果保存的是SQL,那么只能用游标一条条执行,将结果统一放到一个表中后,再查询出来。

set feedback off heading off term off set pages 0 trim on trims on lines 32767 long 999999 set echo off spool result.sql Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0; spool off 把以上...

oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方。 例如左外连接: select A.a,B.a from A LEFT JOIN B ON A.b=B.b; 等价于 select A.a,B.a from A,B where A.b = B.b(+); 再举个例子,这次是右外连接: select A....

update a set a.name=b.name from a,b where a.ID=b.ID 不是主键也无所谓的,进行多次更新而已

这个的话,需要用到not in来实现。 select * from A where a not in ( select b from B); 备注:以上语句就是从B表中先读取出来所有的b的值,之后通过not in函数进行判断,不符合条件的输出结果。

insert into 表名B(主键字段) value (select 主键字段 from 表名A where 插入数据的特征字段=XXX) 如果需要同步执行,建议你写存储过程或者触发器 当A表有更新就触发或者调用存储过程 执行2段SQL

把string split构成一个虚拟表 提示:用正则表达式 + connect by递归 + regexp_substr 或者 substr / instr 用这个虚拟表与原表进行关联

1.如果都是数字类型的直接把这两个字段相加 select a+b as ab from S ; 或者你的意思是 select sum(a+b) from S; 2.如果是不同的字段类型就不能求和了,但是可以使用“||”或者CONCAT()函数 2.1 select a||b from S; 2.2 select concat(a,b) from S;

数据库中用=或者时是忽略空值的,空值只能通过B is null 或者B is not null设置条件

declarev_sql varchar(2000);cur ref_cursor;beginselect addr into v_sql from t;dbms_output.put_line(v_sql);open cur for v_sql ;--下面你对结果怎么操作你自己发挥了END;

网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com