语句 是这样的update f41171 set pbprodm=a.subc,pbprodf=a.cata,pbccost='A1'
from FGLC a,f4101 b ,f41171 c
where a.code=b.imglpt
and b.imitm=c.pbitm
and c.pbprodm=' ' and a.code not like 'F%';出错 :
sql命令未正常结束。求正确语句,谢谢
from FGLC a,f4101 b ,f41171 c
where a.code=b.imglpt
and b.imitm=c.pbitm
and c.pbprodm=' ' and a.code not like 'F%';出错 :
sql命令未正常结束。求正确语句,谢谢
ORA-00933:SQL命令未正确结束
00933.00000 - “SQL command not properly ended”
cause:
action:
供应商代码933出错,行5 列:60
--你写的语法是sqlserver的,oracle中并没有类似的语法
MERGE INTO F41171 T1
USING (SELECT A.SUBC, A.CATA
FROM FGLC A, F4101 B, F41171 C
WHERE A.CODE = B.IMGLPT
AND B.IMITM = C.PBITM
AND C.PBPRODM = ' '
AND A.CODE NOT LIKE 'F%') A
WHEN MATCHED THEN
UPDATE SET T1.PBPRODM = A.SUBC, T1.PBPRODF = A.CATA, T1.PBCCOST = 'A1'
;
select c.*,a.subc,a.cata
from FGLC a,f4101 b ,f41171 c
where a.code=b.imglpt
and b.imitm=c.pbitm
and c.pbprodm=' ' and a.code not like 'F%'
) set pbprodm=subc,pbprodf=cata,pbccost='A1'
--sorry 没注意
MERGE INTO F41171 T1
USING (SELECT A.SUBC, A.CATA
FROM FGLC A, F4101 B
WHERE A.CODE = B.IMGLPT
AND A.CODE NOT LIKE 'F%') A
ON (A.IMITM = T1.PBITM)
WHEN MATCHED THEN
UPDATE
SET T1.PBPRODM = A.SUBC, T1.PBPRODF = A.CATA, T1.PBCCOST = 'A1'
WHERE T1.PBPRODM = ' ';
提示 "B"."IMITM" 标识符无效
行6列4原来是A.IMITM, 我改成B.IMITM了
MERGE INTO F41171 T1
USING (SELECT A.SUBC, A.CATA, B.IMITM --这里增加上,思路有了调试一下就ok了。
FROM FGLC A, F4101 B
WHERE A.CODE = B.IMGLPT
AND A.CODE NOT LIKE 'F%') A
ON (A.IMITM = T1.PBITM)
WHEN MATCHED THEN
UPDATE
SET T1.PBPRODM = A.SUBC, T1.PBPRODF = A.CATA, T1.PBCCOST = 'A1'
WHERE T1.PBPRODM = ' ';