創建或重新定義存儲過程
SQL> create or replace procedure sample_proc is
2 begin
3 dbms_output.put_line('Hello WOrld');
4 end sample_proc;
5 /
過程已創建。
在匿名程序塊中調用剛創建的存儲過程,可以直接在BEGIN-END部分使用過程名調用存儲過程SAMPLE_PROC。
SQL> set serverout on
SQL> begin
2 sample_proc;
3 end;
4 /
Hello WOrld
PL/SQL 過程已成功完成。
在SQL*PLUS中使用EXECUTE或者EXEC調用存儲過程
SQL> execute sample_proc;
Hello WOrld
PL/SQL 過程已成功完成。
SQL> exec sample_proc;
Hello WOrld
PL/SQL 過程已成功完成。
如果在創建的過程中出現了錯誤 可以使用 SHOW ERRORS命令顯示創建時產生的錯誤。
SQL> create or replace procedure sample_proc is
2 begin
3 dbms_output.put_line(hello world);
4 end sample_proc;
5 /
警告: 創建的過程帶有編譯錯誤。
SQL> show errors;
PROCEDURE SAMPLE_PROC 出現錯誤:
LINE/COL ERROR
-------- -----------------------------------------------------------------
3/28 PLS-00103: 出現符號 "WORLD"在需要下列之一時:
. ( ) , * @ % & | = - + <
/ > at in is mod remainder not range rem => ..
<an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_
LIKE4_ LIKEC_ as between from using || multiset member
SUBMULTISET_
符號 "." 被替換爲 "WORLD" 後繼續。
產生該錯誤的原因是輸出語句中省略了表示字符的引號,是系統誤認爲該字符爲變量。