`

oracle pl/sql编程

阅读更多
1:什么是PL/SQL
编程式的SQL语句

2:PL/SQL的优点:

A:PL/SQL 经过编译执行。放在Oracle的程序缓冲区中。

B:在PL/SQL中可以直接使用DML和TCL语句。可以间接以特殊的方式执行DDL和DCL语句。



3:PL/SQL块的组成部分:

声明块

可执行块

异常块
dos下运行:
SQL> set serveroutput on;--开启打印流
SQL> begin
  2  dbms_output.put_line('fdfdfd');
  3  end;
  4  /      --结束符号
在developer下面 不需要开启
begin
  dbms_output.put_line('fdfdfd');
  end;


4:变量的声明,赋值与打印。
(在某个基本块声明的内容只能在该基本块中使用,其他基本块不能使用)

5:逻辑运算符。

=
>,>=
<,<=
<>,!=

and or
6:分支
if 三种:
if 条件 then  语句 end if;

if 条件 then 语句 else 语句 end if;

if 条件1 then 语句1
elsif 条件2 then 语句2
elsif 条件3 then 语句3
...
else 语句其他
end if;

case 两种:
case 1:
case 选择器 when 值1 then 语句1;
            when 值2 then 语句2;
    ....
[else 语句]
end case;

case2  没有选择器:
case when 条件1 then 语句1;
     when 条件2 then 语句2;
    ....
[else 语句]
end case;
注意:else语句虽然可以省略,但是当when子句的常量值没有与选择器匹配是会出现异常

7:循环
1、基本循环
loop
语句;
exit when condition
end loop;

2、while
while condition
loop  语句;
end loop;

3、for
for 计数器 in [reverse] min..max
loop  语句;
end loop;
注意:reverse 计数器I只能在for循环里面使用,不能在循环外部使用

8、动态SQL
一般的PL/SQL程序设计中,在DML和DCL语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及系统控制语句,可以通过使用动态SQL来实现。

  首先我们应该了解什么是动态SQL,在Oracle数据库开发PL/SQL块中我们使用的SQL分为:静态SQL语句和动态SQL语句。
所谓静态SQL:指在PL/SQL块中使用的SQL语句在编译时是明确的,执行的是确定对象。
而动态SQL:是指在PL/SQL块编译时SQL语句是不确定的,如根据用户输入的参数的不同而执行不同的操作。编译程序对动态语句部分不进行处理,只是在程序运行时动态地创建语句、对语句进行语法分析并执行该语句。
语法:
execute immediate 语句 [INTO  行或结果集变量]
      [USING 绑定变量值...];

9、oracle异常处理
oralce系统异常可以分为3类:
1、预定义异常:
others 必须放在异常处理的最后一条语句
2、非预定义异常
声明
异常变量名 exception;
pragma exception_init(异常变量名,-异常代号);
捕获异常。
when 异常变量名 then 语句
3、自定义异常
自定义异常。

声明异常
e_XXX exception
显示触发异常
raise 异常名称
捕获异常。
when 异常名称 then


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics