Oracle 之 pl/sql入门(ONE)
一)PL/SQL编写规则
定义变量的时候,建议使用v_作为前缀,eg:v_sid,v_name
定义常量的时候,建议使用c_作为前缀
定义游标的时候,建议使用_cursor作为后缀
定义异常的时候,建议使用e_作为前缀
定义pl/sql表的类型的时候,建议使用_table_type作为后缀
定义pl/sql表的变量的时候,建议使用_table作为后缀
定义pl/sql记录类型的时候,建议使用_record_type作为后缀
定义pl/sql记录变量的时候,建议使用_record作为后缀
在pl/sql中不区分大小写,但是为了提高程序的可读性和性能,一般向insert,delete这样的dml或是ddl或是dcl采用大写的形式
pl/sql关键字采用大写形式,如declare,begin,end
数据类型采用大写的形式,标示符和参数采用小写的形式,数据库对象和列采用小写的形式。
二)PL/SQL编写格式
declare
begin
exception
end;
/
declare 表示声明部分,在这一部分可以对变量进行变量,常量,游标,复合数据类型的定义,是可选部分。begin是语句执行部分,执行相关的sal或是pl/sql块,这一部分是必须有的。exception,是定义运行部分可能出现的错误,是可选部分。注意在end后边有;,如果要执行这个pl/sql需要使用/进行执行。在pl/sql中注释有两种,一种是单行注释用--,令一种是多行注释使用/* */。
eg:
SYS@orcl#r
1 DECLARE
2 a NUMBER;
3 BEGIN
4 a:=2+200 ;
5 DBMS_OUTPUT.PUT_LINE(a);
6 EXCEPTION
7 WHEN OTHERS THEN
8 dbms_output.put_line('the error');
9* END;
202
PL/SQL 过程已成功完成。
SYS@orcl
总结:注意每个关键词如BEGIN后边的值都要有;并且在exception后边要写明when 的一些动作。ru
如:no_data_found,others等等。
三)条件分支语句
if condition1 then
statements1
elsif condition2 then
statements2
else
statements3
end if;
eg:
SCOTT@orcl#r
1 DECLARE
2 a NUMBER;
3 BEGIN
4 a:=200;
5 if a>200 then
6 dbms_output.put_line('high');
7 elsif a=200 then
8 dbms_output.put_line('=');
9 else
10 dbms_output.put_line('lower');
11* end if; end;
=
PL/SQL 过程已成功完成。
SCOTT@orcl#
四)case语句
case
when condition1 then statements1
when condition2 then statement2
.....
else
end case;
eg:
SCOTT@orcl#declare
2 grade char(1):='B';
3 appraisal varchar2(20);
4 begin
5 appraisal:=
6 case grade
7 when 'A' then 'z'
8 when 'B' then 'j'
9 when 'C' then 'D'
10 else 'b'
11 end;
12 dbms_output.put_line(appraisal);
13 end;
14 /
j
PL/SQL 过程已成功完成。
SCOTT@orcl#
五)循环语句 loop and while and for
loop循环是基本循环格式为:
loop
statements
exit [when condition]
end loop;
每个loop后边的语句都是被执行一次,然后当exit的条件达到的时候就会退出,然后结束循环。
eg:
SCOTT@orcl#declare
2 total number:=0;
3 salary number :=1800;
4 begin
5 loop
6 total:=total+salary;
7 exit when total>25000;
8 end loop;
9 dbms_output.put_line('total salaryis'||total);
10 end;
11 /
total salaryis25200
PL/SQL 过程已成功完成。
SCOTT@orcl#
while循环语句
该语句至少要执行一次循环体内的语句,而对于while循环来说,只有条件为true的时候,才执行循环体内的语句,while语句以while。。。loop开始,以end loop结束。
eg:
SCOTT@orcl#r
1 declare
2 total number:=0;
3 salary number:=2000;
4 begin
5 while total<200000 loop
6 total:=total+salary;
7 end loop;
8 dbms_output.put_line(total);
9* end;
200000
PL/SQL 过程已成功完成。
SCOTT@orcl#