2017-08-30 5 views
0

リモートOracle DBに接続し、Oracle.ManageddataAccess.dllを使用して更新および挿入を実行しています。私はそれにデータを更新することができますが、私はそれを挿入しようとしている間にORA-00928: missing SELECT keyword例外をスローしますが、私はそれに挿入しようとしています。oracle.ManageddataAccess throws ORA-00928:データの挿入中にSELECTキーワードがありません

string cmdQuery = string.Format(@"insert into HKSTF087.FUELCHARGES ([QTM_ID] ,[TITLECODE] ,[FUELCHARGERATE] ,[ISSPECIALRATE] ,[EFFECTIVEFROMDATE] ,[EFFECTIVETHRUDATE] ,[CREATEDBY] ,[CREATEDDATE] ,[UPDATEDBY] ,[UPDATEDDATE]) values ({0}, '{1}', {2}, {3}, TO_DATE('{4:MM/dd/yyyy HH:mm:ss}', 'mm/dd/yyyy hh24:mi:ss'), '{5}', '{6}', TO_DATE('{7:MM/dd/yyyy HH:mm:ss}', 'mm/dd/yyyy hh24:mi:ss'), {8}, {9})", mtcRate.QTM_ID, mtcRate.TITLECODE, newDefaultFuelRate, 0, providedEffectiveFromDate, "2099-12-31 00:00:00.0000000", "system", DateTime.Now, "null", "null"); 

、それは

insert into HKSTF087.FUELCHARGES ([QTM_ID] ,[TITLECODE] ,[FUELCHARGERATE] ,[ISSPECIALRATE] ,[EFFECTIVEFROMDATE] ,[EFFECTIVETHRUDATE] ,[CREATEDBY] ,[CREATEDDATE] ,[UPDATEDBY] ,[UPDATEDDATE]) values (19874, 'AARC', 19.1, 0, TO_DATE('08/15/2017 00:00:00', 'mm/dd/yyyy hh24:mi:ss'), '2099-12-31 00:00:00.0000000', 'system', TO_DATE('08/30/2017 17:25:05', 'mm/dd/yyyy hh24:mi:ss'), null, null) 

ようになりますとExecuteNonQuery()に当たったとき、それはORA-00928: missing SELECT keyword例外がスローされます。

は、ここで私はSQLサーバーに

INSERT INTO MTCT..HKSTF087.FUELCHARGES 
     ([QTM_ID] 
     ,[TITLECODE] 
     ,[FUELCHARGERATE] 
     ,[ISSPECIALRATE] 
     ,[EFFECTIVEFROMDATE] 
     ,[EFFECTIVETHRUDATE] 
     ,[CREATEDBY] 
     ,[CREATEDDATE] 
     ,[UPDATEDBY] 
     ,[UPDATEDDATE]) 
VALUES 
     (4446 
     ,'ABCD' 
     ,12 
     ,0 
     ,getdate() 
     ,'2099-12-31 00:00:00.0000000' 
     ,'system' 
     ,getdate() 
     ,null 
     ,null) 
+1

GETDATEは何であるべき()? – user7294900

+0

オラクルは、引用符として引用符を使用しています。ここで、MS SQLはブラケット '[...]'を使用しています。 'HKSTF087.FUELCHARGES"( "QTM_ID"、... ' –

+0

@ user7294900)に挿入するGETDATE()はSQL Serverの組み込み関数ですが、SQL Serverのリンクサーバーを介してOracle DBに接続しています。 C#私は直接Oracle DBを使用しています – Riki

答えて

0

を使用してリンクサービスからのOracle DBを挿入することができる午前使用してクエリだとそれが

insert into HKSTF087.FUELCHARGES 

がより異なっているように見えますあなたの完全な例。

insert INTO MTCT..HKSTF087.FUELCHARGES 

またgetdate()は、Oracleの既知の関数ではなく、リンクサーバーを使用している場合、これは問題ではないかもしれません。私は約わからないこと

としてもコメントオラクルのニーズに言及した「」の代わりに、[]

[QTM_ID] ,[TITLECODE]"QTM_ID" ,"TITLECODE"

+0

SQL Serverで使用可能なLink Server機能を使用してOracle DBに接続しています。getdate()はSQL Serverの現在の日付を取得するための関数です – Riki

+0

私の回答を更新しましたその部分についてはわからなかったので、それについて – GuidoG

+0

残念ながら問題を解決しなかった訂正を感謝します – Riki

関連する問題