Oracle   发布时间:2022-05-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Oracle PLSQL – 在不存在的表上声明游标大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在不存在的表上声明游标.当然,我的程序没有编译.

此表是临时表,由预处理创建.它将存在于运行时,但在编译时它是另一个故事.@H_696_2@

对于我选择/更新其他DML操作,我已经使用过了@H_696_2@

从tmp_table’执行IMMEDIATE’操作’@H_696_2@

我找不到游标的解决方法.@H_696_2@

有办法吗?@H_696_2@

基本上,我希望这个编译@H_696_2@

drop table test;

/*from this on should compile*/
DECLARE
cursor c is SELEct * FROM test;

BEGIN
  for reg in c LOOP
  /*...*/
  END LOOP;
END;

更新@H_696_2@

到目前为止还没有编译:@H_696_2@

sql> declare
  2  c sys_refcursor;
  3  BEGIN
  4  open c for 'SELEct * from pepito'; -- 'pepito' does not exist
  5  close c;
  6  end;
  7  /
declare
*
ERROR at line 1:
ORA-00942: table or vIEw does not exist
ORA-06512: at line 4

应该使用CREATE PROCEDURE,谢谢.@H_696_2@

提前致谢.@H_696_2@

您应该能够像这样定义光标:
DECLARE
  c SYS_REFcursOR;
BEGIN
  OPEN c FOR 'SELECT * FROM dual';
  CLOSE c;
END;

你也可以绑定参数:@H_696_2@

OPEN c FOR 'SELECT * FROM dual WHERE DUMMY = :1' USING 'X';

有关详细信息,请参阅OPEN-FOR Statement的Oracle文档.@H_696_2@

使用存储过程的示例@H_696_2@

CREATE OR replaCE PROCEDURE test IS
  c SYS_REFcursOR;
BEGIN
  OPEN c FOR 'SELECT * FROM fdfdfdfdfd';
  CLOSE c;
END;
/

大佬总结

以上是大佬教程为你收集整理的Oracle PLSQL – 在不存在的表上声明游标全部内容,希望文章能够帮你解决Oracle PLSQL – 在不存在的表上声明游标所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: