收到錯誤00933. 00000 - "SQL command not properly ended"
如何使用內部連接了多列更新的Oracle
UPDATE users SET
username = a.username,
groupcode = a.groupcode,
adauth = a.adauth,
userlevel = a.userlevel,
locationcd = a.locationcd,
panno = a.panno,
authrej = a.authrej,
multilogin = a.multilogin,
loginstatus = a.loginstatus,
userstatus = a.userstatus,
lupdnuser = a.lupdnuser,
lupdndt = a.lupdndt,
createdby = p_cUserId ,
createddt = SYSTIMESTAMP,
closedby = a.closedby ,
closeddt = a.closeddt ,
emailid = a.emailid ,
passwordattempt = CASE cast (a.userstatus as varchar) WHEN '01' THEN 0 ELSE a.passwordattempt END
FROM userstrans a
INNER JOIN users b ON
a.userid = b.userid
AND a.sysuserno = b.sysuserno
WHERE a.systrnno = p_nSysTrnNo
AND a.trnmode = 'EDIT'
AND a.trnid = 'N';
帶有內連接的Update語句在oracle中不支持。即使從條款也。所以使用合併。 – Buddi
你不能這樣使用UPDATE;看看[合併](http://docs.oracle.com/database/121/SQLRF/statements_9016.htm#SQLRF01606) – Aleksej
@Buddi - 這是不正確的。 Oracle **不支持使用內部連接的UPDATE - 它只需要正確地完成。我不明白爲什麼有這麼多人認爲Oracle不支持聯合更新(更糟糕的是,覺得可以與世界分享他們的錯誤知識)。請不要重複這一點。 – mathguy