SELECT * FROM DIM_TRANS_TYPE WHERE TRANSACTION_TYPE='ILAU';
をマージ使用してOracleデータベース内のレコードをマージすることができません私はここに達成したいすべてが上記のレコードでInstant Finance Authorization Request
にIFAU
とInstant Loan Authorization Request
にILAU
を変更です。
テーブルスキーマ:
Name Null Type
--------------------- -------- ------------------
TRANSACTION_TYPE NOT NULL VARCHAR2(4 CHAR) --> PRIMARY KEY
TRANSACTION_TYPE_DESC VARCHAR2(256 CHAR)
WORKS!
MERGE INTO DIM_TRANS_TYPE a
USING (SELECT 'ILAU' TRANSACTION_TYPE, 'Instant Loan Authorization Request' TRANSACTION_TYPE_DESC FROM DUAL) b
ON (a.TRANSACTION_TYPE = b.TRANSACTION_TYPE)
WHEN MATCHED THEN UPDATE
SET
a.TRANSACTION_TYPE_DESC = 'Instant Finance Authorization Request'
WHEN NOT MATCHED THEN
INSERT(a.TRANSACTION_TYPE, a.TRANSACTION_TYPE_DESC)
VALUES(b.TRANSACTION_TYPE, b.TRANSACTION_TYPE_DESC);
は動作しません! (エラー下図)
MERGE INTO DIM_TRANS_TYPE a
USING (SELECT 'ILAU' TRANSACTION_TYPE, 'Instant Loan Authorization Request' TRANSACTION_TYPE_DESC FROM DUAL) b
ON (a.TRANSACTION_TYPE = b.TRANSACTION_TYPE)
WHEN MATCHED THEN UPDATE
SET
a.TRANSACTION_TYPE = 'IFAU',
a.TRANSACTION_TYPE_DESC = 'Instant Finance Authorization Request'
WHEN NOT MATCHED THEN
INSERT(a.TRANSACTION_TYPE, a.TRANSACTION_TYPE_DESC)
VALUES(b.TRANSACTION_TYPE, b.TRANSACTION_TYPE_DESC);
Error:エラーメッセージが示すように
Error at Command Line : 5 Column : 9
Error report -
SQL Error: ORA-38104: Columns referenced in the ON Clause cannot be updated: "A"."TRANSACTION_TYPE"
38104. 00000 - "Columns referenced in the ON Clause cannot be updated: %s"
*Cause: LHS of UPDATE SET contains the columns referenced in the ON Clause
*Action:
DIM_TRANS_TYPEのスキーマを投稿してください – maSTAShuFu
上記の投稿をテーブルスキーマ – user2325154
で更新しました。エラーメッセージがクリアされています。 '。ドキュメントをチェックしてください。https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9016.htm#SQLRF01606 –