为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
单个的sql可以采用下面这种方式
--mysql 写的,在达梦无法执行
create or replace procedure b ()
as
begin
set sql='select yue into @tmp from cdw order by yue limit 1';
set stst=sql;
execute stst;
end;
达梦改写
create or replace procedure a ()
as
sqlsr1 varchar(1000);
stst varchar(2000);
begin
select yue into sqlsr1 from cdw limit 1;
stst=sqlsr1;
--execute stst;
print (stst);
end;
如果是拼接的sql怎么改写,twhere是输入的参数
create or replace procedure ts (twhere in varchar(20))
.......
set sql=concat('select yue into @tmp from cdw where name=','''',twhere,'''',';')
拼接sql使用||作为字符串连接符,字符串里面使用两个单引号转义为一个单引号
sql = 'select yue into tmp from cdw where name='''||twhere||'''';
concat用法如下

dm的输入输出参数格式是:列名 in/out 参数类型