pl/sql简介
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有
sql与编程语言的不同在于sql既没有变量也没有流程控制,
是结构化和过程化的结合体,更重要的是,在用户执行多条sql语句是,每条sql语句都是逐一的发送给数据库,而plsql/可以一次性将多条sql一起发送给数据库,减少网络流量,
pl/sql语法结构
DECLARE
-- 声明部分,例如:定义变量,常量,游标
BEGIN
--程序编写 ,sql语句
EXCEPTION
--处理异常
END;
声明部分 DECLARE:包含变量定义,用户定义的pl/sql类型,游标,引用的函数或过程
执行部分 BEGIN :包含变量赋值,对象初始化,条件结构,迭代结构,嵌套的pl/sql 匿名块,或是对局部存储PL/SQL 命名块的调用
异常部分 EXCEPTION:包含错误处理语句,可以执行想执行部分一样使用所有项.
结束部分 END:程序执行到END表示结束,分号用于结束匿名块,而正斜杠执行块程序
最简单的pl/sql块可以不做任何事,但是执行块中必须又一条语句,即便这个语句只写了个NULL
SQL> BEGIN
2 NULL;
3 END;
4 /
PL/SQL 过程已成功完成。
DECLARE
num NUMBER;
BEGIN
num :=30;
DBMS_OUTPUT.PUT('num = '||num);
END ;
/
SQL> DECLARE
2 v_eno NUMBER;
3 v_ename VARCHAR2(10);
4 BEGIN
5 v_eno :=&empno;
6 select ename INTO v_ename from emp where empno=v_eno;
7 DBMS_OUTPUT.PUT_LINE('编号:'||v_eno||'姓名:'||v_ename);
8 END;
9 /
输入 empno 的值: 7369
原值 5: v_eno :=&empno;
新值 5: v_eno :=7369;
编号:7369姓名:SMITH
PL/SQL 过程已成功完成。