Sign-up....

可否动态执行存储过程

有没有可以动态执行存储过程,就象动态执行sql语句:

如 execute immediate "select * from a where b=:str"

是否有这样的语句:

ProName:='usp_getModlue';

execute immediate ProName || '(:str1,str2)'

敬请指教

[181 byte] By [msdn] at [2007-8-14 15:34:42]
# 1 Re: 可否动态执行存储过程

当然可以啦

caral525 at 2004-8-5 19:14:56 >
# 2 Re: 可否动态执行存储过程

可以.,

...

sql_stmt := 'SELECT * FROM emp WHERE empno = :id';

EXECUTE IMMEDIATE sql_stmt INTO emp_rec USING emp_id;

这个很好用.

dinya2003 at 2004-8-6 8:23:10 >
# 3 Re: 可否动态执行存储过程

动态sql语句分为dbms_sql包和本地动态sql,dbms_sql应用范围更广一些,建议楼主找本书看看,俺觉得<oracle专家高级编程>中讲得就不错

zhwind at 2004-8-6 11:08:04 >
# 4 Re: 可否动态执行存储过程

动态语句我是知道的,但我想要动态执行过程啊,在Oracle8i中的!

jxwch at 2004-8-9 8:39:15 >
# 5 Re: 可否动态执行存储过程

其实不就是创建一个带参数的存储过程嘛

也可以动态生成SQL语句

yown at 2004-8-9 14:02:54 >
# 6 Re: 可否动态执行存储过程

baojianjun(包子) 说的对,有版本问题

ineedtostudy at 2004-8-9 16:03:24 >
# 7 Re: 可否动态执行存储过程

应该是可以了,测试是可以的,不过好像不能动态传第out参数.等有时间再试吧

另外在字符连接中单引号是如何连接的 ||' ?

jxwch at 2004-8-9 20:48:22 >

Oracle

All Classified