0

我正在连接到远程 Oracle 数据库并Oracle.ManageddataAccess.dll用于执行更新和插入。我能够更新数据,但是当我试图插入它时会抛出ORA-00928: missing SELECT keyword异常,但我只是试图插入它。

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 服务器从链接服务插入 Oracle DB 的查询

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)
4

1 回答 1

0

它看起来像

insert into HKSTF087.FUELCHARGES

与您的完整示例不同。

insert INTO MTCT..HKSTF087.FUELCHARGES

也不是 oracle 上的已知功能,但在getdate()使用链接服务器时这可能不是问题。我不确定

正如评论中提到的那样,oracle需要“”而不是[]

[QTM_ID] ,[TITLECODE]应该"QTM_ID" ,"TITLECODE"

于 2017-08-30T12:37:18.793 回答