我正在使用PeopleSoft Campus Solutions,我們需要更新大約22,000行數據。這是ACAD_PLAN_VW和ACAD_PROG表之間的數據。學生都列在兩者中,所以他們的ID在兩者之間匹配。ORA-00904無效標識符 - 使用兩個表更新語句
基本上我們要做的就是說當身份證,學術事業,學生職業數量,有效順序和生效日期匹配時,以及學術計劃(他們的學位,存儲在ACAD_PLAN_VW中)是具體值,請將ACAD_PROG表上的ACAD_PROG更新爲X值。
我試圖做一些非常有趣的FROM語句組合,不斷得到錯誤。經過一番研究,我發現SQLTools並不真正喜歡UPDATE語句中的FROM語句,所以我重寫了它只是手動建立連接。我假設我這樣做是正確的,除非我需要對它進行重新說明。
我的說法是:
UPDATE PS_ACAD_PROG SET PS_ACAD_PROG.ACAD_PROG = 'UGDS'
WHERE PS_ACAD_PLAN_VW.EMPLID = PS_ACAD_PROG.EMPLID
AND PS_ACAD_PLAN_VW.ACAD_CAREER = PS_ACAD_PROG.ACAD_CAREER
AND PS_ACAD_PLAN_VW.STDNT_CAR_NBR = PS_ACAD_PROG.STDNT_CAR_NBR
AND PS_ACAD_PLAN_VW.EFFSEQ = PS_ACAD_PROG.EFFSEQ
AND PS_ACAD_PLAN_VW.EFFDT = PS_ACAD_PROG.EFFDT
AND PS_ACAD_PLAN_VW.ACAD_PLAN = 'DSTDS'
從理論上講,我認爲這將更新誰擁有這些連接任何學生。然而,我目前得到的錯誤如下:
ORA-00904: "PS_ACAD_PLAN_VW"."ACAD_PLAN": invalid identifier
我還沒有弄清楚這個問題。我確實具有查看和更新這些字段的正確訪問權限,並且該字段確實存在。
感謝您的建議。我剛剛嘗試了這一點,並且下降到最後一行併發出了相同的錯誤。 – user3455572
您可以嘗試刪除PS_ACAD_PLAN_VW。從最後一次參考?或者可能是PS_ACAD_PROG。以及。 (在生產系統上運行之前在某個地方進行測試......) –
我從最後一行刪除了PS_ACAD_PLAN_VW。然後它發生了錯誤,並說PS_ACAD_PROG.ACAD_PROG無效。刪除PS_ACAD_PROG。從該行的前面給予我一個不同的錯誤: > ORA-00918:列模糊定義 – user3455572