pl/sql结构
DECLARE
/* 声明部分: 在此声明 PL/SQL 用到的变量,类型及游标,以及局部的存储过程和函数 */
BEGIN
/* 执行部分: 过程及 SQL 语句 , 即程序的主要部分 */
EXCEPTION
/* 执行异常部分: 错误处理 */
END;
pl/sql中的赋值为:=
dbms_output.put_line(v_name);
相当于java中的打印语句
set serveroutput on ;
命令设置环境变量serverPoint为打开状态,从而使得plsql程序能够在Sql*plus中输出结果
建议的命名方法
程序变量 V_
程序常量 C_
游标变量 _Cursor
一场变量 E_
记录类型 _record
pl/sql中可用的sq语句
INSERT, UPDATE, DELETE,SELECT … INTO, COMMIT, ROLLBACK, SAVEPOINT。
简单的select.....into 的测试例子
SQL> declare 2 v_name varchar2(20); 3 begin 4 select last_name into v_name 5 from employees 6 where employee_id=100; 7 dbms_output.put_line(v_name); 8 end; 9 /
%type的使用:相当于直接使用数据库中列定义时的属性跟大小
SQL> declare 2 v_name employees.last_name%type; 3 begin 4 select last_name into v_name 5 from employees 6 where employee_id=100; 7 dbms_output.put_line(v_name); 8 end; 9 /
记录类型:
格式:TYPE record_type IS RECORD(
可用%type或者直接定义
);
例子:
SQL> declare 2 type test_rec is record( 3 l_name employees.last_name%type, 4 d_id number(4)); 5 v_emp test_rec; 6 begin 7 select last_name,department_id into v_emp 8 from employees 9 where employee_id=100; 10 dbms_output.put_line(v_emp.l_name||','||v_emp.d_id); 11 end;
使用%rowType 使用%rowType返回的是一个记录类型,其数据类型和数据库表的数据结构相一致
SQL> declare 2 v_emp employees%rowtype; 3 begin 4 select * into v_emp 5 from employees 6 where employee_id =100; 7 dbms_output.put_line(v_emp.last_name||','||v_emp.department_id); 8 end;