1.Oracle的PL/SQL语句块结构
1.1 块头区
Program_type program_name ([parameter_name IN / OUT/ IN OUT type specs,]......)
[RETURN datatype]
Program_type :FUNCTION、PROCEDURE、PACKAGE
specs:NOT NULL
FUNCTION必须有返回值
ex:
- FUNCTION:
CREATE OR REPLACE FUNCTION fun_test(f float) RETURN float
- PROCEDURE:
CREATE OR REPLACE PROCEDURE pro_test(name IN varchar2)
1.2 声明区
1) Oracle数据类型(VARCHAR2、CHAR、NUMBER)
2) 可使用CONSTRAINT约束(NOT NULL)
3) :=
或DEFAULT
关键字赋值
4) CONSTANT
常量标识变量
ex:
-
Var_name VARCHAR2(20) := ‘China’;
-
Var_name INTEGER DEFAULT 3.14;
5) 可用IS关键字在块头区后声明,也可使用DECLARE在任意位置声明DECLARE Var_name [CONSTRANT] datatype [(constraint)] [:= value]
1.3 执行区
1)至少包含一条执行语句,可为NULL
BEGIN
// LOGIC STATEMENTS
END;
1.4 异常区
1) 在END关键字前
2) EXCEPTION声明以下是异常区
EXCEPTION
WHEN exception_name1
THEN
Handl error1;
WHEN exception_name2
THEN
Handl error2;
WHEN others
Default error handling;
ex:
CREATE OR REPLACE PROCEDURE pro_test(f float)
IS
var_name varchar2(20);
//定义异常对象
exception1 EXCEPTION;
BEGIN
Statement1;
BEGING
Statement2;
//抛出在执行Statement2语句时的异常
Raise exception1;
EXCEPTION
WHEN exception1
Handling errors;
END;
Statement3;
//在statement1和statement3中抛出的异常在下面这个异常区处理
EXCEPTION
WHEN OTHERS
handling errors;
END;