为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】:8 【操作系统】:win10 64 【CPU】: 【问题描述】*:存储过程中-拼接出来的COMMENT语句无法执行,但是打印出来之后单独开个窗口可以执行成功
(按照存储过程的逻辑,此处也应该打印出多个年表的注释语句,但此处只打印了第一个,说明执行第一个表的注释语句的时候就出错了,导致提前结束了进程)
确认了下,这样拼接不行,每次只能执行一条以分号结尾的sql语句; 如果想多条语句一起执行,可以参考以下demo: –创建测试表test create table test(id int,name varchar(10),age int,sex varchar(10)); –创建存储过程p1 create or replace procedure p1() as CommentSql1 varchar(1000); CommentSql2 varchar(1000); begin CommentSql1 :=‘COMMENT ON COLUMN TEST.ID is ‘’’||‘序列号’||‘’’ ; ‘; CommentSql2 :=‘COMMENT ON COLUMN TEST.name is ‘’’||‘姓名’||’‘’ ; '; print 1; execute immediate CommentSql1; print 2; execute immediate CommentSql2; print 3; end; –调用存储过程 call p1();
确认了下,这样拼接不行,每次只能执行一条以分号结尾的sql语句;
如果想多条语句一起执行,可以参考以下demo:
–创建测试表test
create table test(id int,name varchar(10),age int,sex varchar(10));
–创建存储过程p1
create or replace procedure p1()
as
CommentSql1 varchar(1000);
CommentSql2 varchar(1000);
begin
CommentSql1 :=‘COMMENT ON COLUMN TEST.ID is ‘’’||‘序列号’||‘’’ ; ‘;
CommentSql2 :=‘COMMENT ON COLUMN TEST.name is ‘’’||‘姓名’||’‘’ ; ';
print 1;
execute immediate CommentSql1;
print 2;
execute immediate CommentSql2;
print 3;
end;
–调用存储过程
call p1();