oracle_pl_sql 实例精解
第一章 pl/sql概念
pl/sql = procedural language extension to sql = sql的过程式程序语言扩展
1、优点
1)多个sql语句合并为一个pl/sql时,会当作一个独立的单元发送给服务器,
之后服务器会把这些sql的执行结果返回回来,显示如果10个sql的话也只需要2次传输
2)既然是一种语言,肯定预备一些逻辑编程能力
3)将一些功能封装为一个个procedure,可以提高开发效率和安全性
2、pl/sql 分命名和匿名两种
1)匿名pl/sql语句没有名称,这样的程序不在数据库中存储,无法在后期调用
2)pl/sql语句包括3部分,声明,执行,异常处理,声明和异常处理部分是可选的
declare
declaration statements
begin
executable statements
exception
exceptoin statements
end;
3)声明部分,包括对pl/sql标识符的定义,如变量、常量、游标等
变量 = 变量名 类型;
常量 = 常量名 constant(保留字) 类型 := 常量;
每个声明后都有一个分号
4)可执行部分,这部分包含可执行的语句,允许操作声明部分所声明的变量
SET SERVEROUTPUT ON
declare
v_empno NUMBER(4);
v_ename varchar2(10);
begin
select empno,ename
into v_empno,v_ename
from scott.emp
where empno=7369;
dbms_output.put_line('empno-name'||v_empno||'-'||v_ename);
end;
5)异常部分
SET SERVEROUTPUT ON
declare
v_empno NUMBER(4);
v_ename varchar2(10);
sv_empno number := &ssv_empno;
begin
select empno,ename
into v_empno,v_ename
from scott.emp
where empno=sv_empno;
dbms_output.put_line('---------------------------');
dbms_output.put_line('empno-name'||v_empno||'-'||v_ename);
dbms_output.put_line('---------------------------');
exception
when no_data_found then
dbms_output.put_line('---------------------------');
dbms_output.put_line('this num is not used by emp');
dbms_output.put_line('---------------------------');
end;
6)替代变量
使pl/sql实现与用户的交互功能
declare
v_empno NUMBER(4);
v_ename varchar2(10);
begin
select empno,ename
into v_empno,v_ename
from scott.emp
where empno=6767;
dbms_output.put_line('---------------------------');
dbms_output.put_line('empno-name'||v_empno||'-'||v_ename);
dbms_output.put_line('---------------------------');
exception
when no_data_found then
dbms_output.put_line('---------------------------');
dbms_output.put_line('this num is not used by emp');
dbms_output.put_line('---------------------------');
end;
7)练习
显示当前系统时间
SQL> begin
2 dbms_output.put_line('today is '||to_char(sysdate,'day,yyyy-mm-dd hh24:mi:ss'));
3 end;
4 /
today is monday ,2014-11-24 06:17:14
PL/SQL procedure successfully completed.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22193071/viewspace-1344576/
,如需转载,请注明出处,否则将追究法律责任。