最近参与一个数据库迁移的项目,碰到一个变态的问题。
在oracle下,
通常我们从存储过程里返回结果集到调用程序是使用cursor。
例如open mycur for select * from table1;如果sql语句是动态的怎么办呢?open mycur for execute immediate 'select * from table1'; ????
编译通不过。晕倒。请教如何返回动态语句产生的结果集??
在oracle下,
通常我们从存储过程里返回结果集到调用程序是使用cursor。
例如open mycur for select * from table1;如果sql语句是动态的怎么办呢?open mycur for execute immediate 'select * from table1'; ????
编译通不过。晕倒。请教如何返回动态语句产生的结果集??
解决方案 »
- Oracle 数据导出导入问题
- 哪个有 <<Oracle数据库性能优化>> 的电子版哈 谢谢了
- 在插有网线的情况下怎么样链接Oracle数据库??
- ORA-01461: can bind a LONG value only for insert into a LONG column
- 请进-如何完成这个恢复
- 各位大侠,哈哈,来吧,
- 将SQL-Server存储过程转换为Oracle的,谢谢大家~~~(4)
- 求UNIX环境下的oracle8数据库系统管理书籍或教程......
- 请问:一个数据库自动上传数据到一个远端的数据库,能采用什么方法?
- plsql 多表连接更新如何写,大神帮帮忙
- 请问如何在db启动时自动启动SUPPLEMENTAL LOG?
- 请问如何使用sql*loader加载指定行的记录?
可以这样试试吧!!
DECLARE STR VARCHAR2(500)
STR:='SELECT * FROM TABLEL';
EXECUTE IMMEDIATE ' OPEN MYCUR FOR '||STR;
TYPE refcurtyp IS REF CURSOR;
c refcurtyp;
begin
open c for 'select * from table1';
loop
fetch c into .....;
exit when c%notfound;
.....
end loop;