2017-08-30 64 views
0

我連接到遠程Oracle數據庫並使用Oracle.ManageddataAccess.dll來執行更新和插入操作。我能夠更新數據,但我試圖插入它拋出異常,但我只是想插入它。oracle.ManageddataAccess拋出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 Server

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

Oracle使用引號'「...」作爲引號,MS SQL使用括號'[...]'。 'insert into「HKSTF087.FUELCHARGES」(「QTM_ID」,...' –

+0

@ user7294900 GETDATE()是SQL SERVER中的一個內置函數,我通過sql server中的鏈接服務器連接到oracle數據庫。 C#我直接使用Oracle數據庫 – Riki

回答

0

我能夠從一個鏈接服務插入Oracle數據庫的查詢,它看起來像

insert into HKSTF087.FUELCHARGES 

比不同你的完整例子。

insert INTO MTCT..HKSTF087.FUELCHARGES 

而且getdate()不是Oracle上已知功能,但使用鏈接的服務器時,這可能不是一個問題。我不知道這一點

而且在評論甲骨文的需求也提到「」,而不是[]

[QTM_ID] ,[TITLECODE]應該"QTM_ID" ,"TITLECODE"

+0

我使用SQL Server中提供的鏈接服務器工具連接到Oracle數據庫,並且getdate()是sql服務器中的一個內部函數以獲取當前日期 – Riki

+0

我更新了我的答案關於這一點,因爲我不知道那個部分 – GuidoG

+0

欣賞更正,不幸的是,這並沒有解決問題。 – Riki

相關問題