当前位置:数据库 > Oracle >>

Oracle之pl/sql入门(ONE)

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:
 
[sql] 
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</a>  

 

总结:注意每个关键词如BEGIN后边的值都要有;并且在exception后边要写明when 的一些动作。ru  
如:no_data_found,others等等。
 
     三)条件分支语句
 
      if   condition1 then

            statements1

      elsif condition2 then

            statements2

      else

             statements3

       end if;

              eg:

[sql] 
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</a>#  
 
 
     四)case语句
 
        case

             when condition1 then statements1

             when  condition2 then statement2

        .....

         else

          end case;

     eg:

   

[sql] 
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:
 
[sql] 
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:
 
[sql] 
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#  

 


Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,