如何将语句块中定义的Cursor返回出来! 前台传一个似类于"declare ... begin ... end;"其中定义了一个cursor,并在begin中打开了这个cursor..我想将这个cursor返回出来..怎么搞..有办法吗..(不用存储过程.原谅我的这个怪情况)! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL> variable cur1 refcursor;SQL> declare 2 begin 3 open :cur1 for select c1 from pp_test where rownum=1; 4 end; 5 /PL/SQL 过程已成功完成。SQL> print :cur1;C1----------------------------------------------------------------------912211213SQL>不知道上面这样是不是你想要的! 记不清了,好像是variable rtn_c REFCURSOR;beginopen :rtn_c for select to_number(to_char(sysdate,'day')) from dual;end;/ 我想把下句SQL中的curRecordType返回出来!行吗..不要放在存储过程里!DECLARE intResult INTEGER; strSQL varchar2(8000); curRecordType UserPackage.MyRecordType; CustomOutput1 INTEGER; CustomOutput2 INTEGER; CustomOutput3 INTEGER; CustomOutput4 INTEGER;BEGIN intResult := 0; strSQL := ''; CustomOutput1:=0; CustomOutput2:=0; CustomOutput3:=0; CustomOutput4:=0; /*被省略的代码*/ strSQL := 'SELECT ' || intResult || ' AS Result ,' || CustomOutput1 || ' AS CustomOutput1, ' || CustomOutput2 || ' AS CustomOutput2, ' || CustomOutput3 || ' AS CustomOutput3, ' || CustomOutput4 || ' AS CustomOutput4 FROM tblSprocResult WHERE ROWNUM = 1 '; OPEN curRecordType FOR strSQL; dbms_output.put_line(strSQL);EXCEPTION WHEN OTHERS THEN intResult := -1; strSQL := 'SELECT ' || intResult || ' AS Result ,' || CustomOutput1 || ' AS CustomOutput1, ' || CustomOutput2 || ' AS CustomOutput2, ' || CustomOutput3 || ' AS CustomOutput3, ' || CustomOutput4 || ' AS CustomOutput4 FROM tblSprocResult WHERE ROWNUM = 1 '; OPEN curRecordType FOR strSQL; ROLLBACK;END; 重做日志文件切换的方法 一个表如何主键关联自己表的外键 关于自连接的 ora-01031:insufficient privileger 大数据量表查询语句order by 效率问题 如何建立与oracle数据库的连接 C1F18748797132CFA4F9E7A65464424B问题 如何把用户方案导出为SQL语句 oracle全文索引为什么不对?请教原因 请教,怎么一次给数据表里面插入多行记录? ORACLE在WIN2000上安装时出错,请高手帮忙啦。 根据现有字段select出新字段问题~,颇实用的,但是想不出哈哈~ 十万火急!!!occi 操作数据表问题!!
SQL> variable cur1 refcursor;
SQL> declare
2 begin
3 open :cur1 for select c1 from pp_test where rownum=1;
4 end;
5 /PL/SQL 过程已成功完成。SQL> print :cur1;C1
----------------------------------------------------------------------
912211213SQL>不知道上面这样是不是你想要的!
variable rtn_c REFCURSOR;
begin
open :rtn_c for select to_number(to_char(sysdate,'day')) from dual;
end;
/
行吗..不要放在存储过程里!DECLARE
intResult INTEGER;
strSQL varchar2(8000);
curRecordType UserPackage.MyRecordType;
CustomOutput1 INTEGER;
CustomOutput2 INTEGER;
CustomOutput3 INTEGER;
CustomOutput4 INTEGER;BEGIN
intResult := 0;
strSQL := '';
CustomOutput1:=0;
CustomOutput2:=0;
CustomOutput3:=0;
CustomOutput4:=0;
/*被省略的代码*/ strSQL := 'SELECT ' || intResult || ' AS Result ,' || CustomOutput1 || ' AS CustomOutput1, ' || CustomOutput2 || ' AS CustomOutput2, ' || CustomOutput3 || ' AS CustomOutput3, ' || CustomOutput4 || ' AS CustomOutput4 FROM tblSprocResult WHERE ROWNUM = 1 ';
OPEN curRecordType FOR strSQL;
dbms_output.put_line(strSQL);EXCEPTION
WHEN OTHERS THEN
intResult := -1;
strSQL := 'SELECT ' || intResult || ' AS Result ,' || CustomOutput1 || ' AS CustomOutput1, ' || CustomOutput2 || ' AS CustomOutput2, ' || CustomOutput3 || ' AS CustomOutput3, ' || CustomOutput4 || ' AS CustomOutput4 FROM tblSprocResult WHERE ROWNUM = 1 ';
OPEN curRecordType FOR strSQL;
ROLLBACK;END;