pl/sql-->基于oracle10g(一)

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语句

INSERTUPDATEDELETESELECT … INTOCOMMITROLLBACKSAVEPOINT

简单的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;


  

猜你喜欢

转载自www.cnblogs.com/h-dada/p/9068842.html