--块
declare
--定义变量(可选),如: v_name varchar(2);
begin
--具体操作,如:select ename into v_name from emp where empno=&a;
--控制台输出, dbms_output.put_line(v_name);
exception
--异常处理(可选)
end;
/
--存储过程
create or replace procedure 过程名(参数名 参数类型) is
--定义变量
begin
--操作过程
end;
/
--函数
create or replace function 函数名(参数名 参数类型)
return 返回类型 is
--定义变量
begin
--操作过程
return 变量名;
end;
/
--定义结构
type 类型名 is record(名称 类型,...);
--定义数组
-- 变量名可以为 varchar2 or emp.ename%type
--binary_integer 表示下标是整数
type 类型名 is table of 变量名 index by binary_integer;
--定义变量
--变量名 变量类型;
v_var varchar2(5);
--定义常量
c_var varchar2(5):='name';
--定义数据库指定表中的列类型
--变量名 表名.列名%TYPE
v_var emp.ename%type;
--定义游标
type 游标名 is ref cursor;
--变量名 游标名;
--将游标指向结果集
open 变量名 for 结果集;
--循环获取游标值
loop
fetch 变量名 into 被赋值变量,...;
--判断结束
exit when 变量名%notfound;
end loop;
--语句块中执行SQL,将返回值存入变量
execute immediate SQL into 变量;