2017-11-23 11 views
1

私は、上記のタイトルに類似した多数のクエリーを見つけました。しかし、私の状況は全く異なります。私はクエリが列の値を入力するテーブルのINSERTコマンドを実行しようとしています。以下は実行しようとしているクエリです。 ELEC_ORDER_HTELEC_ORDERテーブル内の列のORA-00917:DATE列にカンマがありません

INSERT INTO ELEC_ORDER_HT (OMS_SEQ.NEXTVAL, CUST_ID, ORDER_DATE, SHIP_METHOD, 
    REC_CREN_TM, REC_HIST_CREN_TM AS '23-NOV-17 01.56.01.103000 AM', ORDER_ID) 
SELECT ELEC_ORDER.CUST_ID AS CUST_ID, ELEC_ORDER.ORDER_DATE AS ORDER_DATE, 
    ELEC_ORDER.SHIP_METHOD AS SHIP_METHOD, ELEC_ORDER.REC_CREN_TM AS REC_CREN_TM, 
    ELEC_ORDER.ORDER_ID AS ORDER_ID 
FROM ELEC_ORDER 
WHERE ELEC_ORDER.CUST_ID = 'CSTMR10001' 
AND ELEC_ORDER.ORDER_ID = 'ELORD10001'; 

数が異なっています。私は上記のクエリを実行すると、次のエラーが発生します。

REC_CREN_TM, REC_HIST_CREN_TM AS '23-NOV-17 01.56.01.103000 AM', ORDER_ID) 
           * 
ERROR at line 2: 
ORA-00917: missing comma 

どうすればこの問題を解決できますか?

答えて

2
INSERT INTO ELEC_ORDER_HT (
    OMS_SEQ.NEXTVAL, -- This does not appear to be a column name 
    CUST_ID, 
    ORDER_DATE, 
    SHIP_METHOD, 
    REC_CREN_TM, 
    REC_HIST_CREN_TM AS '23-NOV-17 01.56.01.103000 AM', -- you cannot use aliases here 
    ORDER_ID 
) 
SELECT ELEC_ORDER.CUST_ID AS CUST_ID, 
     ELEC_ORDER.ORDER_DATE AS ORDER_DATE, 
     ELEC_ORDER.SHIP_METHOD AS SHIP_METHOD, 
     ELEC_ORDER.REC_CREN_TM AS REC_CREN_TM, 
     ELEC_ORDER.ORDER_ID AS ORDER_ID   -- only 5 columns but 7 in the previous part 
FROM ELEC_ORDER 
WHERE ELEC_ORDER.CUST_ID = 'CSTMR10001' 
AND ELEC_ORDER.ORDER_ID = 'ELORD10001'; 

は無効です。構文は次のとおりです。

INSERT INTO table_name (column_name, column_name) 
SELECT value, value FROM other_table 

あなたは定数/シーケンス値を持つ列名を置き換えるためにしようとし、その後SELECTの文からそれらの値を省略しているように見えます。非常に多くの

INSERT INTO ELEC_ORDER_HT (
    OMS,      -- or whatever the correct column name is 
    CUST_ID, 
    ORDER_DATE, 
    SHIP_METHOD, 
    REC_CREN_TM, 
    REC_HIST_CREN_TM, 
    ORDER_ID 
) 
SELECT OMS_SEQ.NEXTVAL, 
     CUST_ID, 
     ORDER_DATE, 
     SHIP_METHOD, 
     REC_CREN_TM, 
     TIMESTAMP '2017-11-23 01.56.01.103000', -- or SYSTIMESTAMP if you want current time 
     ORDER_ID 
FROM ELEC_ORDER 
WHERE CUST_ID = 'CSTMR10001' 
AND ORDER_ID = 'ELORD10001'; 
+0

ありがとう:

はあなたのような何かをしたいです。上記のアプローチはうまくいった。迅速なサポートに感謝します。 – ram

関連する問題