建立子程序的語法有以下幾個重點:
- 語法是CREATE PROCEDURE,可加入OR REPLACE來自動取代現有的子程序。
- IS保留字也可以改成AS。
- 跟合法的區塊語法一樣,BEGIN和END也是必須的,但不用DECLARE來宣告,只要在CREATE PROCEDURE...IS 之後宣告即可。
當您提交一個CREATE PROCEDURE指令到SQL*Plus後,會發生以下事情:
- 程式碼會儲存在Data Dictionary,無論程式碼是否解析成功,可以從VIEW:USER_OBJECTS 查詢。
- 程式碼的語法會被解析,然後決定它是「合法」(VALID)還是「不合法」(INVALID)。
- 如果是VALID,就會得到Procedure created的訊息,而子程序也可以被執行。
- 如果是INVALID,就會得到錯誤訊息,這時子程序不可以被執行。
PL/SQL Function 建立的語法如下:
12345678910CREATE
[
OR
REPLACE
]
FUNCTION
function_name
[ (parameter [,parameter]) ]
RETURN
return_datatype
IS
|
AS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END
[function_name];
傳入的參數有三種型態:
- IN - The parameter can be referenced by the procedure or function. The value of the parameter can not be overwritten by the procedure or function.
- OUT - The parameter can not be referenced by the procedure or function, but the value of the parameter can be overwritten by the procedure or function.
- IN OUT - The parameter can be referenced by the procedure or function and the value of the parameter can be overwritten by the procedure or function.
沒有留言:
張貼留言