这个是开发语言做的了。
你的问题是java的基础知识欠缺。

解决方案 »

  1.   

    在java里面要得到这些结果很简单,但是,我的意思是,我在java里面call一个存储过程之后,我要得到执行完过程的结果,比如说我执行一个select * from IO where ststus = 0,的过程,调用完之后我必须得到这个resultset,不知道可不可以像java一样直接得到,然后get到呢,我很笨,只能说的这么多。
      

  2.   

    正好看到一篇文章可以回答你的问题(转自网易Java版,作者doggie0):★原文转载自Java版doggie0的《用Java调用Oracle的存储过程返回的ResultSet的代码》★
    前几日在Java版及Oracle版苦苦寻觅如何用Java调用由Oracle的存储过程(或函数)返回的ResultSet的方法及实例,确实得到很多热心人的真诚帮助(感谢~感谢) 
    但终未找到一个实例,屡试不成,得不到要领,没办法,只有自己硬着头皮看Oracle的文档,请教同事,反复摸索试验,终于成功,特此将本段代码,拿出与大家共享,若有疏漏或不足,还希望大家多多指教,谢谢~ /////////////////////////////////////////////////////////// 
    //Step 1: 下在Oracle的JDBC驱动(有驱动可掠过) /////////////////////////////////////////////////////////// 
    //Step 2:创建Oracle PL/SQL 包 create or replace package myPackage is   type ref_cur is REF CURSOR;   function getTable(para1 in varchar2) return myPackage.ref_cur; end myPackage; create or replace package body myPackage is   function getTable(para1 in varchar2) return myPackage.ref_cur is 
        Result myPackage.ref_cur; 
      begin 
        open Result for 
          select * from myTable where id = para1; 
        return(Result); 
      end; end myPackage; 
    ////////////////////////////////////////////////////////// 
    //Step 3:在Java程序中调用 //ClassA.java 
    package mytools.db; 
    import java.sql.*; public class ClassA() 

      public ClassA() 
      { 
      } 
      //功能:调用存储过程(函数),接收记录集(ResultSet) 
      //参数:cn - 一个(Oracle)数据库连接 
      public void callStoreFunction(Connection cn) 
      { 
        CallableStatement cstm = null; 
        ResultSet rst = null; 
        try 
        { 
          cstm = cn.prepareCall("{call ? := myPackage.getTable(?)}"); 
          cstm.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); 
          cstm.execute(); 
          cstm.setString(2,"123"); 
          rst = (ResultSet)cstm.getObject(1); 
          while(rst.next()) 
          { 
            System.out.println(rst.getString(1)); 
            //处理数据... ... 
          } 
          rst.close(); 
        } 
        catch(SQLException e) 
        { 
          //异常处理 
        } 
        finally 
        { 
          //cstm.close(); //关闭CallableStatement的代码 
        } 
      } } 
      

  3.   

    CREATE OR REPLACE PACKAGE myPackage IS
      TYPE ref_cur IS REF CURSOR; 
      FUNCTION getTable(status IN NUMBER) RETURN myPackage.ref_cur; 
    END myPackage; 
    CREATE OR REPLACE PACKAGE  BODY myPackage IS
      FUNCTION getTable(status IN NUMBER) RETURN myPackage.ref_cur IS 
        Result myPackage.ref_cur; 
    BEGIN
        open Result for 
          SELECT * FROM sendlog WHERE id = status; 
        return(Result); 
      END; 
    END myPackage; 
    ------------------------------------------------------------------
    为什么我创建不了,总是编译出错,我太笨了,简直是ORACLE白痴,前辈,救我!
      

  4.   

    我就是不知道什么错啊
    编译器只是提示创建包错吴
    set serveroutput on 都不行
      

  5.   

    你这样执行就可以了,还有看编译错误,不是你那样]看的,用SHOW ERRORS命令:
    CREATE OR REPLACE PACKAGE myPackage IS
      TYPE ref_cur IS REF CURSOR; 
      FUNCTION getTable(status IN NUMBER) RETURN myPackage.ref_cur; 
    END myPackage; 
    /
    CREATE OR REPLACE PACKAGE  BODY myPackage IS
      FUNCTION getTable(status IN NUMBER) RETURN myPackage.ref_cur IS 
        Result myPackage.ref_cur; 
    BEGIN
        open Result for 
          SELECT * FROM sendlog WHERE id = status; 
        return(Result); 
      END; 
    END myPackage; 
    /