当前位置: 代码迷 >> Java Web开发 >> java获取存储过程结果解决方法
  详细解决方案

java获取存储过程结果解决方法

热度:10334   发布时间:2013-02-25 21:15:19.0
java获取存储过程结果
oracle pl/sql 代码
SQL code
 包头:    create or replace package pkg_test is      type t_test IS RECORD(        list_id  number,        dept     varchar2,        name     varchar2,        age      number,        level    number,        address  varchar2);      type tab_test is table of t_test index by binary_integer;      procedure          p_get_data_test(dept         in  varchar2,                                         age          in  number,                                         enter_date   in  varchar2,                                         end_date     in  varchar2,                                         report_data  out tab_test);    end pkg_test;    包体:    create or replace package pkg_test is      procedure          p_get_data_test(dept         in  varchar2,                                         age          in  number,                                         enter_date   in  varchar2,                                         end_date     in  varchar2,                                         report_data  out tab_test) as        cursor c_get_data is          select list_id, '', name, age, -1, address            from t_user            where 1= 1;          m_t_test    t_test;        m_tab_test  tab_test;        m_dept      varchar2(20);        m_level     number := -1;        m_list_id   number := 0;        m_count     number := 0;      begin        open c_get_data;        fetch c_get_data into m_t_test;        exit when c_get_data%notfound;        loop          m_list_id := m_t_test.list_id;          m_dept := p_get_dept(m_list_id);          m_level := p_get_level(m_list_id);          m_t_test.dept := m_dept;          m_t_test.level := m_level;          m_tab_test(m_count) := m_t_test;          m_count := m_count + 1;        end loop;        close c_get_data;      end p_get_data_test;    end pkg_test;  



请教 在java中该如何调用这个方法并获取返回值呢?

------解决方案--------------------------------------------------------
应该有个大括号的吧
------解决方案--------------------------------------------------------
stmt =(CallableStatement )conn.prepareCall("{call pkg_test.p_get_data_test(?, ?, ?, ?, ?)}");
这样试试
  相关解决方案