cuitongrui 发表于 2016-12-20 18:54:21

存储过程中动态sql语句

老师,您好,我想在存储过程中实现动态SQL,并且里面包括多个sql语句,应该如何表达,我的语句如下,提示如下错误信息
ORA-01920用户名ctr6与另外一个用户名或角色名发生冲突
ORA-06512在ctr.test_count,line 10
ORA-06512在line3
查看错误堆栈的程序源?

语句:
create or replace procedure test_count
as
v_proc_name varchar2(50);
v_step      varchar2(300);
v_sql       varchar2(4000);
begin
v_proc_name:='test_count';
v_step:='插入表并授权DBA';
v_sql:='create user ctr6 identified by ctr6';
execute immediate v_sql;
v_sql:='grant dba to ctr6';
execute immediate v_sql;
commit;
end test_count;

syg5434 发表于 2016-12-21 15:45:36

1、ORA-01920就是在执行第一条v_sql的时候报错的,是不是ctr6用户已经存在?
2、动态sql可以通过定义变量,拼接sql的方法。

csggapds 发表于 2017-9-13 09:58:48

谢谢楼主 ,收下了
页: [1]
查看完整版本: 存储过程中动态sql语句