ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库:PL/SQL语言基础知识&存储过程基础知识1

数据库:PL/SQL语言基础知识&存储过程基础知识1

原创 Linux操作系统 作者:果果的空间 时间:2013-08-14 10:25:08 0 删除 编辑
1.PL/SQL(procedure Language/SQL)语言是Oracle对SQL语句的过程化扩充,是一个完整的编程语言。
2.PL/SQL作用:
1)PL/SQL于Oracle数据库服务器、工具、权限等环境紧密的集成在一起。
2)PL/SQL语言在Oracle系统中是核心的编程语言,它应用于很多方面:如存储过程、触发器、包过程、Web应用以及前端开发工具的时间处理程序等。
3)PL/SQL语言编写的主要不是客户端的程序,而是服务器端的程序。
3.PL/SQL程序定义:PL/SQL是一个块结构语言,构成PL/SQL程序的基本单元都是一个个的逻辑块。
4.基本单元:包括过程、函数、匿名块等。每一个逻辑块还可包含任意数量的嵌套子快。每一个逻辑块对应一个要解决的问题或子问题。
5.PL/SQL块由3部分组成:Declare 说明部分 Begin 执行部分(程序主体) Exception 例外处理部分 END;
1)说明部分:是书写说明语句的地方,其中包含变量说明、光标说明、例外说明、指针、记录、用户自定义类型等。被说明项(如变量)的作用域仅限于本逻辑中;
注意:PL/SQL中的赋值符号是“:=”,如:married BOOLEAN := TRUE;
2)PL/SQL执行顺序:从执行部分的第一个语句开始,依程序流程执行。
3)说明部分:可以嵌套子块,可以定义局部子程序,该类子程序仅能在定义它的模块中使用。
4)执行部分:必不可少;说明部分和例外处理部分可选。
6.注意:PL/SQL中有布尔型;SQL中没有布尔型
7.变量定义:PL/SQL提供了一种特殊的变量定义方法,即在定义一个变量时可以引用表中列的类型和结构。
定义变量方法:变量名 [模式名.]表明.列名%TYPE
变量:v_ename emp.ename%TYPE
常量:MAX_number CONSTANT := 1000;
8.PL/SQL变量赋值方法有两种:
第一种:利用赋值语句,如:an_sal := mon_sal*12 + NVL(comm,0);
第二种:把数据从数据库中读到变量中,如:v_age emp.age%TYPE;
注意:NVL(comm,0)是一个函数,有两个参数,当一个参数有值时,该函数值就等于第一个参数的值;第一个参数值为空时,该函数值就等于0;这样就不会出现表达式加一个空值。
9.PL/SQL程序中注释语句用/**/ 和 --
11.select 语句及其into 关键字为程序读取数据库中的数据提供了途径,在PL/SQL程序中,没有into子句的select语句是没有意义的,查询结果不会显示在终端屏幕上。
12.编写实例和执行存储过程
1)编写实例:存储过程:emp_proce
create or replace procedure emp_proce is
v_ename emp.ename%TYPE;
v_job emp.job%TYPE;
emp_rec emp%ROWTYPE; --记录型变量如果要输出需要解析
avg_sal emp.sal%TYPE;
begin
select ename,job into v_ename,v_job
from emp
where empno=7369;

select avg(sal) into avg_sal
from emp
where empno=7369;

select * into emp_rec
from emp
where empno=7369;

dbms_output.put_line(v_ename||' '||v_job||' '||avg_sal);
end emp_proce;
2)执行过程
存储过程需要编译,F8
存储过程有输出时,需要定义数据语句:dbms_output.put_line(变量);记录型变量如果要输出需要解析
存储过程的执行只能在command模式下进行:exec 存储过程名,如:exec emp_proce;
在执行存储过程前,要在command模式下启动serveroutput,使用set serveroutput on,否则,无法输出结果

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29056818/viewspace-768444/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-07-18

  • 博文量
    60
  • 访问量
    115064