oracle数据库存储过程

存储过程的参数分为输入参数和输出参数两种。输入参数是存储过程执行的条件参数。输出参数类似于返回值,但是输出参数具有两个重要的优势:可以使用输出参数从存储过程传递出VarCharIntMoney或任何其他数据类型的值,而返回值则只能返回整数。一个存储过程可以包含多个参数(其中包括输入和输出参数),但是只能包含一个返回值。

第一步:构建数据库定义存储过程

存储过程写法:

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
  );

第二步:建立报表

在报表中数据集的设置,如图一

http://runqian-ros.ticp.net/reportmis/mis2/reportcenter/ewebeditor/imgServlet?fileID=490f9659-9ec8-481c-9e90-8589dc80a34a

图一

数据集中参数的设置:如图二
http://runqian-ros.ticp.net/reportmis/mis2/reportcenter/ewebeditor/imgServlet?fileID=7a12a362-edf5-46c1-a99b-c3453ff199f6

图二

报表参数的设置:如图三
http://runqian-ros.ticp.net/reportmis/mis2/reportcenter/ewebeditor/imgServlet?fileID=e908a8e4-1e9d-4ed6-9a05-e5bbb3d598ec

图三

第三步:预览报表,正常展示。

需要注意的是,当在单元格中用call函数调用存储过程时,执行存储过程,返回结果数据集合,只能返回单列数据,如果存储过程返回多个字段,则返回第一个字段的结果值

热门文章