Simple Pipelined Function

本文介绍了一个PLSQL包的创建及使用过程。该包定义了用于存储贸易日期、交易类型等信息的数据类型,并提供了一个函数FN_DIC_DB_TAB来返回包含这些信息的表格类型。函数通过管道输出方式,从DUAL表中获取数据并将其转换为定义的数据类型。

SELECT * FROM TABLE(PKG_TEST.FN_DIC_DB_TAB)

CREATE OR REPLACE PACKAGE PKG_TEST IS

 

TYPE OBJ_DICDB_ROWTYPE IS RECORD(

TRADE_DATE DATE,

SDB_TRANSACTION_TYPE_CODE VARCHAR2(10 CHAR),

NUMBER_OF_SHARE NUMBER,

BROKER_NAME VARCHAR2(50 CHAR));

 

TYPE TABLETYPE_DIC_DB IS TABLE OF OBJ_DICDB_ROWTYPE;

 

FUNCTION FN_DIC_DB_TAB RETURN TABLETYPE_DIC_DB

PIPELINED;

 

END PKG_TEST;

CREATE OR REPLACE PACKAGE BODY PKG_TEST IS

 

FUNCTION FN_DIC_DB_TAB RETURN TABLETYPE_DIC_DB

PIPELINED IS

V_DIC_DB OBJ_DICDB_ROWTYPE;

CUR_RETURN_DATA SYS_REFCURSOR;

BEGIN

 

OPEN CUR_RETURN_DATA FOR

SELECT SYSDATE TRADE_DATE,

'S' SDB_TRANSACTION_TYPE_CODE,

100 NUMBER_OF_SHARE,

'Broker 1' BROKER_NAME

FROM DUAL

UNION ALL

SELECT SYSDATE TRADE_DATE,

'B' SDB_TRANSACTION_TYPE_CODE,

200 NUMBER_OF_SHARE,

'Broker 2' BROKER_NAME

FROM DUAL;

 

LOOP

FETCH CUR_RETURN_DATA

INTO V_DIC_DB;

EXIT WHEN(CUR_RETURN_DATA%NOTFOUND);

PIPE ROW(V_DIC_DB);

END LOOP;

RETURN;

END;

END PKG_TEST;

转载于:https://www.cnblogs.com/teamleader/p/6970179.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值