ITPub博客

首页 > Linux操作系统 > Linux操作系统 > pl/sql developer test窗口测试数组类型pl/sql输入参数的存储过程

pl/sql developer test窗口测试数组类型pl/sql输入参数的存储过程

原创 Linux操作系统 作者:wisdomone1 时间:2012-03-19 15:53:14 0 删除 编辑
1,连接到oracle scott用户
2,创建如下包及包体
SQL> create or replace package pkg_teacher
  2  as
  3  type array_dname is table of dept.dname%type index by binary_integer;
  4  procedure proc_dept(v_dname dept.dname%type);
  5  end;
  6  /

Package created

SQL> create or replace package body pkg_teacher
  2  as
  3  procedure proc_dept(v_dname in dept.dname%type)
  4  is
  5  begin
  6  null;
  7  end proc_dept;
  8  end pkg_teacher;
  9  /

Package body created

3,建立调用上述包中的plsql记录类型的存储过程
SQL> create or replace procedure proc_ref
            (in_dname in pkg_teacher.array_dname,
             out_cnt out integer)
  2  as
  3  begin
  4  select count(*) into out_cnt from dept where dname in(in_dname(1),in_dname(2));
  5  end;
  6  /

Procedure created

4,以pl/sql developer工具打开第3步创建的存储过程proc_ref,然后打开test窗口

 弹出如下窗口



5,查看上述的窗口,发现几点信息:
    a:in_dname pl/sql记录类型的输入变量在窗口中无法输入
    b:in_dname pl/sql记录类型的输入变量在begin end代码块不是以绑定变量方式,而是以proc_ref(in_dname=>in_dname),区别于绑定变量out_cnt=>:out_cnt

6,真正在窗口(此处窗口指pl/sql developer工具的测试窗口)中调用此存储过程的代码如下:
               declare
  -- Non-scalar parameters require additional processing
  in_dname pkg_teacher.array_dname;
begin
  -- Call the procedure
  in_dname(1):='ACCOUNTING';//主要是这行
  proc_ref(in_dname => in_dname,
           out_cnt => :out_cnt);
end;

hxs.GIF

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

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb qq: 305076427 微博: wisdomone9

注册时间:2008-04-04

  • 博文量
    2164
  • 访问量
    11742546