oracle数据库存储过程
存储过程的参数分为输入参数和输出参数两种。输入参数是存储过程执行的条件参数。输出参数类似于返回值,但是输出参数具有两个重要的优势:可以使用输出参数从存储过程传递出VarChar,Int,Money或任何其他数据类型的值,而返回值则只能返回整数。一个存储过程可以包含多个参数(其中包括输入和输出参数),但是只能包含一个返回值。
第一步:构建数据库定义存储过程
存储过程写法:
CREATE OR REPLACE PACKAGE TYPES AS
    TYPE RQ_REF_CURSOR IS REF CURSOR;
    — procedure getData( V_TEMP OUT TYPES.RQ_REF_CURSOR);
 END;
 CREATE OR REPLACE PROCEDURE RQ_TEST_CUR
 (
  V_TEMP OUT TYPES.RQ_REF_CURSOR,
  PID IN VARCHAR
 )
 AS
 BEGIN
  OPEN V_TEMP FOR SELECT NAME FROM TEST WHERE ID = PID;
 END RQ_TEST_CUR;
 – Create table
 create table TEST
 (
   ID   VARCHAR2(10) not null,
   NAME VARCHAR2(10)
 )
 tablespace USERS
   pctfree 10
   initrans 1
   maxtrans 255
   storage
   (
     initial 64K
     minextents 1
     maxextents unlimited
   );
 – Create/Recreate primary, unique and foreign key constraints
 alter table TEST
   add constraint TEST_PK unique (ID)
   using index
   tablespace USERS
   pctfree 10
   initrans 2
   maxtrans 255
   storage
   (
     initial 64K
     minextents 1
     maxextents unlimited
   );
第二步:建立报表
在报表中数据集的设置,如图一
图一
数据集中参数的设置:如图二
 
图二
报表参数的设置:如图三
 
图三
第三步:预览报表,正常展示。
需要注意的是,当在单元格中用call函数调用存储过程时,执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值