WEB开发网
开发学院数据库Oracle PL/SQL过程 阅读

PL/SQL过程

 2006-12-30 11:57:46 来源:WEB开发网   
核心提示: 在Oracle中,创建好的过程可以被任何程序调用,PL/SQL过程(3),带参数的过程前面介绍的过程没有参数,主程序和过程没有数据的传递, 【配套程序位置】:第9章 executescottprocedure.sql, 读者可以尝试改变参数值,下面介绍带参数的过程的设计和使用,1. 参数

在Oracle中,创建好的过程可以被任何程序调用。

带参数的过程

前面介绍的过程没有参数,主程序和过程没有数据的传递,下面介绍带参数的过程的设计和使用。

1. 参数类型

在PL/SQL过程中,可以有3种类型的参数。

in参数:读入参数,主程序向过程传递参数值。

out参数:读出参数,过程向主程序传递参数值。

in out 参数:双向参数,过程与主程序双向交流数据。

2. 定义带参数的过程

在下面的PL/SQL程序代码中,将创建三个调用参数。

tempdeptno:类型为in,与scott.dept.deptno的类型一致,为数值型。

tempdname:类型为out,与scott.dept.dname的类型一致,为字符型。

temploc:类型为in out,与scott.dept.loc类型一致,为字符型。

创建两个过程内参数。

loc1:与scott.dept.loc的类型一致,为字符型。

dname1:与scott.dept.dname的类型一致,为字符型。

该带参数的过程的功能是从数据表scott.dept中寻找deptno字段等于tempdeptno调用参数值的dname和loc字段,和其他字符组合,送给两个出口参数。

以system用户名、sysdba身份登录【SQLPlus Worksheet】,执行下列PL/SQL程序,执行结果如图9.46所示。

  ―――――――――――――――――――――――――――――――――――――
   Set serveroutput on
   create or replace procedure scott.tempprocedure(
     tempdeptno in scott.dept.deptno%type,
     tempdname out scott.dept.dname%type,
     temploc in out scott.dept.loc%type)as
     loc1 scott.dept.loc%type;
     dname1 scott.dept.dname%type;
   begin
     select loc into loc1
     from scott.dept
     where deptno=tempdeptno;
     select dname into dname1
     from scott.dept
     where deptno=tempdeptno;
     temploc:='地址:'||loc1;
     tempdname:='姓名'||dname1;
   end;
   ―――――――――――――――――――――――――――――――――――――

【配套程序位置】:第9章 createscottprocedure.sql。

调用参数分割用“,”号。

3. 使用带参数的过程

在主程序中的实际参数和过程中的形式参数的传递有很多种办法,这里推荐读者采用一一对应的办法,按对应的位置传递参数。要求实际参数和形式参数在数据类型和位置排列上做到完全一致。

在【SQLPlus Worksheet】中执行下列PL/SQL程序,该程序调用带参数的过程scott.tempprocedure,实际参数为(10,’’,’’)

执行结果如图9.47所示。

【配套程序位置】:第9章 executescottprocedure.sql。

读者可以尝试改变参数值,然后测试过程执行结果。

访问更多PL/SQL技术应用专题相关文章请点击这里

上一页  1 2 3 

Tags:PL SQL 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接