我正在運行Oracle SQL開發人員,並且我有以下存儲過程。我是很新的這一點,但真的不知道爲什麼,這是行不通的:爲什麼這個基本的'Select Into'存儲過程不起作用?
CREATE OR REPLACE PROCEDURE CHECKDUPLICATE(
username1 IN USERS.USERNAME%TYPE,
o_username OUT USERS.USERNAME%TYPE
)
IS
BEGIN
SELECT USERNAME
INTO o_username
FROM USERS WHERE username1 = o_username;
END;
當我試圖把它叫做:
DECLARE
o_username USERS.USERNAME%TYPE;
BEGIN
CHECKDUPLICATE('Jacklin', o_username);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
END;
我得到的錯誤信息:
Error starting at line 1 in command:
DECLARE
o_username USERS.USERNAME%TYPE;
BEGIN
CHECKDUPLICATE(Jacklin, o_username);
DBMS_OUTPUT.PUT_LINE('username : ' || o_username);
END;
Error report:
ORA-06550: line 5, column 19:
PLS-00201: identifier 'JACKLIN' must be declared
ORA-06550: line 5, column 4:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
必須聲明「標識符Jacklin」是什麼意思?(表格稱爲USERS,列名稱爲USERNAME)任何幫助將不勝感激
編輯**我把傑克林的報價,我現在得到這個消息:
Error report:
ORA-01403: no data found
ORA-06512: at "L13JAV04.CHECKDUPLICATE", line 9
ORA-06512: at line 6
01403. 00000 - "no data found"
*Cause:
*Action:
即使傑克林它存在於數據庫中!
傑克林是一個字符串。應該用單引號括起 – Noel
謝謝!但是我現在收到另一個錯誤信息..錯誤報告: ORA-01403:找不到數據 ORA-06512:在 「L13JAV04.CHECKDUPLICATE」,9號線 ORA-06512:在第6行 01403. 00000 - 「找不到數據」 *原因: *行動: – DeaIss
我編輯它到我原來的問題,以便於閱讀 – DeaIss