为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:WIN10
【CPU】:X64
【问题描述】*:存储过程定义如下
AS
/变量说明部分/
DECLARE
tablename VARCHAR(50);
scriptsql varchar := 'CREATE TABLE SYSDBA.?("RouteName" VARCHAR(20) NOT NULL,"SiteName" VARCHAR(20) NOT NULL);';
BEGIN
/执行体/
set tablename = concat('hisanaloginfos_update_', routeid);
EXECUTE IMMEDIATE scriptsql USING tablename;
END;
执行报错:[执行语句1]:
Declare errmsg VARCHAR(1000);begin call sp_create_his_analog_table(4,errmsg);end;
执行失败(语句1)
-2007: 语法分析出错
-2007: sp_create_his_analog_table line 13
这种不能写?
应该写成
DECLARE tablename VARCHAR(50); scriptsql varchar := 'CREATE TABLE SYSDBA.' ; BEGIN set tablename = concat('hisanaloginfos_update_', routeid); set scriptsql = scriptsql || tablename || '("RouteName" VARCHAR(20) NOT NULL, "SiteName" VARCHAR(20) NOT NULL);'; EXECUTE IMMEDIATE scriptsql; END;