小弟近来开始学习oracle,因为以前的一套系统基于SQLServer2000,现在必须重新写存储过程
我的Oracle存储过程如下
//Package
Generated by AdventNet SwisSQL (SQLServer To oracle) Conversion tool.*/
CREATE OR REPLACE PACKAGE GLOBALPKG
AS
TYPE RCT1 IS REF CURSOR;
TRANCOUNT INTEGER := 0;
IDENTITY INTEGER;
END;//我的存储过程
CREATE OR REPLACE PROCEDURE SysLog_GetList
(
    RCT1 IN  OUT GLOBALPKG.RCT1
)
AS
BEGIN 

OPEN RCT1 FOR 
SELECT
LogTime,
LogType,
UserID,
LogIP
FROM  SysLog 
ORDER BY LogTime DESC,
 UserID ASC,
 LogType ASC,
 LogIP ASC;
END;系统提示创建成功,这个过程的功能就是读取登录日志
现在的问题是我怎么在SQLPLUS里运行 查看执行的结果
就像是在SQLServer的查询分析器中执行EXEC SysLog_GetList一样
但是在SQLplus中老是提示错误

解决方案 »

  1.   

    declare
    RCT1 GLOBALPKG.RCT1;
    begin
    GLOBALPKG.SysLog_GetList(RCT1);
    end;
    /
      

  2.   

    GLOBALPKG.SysLog_GetList(RCT1);
              *
    ERROR 位于第 4 行:
    ORA-06550: 第 4 行, 第 11 列:
    PLS-00302: 必须说明 'SYSLOG_GETLIST' 组件
    ORA-06550: 第 4 行, 第 1 列:
    PL/SQL: Statement ignored
      

  3.   

    CREATE OR REPLACE PROCEDURE "SA"."SysList"
    AS
    BEGIN 
    SELECT
     LogTime,
     LogType,
     UserID,
     LogIP
    FROM  "SA"."SysLog"
    ORDER BY LogTime DESC,
    END;这里面有啥错误?
      

  4.   

    全球鹰(393323773) 10:07:44
    declare 
    RCT1 GLOBALPKG.RCT1; 
    begin 
    GLOBALPKG.SysLog_GetList(RCT1); 
    end;
      

  5.   

    var rct1 refcursor;
    exec syslog_getlist(:rct1);