在 Alter table 脚本中使用绑定变量作为表名
Posted
技术标签:
【中文标题】在 Alter table 脚本中使用绑定变量作为表名【英文标题】:Using bind variable as table name in Alter table script 【发布时间】:2018-05-21 09:52:20 【问题描述】:FOR k in c2 LOOP
l_sql := 'ALTER TABLE :TABLE_NAME DISABLE CONSTRAINT
:CONSTRAINT_NAME CASCADE';
l_sql :='INSERT INTO TMP_CONSTRAINT (TABLE_NAME,CONSTRAINT_NAME)
VALUES ('':TABLE_NAME'', '':CONSTRAINT_NAME'')';
EXECUTE IMMEDIATE l_sql USING k.TABLE_NAME, k.CONSTRAINT_NAME;
END LOOP;
在动态 SQL 之上从游标中获取变量并相应地禁用约束并将记录插入临时表。我在更新语句中收到错误"bind variable does not exist"
。
【问题讨论】:
【参考方案1】:其实是INSERT
中的单个代码造成的
按如下更正:
l_sql :='INSERT INTO TMP_ENABLED_CONSTRAINT (TABLE_NAME,CONSTRAINT_NAME) VALUES (:TABLE_NAME ,:CONSTRAINT_NAME)';
【讨论】:
以上是关于在 Alter table 脚本中使用绑定变量作为表名的主要内容,如果未能解决你的问题,请参考以下文章
我怎么知道我的 MySQL alter table 语句正在工作? [关闭]
我怎么知道我的 MySQL alter table 语句正在工作? [关闭]