汤阳光_Oracle课程文档(三).docVIP

  • 1
  • 0
  • 约3.64千字
  • 约 11页
  • 2019-04-05 发布于陕西
  • 举报
PL/SQL程序设计 什么是PL/SQL PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展 指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。 把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PLSQL面向过程但比过程语言简单、高效、灵活和实用。 Plsql(oracle), Transact-sql(SQL server) HelloWorld 写一段PL/SQL程序,在屏幕上打印“Hello World!” 注意:如果要在屏幕上输出信息,需要将serveroutput开关打开: set serveroutput on -- --打印Hello World set serveroutput on declare --变量说明 begin --程序体 dbms_output.put_line(Hello World); end; / PL/SQL程序结构 declare declare 说明部分 (变量说明,光标申明,例外说明 〕 begin 语句序列 (DML语句〕… exception 例外处理语句 end; / 如果没有变量,就可以不写declare段 PL/SQL对大小写不敏感。 赋值是使用冒号等号“:=”(中间不能有空格) 注释使用“--”或是“/* ... */”(就是SQL注释) 注意最后的end后面有个分号。 变量与赋值 声明变量 说明变量 (char, varchar2, date, number, boolean, long) 记录变量分量的引用: emp_rec.ename := ADAMS; 属性类型有两种: %TYPE - 引用变量和数据库列的数据类型 %ROWTYPE - 提供表示表中一行的记录类型 使用属性类型的优点: 不需要知道被引用的表列的具体类型 如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变 赋值语句 var1:=this is a argument; emp_rec.sal:= sal *2 + nvl(comm, 0); sum_sal:=sum_sal+v_sal; FETCH c1 INTO e_eno , e_sal ; Select sal into psal from emp where .... IF语句 语法 只有IF的情况: IF IF 条件 THEN 语句1; 语句2; END IF; 带ELSE的情况: IF IF 条件 THEN 语句序列1; ESLE 语句序列 2; END IF; IF ... ELSE IF ... ELSE的情况: IF IF 条件 THEN 语句; ELSIF 语句 THEN 语句; ELSE 语句; END IF; 注意:是ELSIF,不是ELSEIF。 示例 要求:判断用户输入的数字。 提示: 从键盘输入:accept num prompt 请输入一个数字; 得到键盘输入的值:pnum number := num; declare declare --保存用户输入的数字( 隐式转换) pnum number := 5; -- 设置不同的值进行测试 begin --判断 if pnum=0 then dbms_output.put_line(您输入的是0); elsif pnum=1 then dbms_output.put_line(您输入的是1); elsif pnum=2 then dbms_output.put_line(您输入的是2); else dbms_output.put_line(其他数字); end if; end; / 循环语句 语法 Loop Loop Loop EXIT [when 条件]; ... End loop For FOR FOR i IN 1..3 LOOP 语句序列 ; END LOOP; While WHILE total = 25000 WHILE total = 25000 LOOP ... total := total + salary; END LOOP; 示例 declare declare pnum number := 1; begin loop -- 退出条件 exit when pnum 10; --打印 dbms_out

文档评论(0)

1亿VIP精品文档

相关文档