【发布时间】:2021-03-05 09:23:44
【问题描述】:
我必须将值插入到 my_temp_table。一些列存储在 v_ModelsList 变量中。 v_ModelsList 是:Model_7318802U,Model_7304773U,Model_M0347。有必要使用具有这些值的变量,因为这些值可能不同,因此我无法在插入语句中对其进行硬编码。 下面是一段负责插入值的代码:
EXECUTE immediate
'insert into my_temp_table(PRODUCTIONLINENO, WEEKSCHEDULED, SCHEDULEDSTARTS,
MOVEOUTS, PERCENTAGEMOVES,:ModelsList)
values (:PRODUCTIONLINENO, :WEEKSCHEDULED, :SCHEDULEDSTARTS,
:MOVEOUTS, :PERCENTAGEMOVES, 1, 2, 3)
'
USING v_ColumnList, i.PRODUCTIONLINENO, i.WEEKSCHEDULED,
i.SCHEDULEDSTARTS, i.MOVEOUTS, i.PERCENTAGEMOVES;
当我尝试执行时出现错误: ORA-06512:在第 102 行 01747. 00000 - “无效的 user.table.column、table.column 或列规范”
当我在没有来自 valable 的这些列的情况下执行它时,一切正常。
EXECUTE immediate
'insert into my_temp_table(PRODUCTIONLINENO, WEEKSCHEDULED, SCHEDULEDSTARTS,
MOVEOUTS,PERCENTAGEMOVES)
values(:PRODUCTIONLINENO, :WEEKSCHEDULED, :SCHEDULEDSTARTS,
:MOVEOUTS, :PERCENTAGEMOVES)
'
USING i.PRODUCTIONLINENO, i.WEEKSCHEDULED, i.SCHEDULEDSTARTS,
i.MOVEOUTS, i.PERCENTAGEMOVES;
【问题讨论】:
-
看看我是如何格式化你的代码的。仅对内联代码使用反引号 - 它们不适用于代码块。对于代码块,选择文本,然后按 CTRL-K 或使用格式工具栏中的代码块格式图标
{}(在您创建或编辑帖子时位于窗口顶部)。
标签: sql oracle plsql dynamic-sql ora-06512