我有一种情况,使我无法在MSSQL中更新表中的行,从而无法从ORACLE获取数据。我可以使用SELECT语句将fine从ORACLE插入MS SQL,如下所示:
SELECT XRECORDACTIVATIONDATE, XRECORDCUTOFFDATE, XRECORDREVIEWDATE,
XRECORDFILINGDATE, XNOLATESTREVISIONDATE, XNEWREVISIONDATE, XDATERECEIVEDDOC,
XINACTIVEDATE, DCREATEDATE, DINDATE, DRELEASEDATE, DLASTMODIFIEDDATE
FROM STELLENT.V_EXPORT_TO_MSSQL V但当我尝试使用以下命令根据唯一ID更新行时:
UPDATE D
SET D.XRECORDACTIVATIONDATE = V.XRECORDACTIVATIONDATE
FROM DBO.DOCUMENT D
INNER JOIN STELLENT."V_EXPORT_TO_MSSQL" V ON D.DID = V.DID我得到以下错误:
ORA-00933: SQL command not properly ended
(System.Data.OracleClient)DBO.DOCUMENT是一个MSSQL表。STELLENT.V_EXPORT_TO_MSSQL是ORACLE中的视图
我可能写错了查询,我会感谢一些帮助。谢谢。
发布于 2018-08-22 03:06:20
Lukasz是正确的- select语句与insert语句有很大的不同。
ORA-00933错误表示您的查询格式不正确。这是因为在Oracle中,数据库要求查询遵循特定的格式/标准。通常,Oracle中的查询将具有从表WHERE条件中选择列的形式。这可能会有所不同-例如,如果您希望选择表中的所有数据,该查询可能类似于"SELECT * from table;“,并且可以省略WHERE子句,因为您不需要为数据库定义一个条件来返回所有行。虽然查询可以在形式上有所不同,但一般而言,它们将遵循某种类型的格式。
收到此错误是因为查询不符合预期的格式,而且是因为FROM子句后面紧跟着一个内部联接。要解决这个问题,我建议创建一个查询,用于选择要更新的记录,然后使用该select语句通过将" select“替换为" update”来形成update语句。
有关SQL标准和如何格式化查询的更多信息,我建议您查看Oracle文档。https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_1001.htm#SQLRF52344
https://stackoverflow.com/questions/51954679
复制相似问题