【问题标题】:Update a column not working更新列不起作用
【发布时间】:2016-08-04 09:46:53
【问题描述】:

我正在尝试在 toad 中执行以下查询。

UPDATE rd_catg_sync_tables
SET RCST_SYNC_COL2='Insert into ASM_ACE_SERVICE
(SERVICE_ID, SERVICE_NAME, SERVICE_DESC, SERVICE_LEVEL, SERVICE_CODE, SERVICE_CREATED_DATE, SERVICE_TYPE,        SERVICE_REF_TBL,ASM_SC_CATGID,ASM_SC_MODIFIED_BY)
Values
(?, '?', '?', ?, '?', TO_DATE('?', 'MM/DD/YYYY HH24:MI:SS'), '?',    '?','?','?');'
WHERE RCST_TABLE_NAME=ASM_ACE_SERVICE

但是当我运行它时,它会询问MI:SS 的值。但这是我需要插入 RCST_SYNC_COL2 的数据的一部分。请有人帮助我如何将此数据插入该列。

【问题讨论】:

  • 你到底想更新什么?整个表格或表格的某些特定列?
  • 我想将 RCST_SYNC_COL2 设置为以下值 '插入 ASM_ACE_SERVICE(SERVICE_ID、SERVICE_NAME、SERVICE_DESC、SERVICE_LEVEL、SERVICE_CODE、SERVICE_CREATED_DATE、SERVICE_TYPE、SERVICE_REF_TBL、ASM_SC_CATGID、ASM_SC_MODIFIED_BY)值(?','?', ?', ?, '?', TO_DATE('?', 'MM/DD/YYYY HH24:MI:SS'), '?', '?','?','?');

标签: sql plsql toad


【解决方案1】:

您需要额外的报价。要在 SQL 中转义单引号,请在一行中使用两个单引号:

update rd_catg_sync_tables
    set RCST_SYNC_COL2 = '
Insert into ASM_ACE_SERVICE(SERVICE_ID, SERVICE_NAME, SERVICE_DESC, SERVICE_LEVEL, SERVICE_CODE, SERVICE_CREATED_DATE, SERVICE_TYPE, SERVICE_REF_TBL,ASM_SC_CATGID,ASM_SC_MODIFIED_BY)
    Values
(?, ''?'', ''?'', ?, ''?'', TO_DATE(''?'', ''MM/DD/YYYY HH24:MI:SS''), ''?'', ''?'',''?'',''?'');'
    where RCST_TABLE_NAME = 'ASM_ACE_SERVICE' 

我不知道您将如何执行子查询,但占位符 (?) 周围的单引号和末尾的分号可能是不必要的。

【讨论】:

  • 您好,我进行了上述更改并执行了它..它抛出了错误。 ORA-00904: "ASM_ACE_SERVICE": 无效标识符
  • 其中 RCST_TABLE_NAME = 'ASM_ACE_SERVICE'
猜你喜欢
  • 2017-07-27
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 2010-10-03
相关资源
最近更新 更多