PL/SQL程序(一)

  1. 例一:在屏幕上显示hello World字样  
  2. Java程序  
  3. Public static void main(String[] args){  
  4.     System.out.println(“hello World”);  
  5. }  
  6. PL/SQL程序  
  7. SQL> declare  
  8.   2  begin  
  9.   3  dbms_output.put_line('hello  World');  
  10.   4  end;  
  11.   5  /  
  12. 注意:如果要在屏幕上输出信息,需要将serveroutput开关打开  
  13. SQL>   set serveroutput on;  
  14.   
  15. 什么是PL/SQL?  
  16. 1、PL/SQL(Procedure Language/SQL)  
  17. 2、PLSQL是Oracle对sql语言的过程化扩展  
  18. 3、指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。  
  19.   
  20. Sql优点:  
  21. 1、  交互式非过程化  
  22. 2、  数据操纵功能强  
  23. 3、  自动导航语句简单  
  24. 4、  调试容易使用方便  
  25.   
  26. 例二:为职工长工资,每人长10%的工资  
  27. Update emp set sal=sal*1.1;  
  28. 注:把sql语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比工程语言简单、高效、灵活和实用。  
  29.   
  30. PL/SQL程序结构  
  31. Declare  
  32.     说明部分(变量说明,光标申明,例外说明)  
  33. Begin  
  34.     语句序列(DML语句)  
  35. Exception  
  36.     例外处理语句  
  37. End;/  
  38.   
  39. 变量和常量说明  
  40. Var1 char(15); 说明变量名、数据类型和长度后用分号结束说明语句                                                                                                                                                                                                                                                                                                                                                                                                                                                    
  41. My_name emp.ename%type; 引用型变量,既my_name的类型与emp表中ename列的类型一样  
  42. Emp_rec emp%rowtype;  记录型变量  
  43.   
  44. If语句  
  45. 1.      IF   条件  THEN 语句1;  
  46.        语句2;  
  47.         end if;  
  48. 2. IF  条件  THEN  语句序列1;     
  49.     ESLE   语句序列 2;  
  50.     END   IF;  
  51. 3. IF   条件  THEN 语句;  
  52.    ELSIF  语句  THEN  语句;  
  53.   ELSE    语句;  
  54.  END  IF;  
  55.   
  56. 例三:If语句示例:  
  57. 要求:从键盘输入,并判断用户输入的数字  
  58. declare  
  59.  pnum number:=#  
  60.  begin  
  61. if pnum>10 then  
  62. dbms_output.put_line('变量值大于10');  
  63. elsif pnum=10 then  
  64. dbms_output.put_line('变量值等于10');  
  65. else   
  66. dbms_output.put_line('变量小于10');  
  67. end if ;  
  68. end;  
  69. 提示:从键盘输入:  
  70. accept num prompt '请输入一个数字';  
  71. 得到键盘输入的值:  
  72.         pnum number := #  
  73.   
  74. 循环语句:  
  75. 1、WHILE  total  <= 25000  LOOP  
  76. .. .  
  77. total : = total + salary;  
  78. END  LOOP;  
  79. 2、FOR   I   IN   1 . . 3    LOOP  
  80. 语句序列 ;  
  81. END    LOOP ;   
  82. 3、Loop  
  83. EXIT [when   条件];  
  84. ……  
  85. End loop  
  86.   
  87. 例四:循环语句示例:  
  88. 输出数字1—10  
  89. 方法一:  
  90. declare  
  91. num number := 1;  
  92. begin  
  93.   while num<=10  
  94. loop  
  95.   dbms_output.put_line(num);  
  96.   num :=num+1;  
  97. end loop;  
  98. end;  
  99.   
  100. 方法二:for方法  
  101. declare  
  102. num number := 10;  
  103. begin  
  104.   for num in 1..10  
  105. loop  
  106.   dbms_output.put_line(num);  
  107. end loop;  
  108. end;  
  109.   
  110. 方法三:  
  111. declare  
  112. num number := 1;  
  113. begin  
  114. loop  
  115.   exit when num>10;   -----当num>10的时候停止执行  
  116.   dbms_output.put_line(num);  
  117.   num :=num+1;  
  118. end loop;  
  119. end;  

猜你喜欢

转载自avords.iteye.com/blog/2241577
今日推荐