🧾Oracle SQL Developer 出現 SP2-0552 怎麼辦?新手也懂的「綁定變數未宣告」排查與解法(含常用去重查詢)
一、你遇到的問題其實很常見:SP2-0552 是什麼? 如果你在 Oracle SQL Developer 執行 SQL 時看到這個錯誤: SP2-0552: 連結變數 "XXXX" 未宣告 這通常代表一件事: 你在 SQL 裡用了「綁定變數」(Bind Variable),但工具端沒有先宣告它。 這不是你的資料表壞了,也不是 SQL 寫錯了,而是「執行環境」在提醒你: 我不知道 :xxxx 是什麼,因為你沒有先定義它。 二、為什麼會這樣?關鍵差異:Run Statement vs Run Script Oracle SQL Developer 有兩種常見執行方式: 1) Run Statement(通常是 Ctrl + Enter) 偏向「直接執行 SQL」 有時會用 SQL Developer 自己的方式處理參數 2) Run Script(通常是 F5) 會走 SQL*Plus 風格的腳本執行器 這種模式下, : 開頭的變數 一定要先宣告 很多人就是因為按了 F5 ,就突然遇到 SP2-0552。 三、什麼是 Bind Variable?新手版解釋 想像你寫一段 SQL: 你想查「某個版本」的資料 但版本字串每次都不同 你不想每次都改 SQL(也比較安全) 所以你會寫成「先留一個洞」: 這個洞叫做 參數 / 綁定變數 讓程式或工具在執行時再把值塞進去 四、SP2-0552 的三種實用解法 下面用一個「查訂單資料」的假想情境來示範 ✅ 解法 A:用 Run Script(F5)時,先宣告變數(最正統) 如果你的 SQL 裡像這樣寫: SELECT * FROM SALES_ORDERS WHERE ORDER_GROUP = :gr...