欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PL/SQL程序(一)

程序员文章站 2022-07-03 13:04:37
...
  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;