ORACLE SQL MERGESTATEMENTのエラー

マーカス

Oracle 11gで次のコードを実行しようとしていますが、エラーが発生します。

MERGE INTO EMP_COPY4 C
USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES) E
ON (C.EMPLOYEE_ID = E.EMPLOYEE_ID)
WHEN MATCHED THEN
UPDATE SET
C.FIRST_NAME = E.FIRST_NAME,
C.LAST_NAME = E.LAST_NAME,
C.EMAIL = E.EMAIL,
C.COMMISSION_PCT = E.COMMISSION_PCT
DELETE WHERE (E.COMMISSION_PCT IS NOT NULL)
WHEN NOT MATCHED THEN
INSERT VALUES (E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT);       

EMP_COPY4はEMPLOYEESのコピーテーブルであり、EMPLOYEE_ID、FIRST_NAME、LAST_NAME、EMAIL、COMMISSION_PCTの列のみがあります。

特定の条件でそれらをマージしようとしましたが、オラクルは次のエラーを出します

Error starting at line : 405 in command -
MERGE INTO EMP_COPY4 C
USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES) E
ON (C.EMPLOYEE_ID = E.EMPLOYEE_ID)
WHEN MATCHED THEN
UPDATE SET
C.FIRST_NAME = E.FIRST_NAME,
C.LAST_NAME = E.LAST_NAME,
C.EMAIL = E.EMAIL,
C.COMMISSION_PCT = E.COMMISSION_PCT
DELETE WHERE (E.COMMISSION_PCT IS NOT NULL)
WHEN NOT MATCHED THEN
INSERT VALUES (E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT)
Error at Command Line : 406 Column : 66
Error report -
SQL Error: ORA-00904: "E"."COMMISSION_PCT": invalid identifier
00904. 00000 -  "%s: invalid identifier"
*Cause:    
*Action:

行405はステートメントの開始であり、行406は2行目です。

なぜそのようなエラーが発生するのか理解するのを手伝ってくれませんか...?

アントン・ザヴィリウキン

2次元線をいずれかに置き換えます

USING (SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, COMMISSION_PCT FROM EMPLOYEES) E

または

USING (SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, E.EMAIL, E.COMMISSION_PCT FROM EMPLOYEES E) E

テーブルがエイリアスされていない場合、SELECTリストでエイリアスを使用することはできません

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Oracle APEX PL / SQLエラー

分類Dev

Oracle PL / SQLの算術エラー

分類Dev

Oracle ApplicationExpressのPL / SQLエラー

分類Dev

Oracle 18.1SQLクエリエラー

分類Dev

Oracleトリガーpl / sqlエラー

分類Dev

Oracle PL / SQLエラーPLS-00103

分類Dev

PL / SQL ORACLEエラー:コード内のPLS-00225

分類Dev

OracleエラーでのPL / SQLトリガー

分類Dev

SQLクエリ(Oracle SQL)

分類Dev

OracleからT-SQLへのCTE変換エラー

分類Dev

oracle pl / sql関数の名前解決エラー

分類Dev

SQLのWHERE条件(ORACLE)

分類Dev

SQLの外部キー:Oracle

分類Dev

Oracleのエラー

分類Dev

Oracle PL / SQL:数値または値のエラー:文字から数値への変換エラー

分類Dev

SQL Oracle / Aggregationクエリ

分類Dev

Oracle SQL:エラーコードごとのエラーカウントが間違っています

分類Dev

SQLFiddleは壊れていますか?Oracle、SQL Serverなどのエラー?

分類Dev

SQLFiddleは壊れていますか?Oracle、SQL Serverなどのエラー?

分類Dev

Worklight 6.1、Tomcat 7.0.42でのSQLアダプタ(Oracle 11g)JNDIエラー

分類Dev

Oracle SQL - キーワード エラーの Case ステートメントでクエリを更新する

分類Dev

Oracleでの動的SQLの生成

分類Dev

OracleでのSQLクエリの最大長

分類Dev

Oracle SQLトリガー・エラー:ORA-00933

分類Dev

SQL Oracle(グループ化)

分類Dev

外部キー--SQL--Oracle

分類Dev

Oracle SQLのMAX()OVER PARTITION BY

分類Dev

PL / SQL:ORACLEの感嘆符

分類Dev

SQLの感嘆符(Oracle)

Related 関連記事

ホットタグ

アーカイブ