Oracle10g学习笔记2
PL/SQL基础
实现了将结构与oracle的SQL语句进行无缝集成,从而对用户提供了一种功能强大的结构化查询设计语言,同时oracle也集成了面向过程语言的过程结构和强大的数据库操作,为设计复杂的数据库应用提供了可靠的程序设计语言。
以块的方式来完全相关功能。
PL/SQL结构块如下:
DECLARE 变量声明
…………赋予变量适当名称,正确数据类型,定义变量(标准、记录),控制变量范围。
BEGIN
…………
EXCEPTION
…………
END;
/
如:declare
X varchar2(10);
Begin
X:=’this is..’;
DBMS_OUTPUT.PUT_LINE(‘x的值为:’||x); -- 打印输出
END;
/
显示出:PL/SQL过程已成功完成。
|| 表示 拼接两个字符,同时,不同的数据类型也可由此连接
但是没有显示信息,为了显示信息,如下:
SET SERVEROUTPUT ON SIZE 10000
再输入上段语句,或者直接L,/
显示:x的值为:This is..
-- 表示行注释 /* */ 块注释
DBMS_OUTPUT是系统提供的包,用于实现和外部交互的工具
实例:
declare
x varchar2(20);
Y string(10):='123456';
begin
x:='This is.. ';
DBMS_OUTPUT.PUT_LINE('x的值为:'||x ||'Y的值为:'||y);
END;
/
分支语句:
IF分支
IF… THEN
……
ELSIF…THEN
……
ELSE
……
END IF
CASE分支:
CASE
WHEN ……
……
ELSE
END CASE
循环语句:
1 基本循环
……
END
2 WHILE循环
WHILE expression
……
END
3 FOR循环 可以不定义变量
BEGIN
FOR i IN REVERSE 1..5 LOOP --从大到小循环
DBMS_OUTPUT.PUT_LINE('i='||i);
END
DBMS_OUTPUT.PUT_LINE('END
OF FOR
END;
/
用GOTO语句实现循环:
DECLARE
X NUMBER;
BEGIN
X:=0;
<<repeat_loop>> --加标签
X:=x+1;
DBMS_OUTPUT.PUT_LINE(X);
IF X<3 THEN
GOTO repeat_loop;
END IF;
END;
/
异常处理
在PLSQL中一个警告或者错误都被称为异常。编译时错误和运行时刻错误。
异常分类:系统异常、自定义异常
复合变量:记录 record
记录是几个相关值构成的复合变量,常用于支持SELECT语句的返回值。使用记得可以将一行数据看成一个单元进行处理,而不必将每一列单独处理。
声明记录:
DECLARE
TYPE myrecord IS RECORD(
Id varchar2(10),
Name varchar2(10));
Real_record myrecord;
BEGIN
SELECT eid,ename INTO real_record FROM emp WHERE emp_id=’
DBMS_OUTPUT.PUT_LINE(real_record.id || ‘.’ || real_record.name);
END;
/