作为数据迁移的一部分,尝试根据另一个表中的值更新表中的列。所有列都存在于联接的两个表中,但是当我运行以下命令时,我收到了意外的错误消息:
UPDATE CSB
SET IFS10_SCHEDULE = CS.SCHEDULE_NO
FROM IC_U_CUSTOMER_SCHED_B CSB
JOIN CUST_SCHED CS
ON CSB.CUSTOMER_NO = CS.CUSTOMER_NO
AND CS.SHIP_ADDR_NO = CSB.SHIP_ADDR_NO
AND CSB.CUSTOMER_PART_NO = CS.CUSTOMER_PART_NO
AND CSB.DOC_NO = CS.DOC_NO
AND CSB.AGREEMENT_ID = CS.AGREEMENT_ID
AND CSB.CUST_SCHEDULE_TYPE = CS.CUST_SCHEDULE_TYPE;
我收到错误:
Error at Command Line : 3 Column : 1
Error report -
SQL Error: ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:
我确定这一定是语法问题,但看不到哪里。有什么想法吗?
编辑-谢谢,获得了解决方案。出于学习目的(在过去的20年中我已经做过T-SQL,仅学习PL-SQL),我也将查询重新编写为MERGE INTO,但这也失败了。这里有任何明显的问题吗?:
MERGE INTO IC_U_CUSTOMER_SCHED_B CSB
USING CUST_SCHED CS
ON (CSB.CUSTOMER_NO = CS.CUSTOMER_NO
AND CS.SHIP_ADDR_NO = CSB.SHIP_ADDR_NO
AND CSB.CUSTOMER_PART_NO = CS.CUSTOMER_PART_NO
AND CSB.DOC_NO = CS.DOC_NO
AND CSB.AGREEMENT_ID = CS.AGREEMENT_ID
AND CSB.CUST_SCHEDULE_TYPE = CS.CUST_SCHEDULE_TYPE)
WHEN MATCHED THEN UPDATE SET CSB.IFS10_SCHEDULE = CS.SCHEDULE_NO
WHERE CSB.IFS10_SCHEDULE != CS.SCHEDULE_NO;
答案 0 :(得分:1)
应该是
*** Protokolleintrag für Assembly-Binder (06.08.2019 @ 09:14:03) ***
Fehler bei diesem Vorgang.
Ergebnis der Bindung: hr = 0x80070002. Das System kann die angegebene Datei nicht finden.
Der Assemblymanager wurde geladen aus: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Als EXE-Datei ausgeführt. C:\Program Files (x86)\iSM\biCube\services\BiCube.Services.Host.exe
--- Ein detailliertes Fehlerprotokoll folgt.
=== Zustandsinformationen vor Bindung ===
LOG: DisplayName = System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
(Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/iSM/biCube/services/
LOG: Ursprünglicher PrivatePath = NULL
LOG: DynamicBase = NULL
LOG: CacheBase = NULL
LOG: AppName = BiCube.Services.Host.exe
Aufruf von Assembly : Microsoft.Graph.Core, Version=1.15.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.
===
LOG: Diese Bindung startet im default-Load-Kontext.
LOG: Es wurde keine Anwendungskonfigurationsdatei gefunden.
LOG: Die Hostkonfigurationsdatei wird verwendet:
LOG: Die Computerkonfigurationsdatei von C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config wird verwendet.
LOG: Verweis nach der Richtlinie: System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
LOG: Die Suche im GAC war nicht erfolgreich.
LOG: Download von neuem URL file:///C:/Program Files (x86)/iSM/biCube/services/System.ValueTuple.DLL.
LOG: Download von neuem URL file:///C:/Program Files (x86)/iSM/biCube/services/System.ValueTuple/System.ValueTuple.DLL.
LOG: Download von neuem URL file:///C:/Program Files (x86)/iSM/biCube/services/System.ValueTuple.EXE.
LOG: Download von neuem URL file:///C:/Program Files (x86)/iSM/biCube/services/System.ValueTuple/System.ValueTuple.EXE.
LOG: Fehler bei allen Such-URLs.