一直以为在存储过程里面只能通过execute immediate 动态执行SQL语句,没想到朋友今天发来一段代码:
CREATE
OR
REPLACE
PACKAGE pkg_test
AS
TYPE myrctype
IS
REF
CURSOR
;
PROCEDURE
get (p_rc OUT myrctype);
END
pkg_test;
/
CREATE
OR
REPLACE
PACKAGE BODY pkg_test
AS
PROCEDURE
get ( p_rc OUT myrctype)
IS
sqlstr
VARCHAR2
(
500
);
BEGIN
sqlstr :
=
'
select * from a_table
'
;
OPEN
p_rc
FOR
sqlstr;
END
get;
END
pkg_test;
我笑,我说这样的异想天开是不行的,连ORACLE的参考书上都没说可以这样用。
结果,自己运行了一下代码,居然可以正常工作。
开来得好好嘲笑一下自己了!
嗯,所以…………记下来,谦虚点认真学ORACLE。
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
结果,自己运行了一下代码,居然可以正常工作。
开来得好好嘲笑一下自己了!
嗯,所以…………记下来,谦虚点认真学ORACLE。