子程序以子程序头开始,在头部定义了名称和可选的参数列表。
|
声明部分 --(可选) 主要是声明和定义局部类型、光标、常量、变量、异常和嵌套子程序 指定编译指示 当子程序线束执行后,这些成员不在存在 注意:子程序的声明部分不是以DECLARE开头的
执行部分(必须) 包含一个或多个赋值、控制执行、和操作数据的语句
异常处理部分(可选) 处理运行时异常 |
|
DECLARE first_name employees.first_name%TYPE; last_name employees.last_name%TYPE; email employees.email%TYPE; employer VARCHAR2(8) := 'AcmeCorp';
--声明和定义过程 PROCEDURE create_email ( -- 子程序头开始 name1 VARCHAR2, name2 VARCHAR2, company VARCHAR2 ) -- 子程序头结束 IS -- 声明部分开始 error_message VARCHAR2(30) := 'Email地址过长.'; BEGIN -- 执行部分开始 email := name1 || '.' || name2 || '@' || company; EXCEPTION -- 异常处理部分开始 WHEN VALUE_ERROR THEN DBMS_OUTPUT.PUT_LINE(error_message); END create_email;
BEGIN first_name := 'John'; last_name := 'Doe';
create_email(first_name, last_name, employer); -- 调用 DBMS_OUTPUT.PUT_LINE ('名字在前的Email: ' || email);
create_email(last_name, first_name, employer); -- 调用 DBMS_OUTPUT.PUT_LINE ('姓在前的Email: ' || email);
first_name := 'Elizabeth'; last_name := 'MacDonald'; create_email(first_name, last_name, employer); -- 调用
END;
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1131966/ ,如需转载,请注明出处,否则将追究法律责任。