STR VARCHAR2(100);
BEGIN
STR:='OPEN CUR_A FOR SELECT * FROM '||T_TBNAME;
execute immediate STR;
...
你这样试一下吧,我没试过,把结果告诉我
BEGIN
STR:='OPEN CUR_A FOR SELECT * FROM '||T_TBNAME;
execute immediate STR;
...
你这样试一下吧,我没试过,把结果告诉我
解决方案 »
- oracle job调用存储过程插入数据比手动执行插入的数据要少很多
- sql 执行计划 view是什么意思啊
- SQL语句
- Oracle问题 ,我都搞了三天了,帮个忙吧
- 安装完oracle 10G进入sqlplus
- 这句sql怎么实现
- 一个是oracle数据库,一个是sysbase数据库,想要互想访问交换数据,有修改数据的可能,怎么办了?
- ORA-03001: 未执行的特性 帮忙看看,搞了半天没搞明白.
- 看书时,看到一个不理解的地方!请指教!
- 看看这句话是啥意思?
- oracle里面Create Table,index ,trigger等与create any tables,indexs,triggers等有什么区别呢?
- 百分问题紧急:oracle数据库安装字符集设置问题,请教大家?????????????
type curtype is fet cursor;
emp_cv curtype;
my_sql number:=1000;
...begin
open emp_cv for 'select ename,sal from emp where sal>:s' using my_sql;
...
end;
好像ref cursor也可以实现动态sql的功能。
DECLARE
sql_stmt VARCHAR2(200);
my_empno NUMBER(4) := 7902;
my_ename VARCHAR2(10);
my_job VARCHAR2(9);
my_sal NUMBER(7,2) := 3250.00;
BEGIN
sql_stmt := 'UPDATE emp SET sal = :1 WHERE empno = :2
RETURNING ename, job INTO :3, :4'; /* Bind returned values through USING clause. */
EXECUTE IMMEDIATE sql_stmt
USING my_sal, my_empno, OUT my_ename, OUT my_job; /* Bind returned values through RETURNING INTO clause. */
EXECUTE IMMEDIATE sql_stmt
USING my_sal, my_empno RETURNING INTO my_ename, my_job;
...
END;DECLARE
TYPE EmpCurTyp IS REF CURSOR; -- define weak REF CURSOR type
emp_cv EmpCurTyp; -- declare cursor variable
my_ename VARCHAR2(15);
my_sal NUMBER := 1000;
BEGIN
OPEN emp_cv FOR -- open cursor variable
'SELECT ename, sal FROM emp WHERE sal > :s' USING my_sal;
...
END;
Create or Replace Package pk_test as
type t_cur is ref cursor ;
function GetData(Sql varchar2) return t_cur;
end pk_test;
Create or Replace Package Body pk_tst as function GetData(Sql varchar2) return t_cur
as rs t_cur;
begin
open cursor for sql ;
return cursor;
Exception
when othrs then
return rs;
end ;
end pk_test;