WEB开发网
开发学院数据库Oracle 一个通过Oracle8i存储过程,返回记录集的程序包(存... 阅读

一个通过Oracle8i存储过程,返回记录集的程序包(存储过程)

 2007-05-13 12:30:28 来源:WEB开发网   
核心提示:提示:在Oracle8i中,如果需要通过存储过程返回结果集, 需要使用游标!CREATE OR REPLACEPACKAGE BODY "SMS_PAY"."SMSMAINT"IS--功能描述:查询代理银行交易流水信息 writer: wang haibo 2004-08-24P

提示:在Oracle8i中,如果需要通过存储过程返回结果集, 需要使用游标!

CREATE OR REPLACE PACKAGE BODY "SMS_PAY"."SMSMAINT"                                       
IS
--功能描述:查询代理银行交易流水信息 writer: wang haibo 2004-08-24
PROCEDURE GetAgtBankFlow(AreaCode in varchar2,KeyWord in varchar2,startTradeDate in varchar2,endTradeDate in varchar2,Re_CURSOR OUT T_CURSOR,ret out number)
  is
  IsExists number;
  strSQL VARCHAR2(2048);
Begin
  --检查临时表是否已经存在,如果不存在,则创建,否则插入数据 start
Select Count(*) Into IsExists from all_tables Where Table_Name='TEMPAGTBANKFLOW';
IF IsExists=0 Then
   strSQL:='CREATE GLOBAL TEMPORARY TABLE SMS_PAY.TEMPAgtBankFlow
    (AGTID VARCHAR2(13) ,BANK_GLIDE Number(12),TradeType VARCHAR2(20),Trade_Money Number(14,2),
    TRADEDATE VARCHAR2(10),TRADETIME VARCHAR2(8),BankNAME VARCHAR2(30),
    AreaCode Varchar2(30), AreaName VARCHAR2(30),State VARCHAR2(30),CheckFlag Number(1),
    StatusFlag Number(1),SuccFlag Number(1)) on commit preserve rows';
   --把临时表的创建选项由on commit delete rows改为on commit preserve rows; 
   --否则在调用的时候,回出现ORA-08103: object no longer exists
   Execute Immediate strSQL;
  Else
   Execute immediate 'Truncate table Sms_pay.TEMPAGTBANKFLOW';
  End IF;

--检查临时表是否已经存在,如果不存在,则创建,否则插入数据 end

1 2 3 4 5 6  下一页

Tags:一个 通过 Oraclei

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