constraints - 在 Alter table 脚本中使用绑定变量作为表名
问题描述
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"
在更新语句中收到错误。
解决方案
它实际上是由中的单个代码引起的 INSERT
更正如下:
l_sql :='INSERT INTO TMP_ENABLED_CONSTRAINT (TABLE_NAME,CONSTRAINT_NAME) VALUES (:TABLE_NAME ,:CONSTRAINT_NAME)';
推荐阅读
- python - 将二进制列表中的 0 更改为 1,这样不会有超过 N 个连续的零
- .net - 为什么在 Linux 上运行 .net 核心控制台应用程序时出现“资源文件”resx 错误?
- javascript - _.bindAll(this) 在更新到 lodash@4.17.15 后不起作用
- javascript - 是否可以使用 html/html5 在 html 页面中显示默认内容而没有互联网访问?
- java - 使用 pyspark 创建自定义文件阅读器以读取数据中带有换行符的文件
- android - 在android中杀死应用程序后后台服务无法正常工作
- r - 如何计算 data.frame 中列中的值?
- android - Kotlin Android Studio - AlertDialog 中的 TextInputLayout
- winforms - 修改 ListBox 项后 RichTextBox 失去焦点和插入符号位置
- asp.net - 从一个 WebAPI 重定向到另一个 WebAPI 并获取响应