我正在尝试执行下一个查询:
MERGE INTO NOTIFICATION_OBJS p
USING (SELECT
:fcsNotif_id as doc_id,
:OKPD2_code as OKPD2_code,
:OKPD2_name as OKPD2_name,
:quantity_value as quantity,
:purchaseObject_price as price
FROM DUAL
) v
ON (p.doc_id=v.doc_id)
WHEN MATCHED THEN
UPDATE SET
p.OKPD2_code = v.OKPD2_code,
p.OKPD2_name = v.OKPD2_name,
p.quantity_value = v.quantity_value,
p.price = v.price
WHEN NOT MATCHED THEN
INSERT (p.doc_id, p.OKPD2_code, p.OKPD2_name, p.quantity_value, p.price)
VALUES(v.doc_id, v.OKPD2_code, v.OKPD2_name, v.quantity_value, v.price)
我要发送绑定方法下一个字典:
{'OKPD2_code': '62.02.30.000', 'OKPD2_name': 'some text', 'purchaseObject_price': '20466982.25', 'quantity_value': '1', 'fcsNotif_id': '18941152'}
但是我遇到了错误:
ORA-00904: "P"."OKPD2_NAME": invalid identifier
所有其他具有绑定的查询均有效。请帮助我找到错误。
答案 0 :(得分:0)
OKPD2_NAME
表中没有NOTIFICATION_OBJS
列。
如果在创建该表(及其列)时使用了双引号,则应该
[编辑,上传屏幕截图后]
列名实际上是使用大小写混合的,因此您必须完全像这样引用它:"OKPD2_name"
注意双引号和大小写混合。
如果您使用"okpd2_name"
或"okPD2_NAME"
或除"OKPD2_name"
以外的任何其他字符,它将不起作用。再次:消除双引号。