存储过程中动态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;
标签: 暂无标签
cuitongrui

写了 2 篇文章,拥有财富 53,被 2 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2016-12-21 15:45:36
1、ORA-01920就是在执行第一条v_sql的时候报错的,是不是ctr6用户已经存在?
2、动态sql可以通过定义变量,拼接sql的方法。
回复

使用道具

P4 | 发表于 2017-9-13 09:58:48
谢谢楼主 ,收下了
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈