자바 가 Oracle 저장 프로 세 스 를 되 돌려 주 는 사용자 정의 플러그 인 테이블 가 져 오기


자바 가 Oracle 저장 프로 세 스 를 되 돌려 주 는 사용자 정의 플러그 인 테이블 가 져 오기
2013 년 01 월 12 일 12: 13: 22 luckystar2008 열독 수: 1363
 저작권 성명: 본 고 는 블 로 거들 이 창작 한 글 로 블 로 거들 의 허락 없 이 전재 할 수 없다.https://blog.csdn.net/qincidong/article/details/8495893
 
  • , NESTEDARRAY。
  • create or replace TYPE NESTEDARRAY IS TABLE OF NVARCHAR2(32);
  •  
  • NESTEDARRAY。
  • PROCEDURE GET_ARR_RESULT(INPUTARRAY IN NESTEDARRAY, AR OUT NESTEDARRAY) IS
  • BEGIN
  • AR := NESTEDARRAY();
  •  
  • FOR I IN 1 .. INPUTARRAY.COUNT LOOP
  • AR.EXTEND;
  • AR(I) := I|| INPUTARRAY(I);
  • END LOOP;
  • END GET_ARR_RESULT;
  •  
     
  • Java :
  • import java.sql.Connection;
  • import java.sql.SQLException;
  •  
  • import oracle.jdbc.OracleCallableStatement;
  • import oracle.jdbc.OracleTypes;
  • import oracle.sql.ARRAY;
  • import oracle.sql.ArrayDescriptor;
  • import oracle.sql.Datum;
  •  
  • /**
  • * Java Oracle
  • * @author lucky star
  • *
  • */
  • public class OracleTypeResultTest {
  •  
  • /**
  • * @param args
  • */
  • public static void main(String[] args) {
  • Connection con = null;
  • OracleCallableStatement ocs = null;
  • String sql = "{call test.GET_ARR_RESULT(?,?)}";
  •  
  • try {
  • con = DBUtil.dbUtil.getConnection();
  • ocs = (OracleCallableStatement) con.prepareCall(sql);
  • String[] params = {“10001”,”10003”};
  • ArrayDescriptor arrayDesc = ArrayDescriptor.createDescriptor("NESTEDARRAY", con);
  • ARRAY inputArray = new ARRAY(arrayDesc, con, params);
  • ocs.setARRAY(1, inputArray);
  • ocs.registerOutParameter(2,OracleTypes.ARRAY,"NESTEDARRAY");
  • ocs.execute();
  •  
  • ARRAY array = ocs.getARRAY(2);
  • Datum[] datum = array.getOracleArray();
  • for (int i=0;i
  • System.out.println(datum[i].intValue());
  • }
  •  
  • } catch (SQLException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • } finally {
  • try {
  • if(ocs!=null)ocs.close();
  • if(con!=null)con.close();
  • } catch (SQLException e) {
  • // TODO Auto-generated catch block
  • e.printStackTrace();
  • }
  • }
  • }
  •  
  • }
  •  
  • VARCHAR2 , 。
  • , varchar2 NVarchar2 。
  • :create or replace TYPE NESTEDARRAY IS TABLE OF NVARCHAR2(32); 。

  • https://blog.csdn.net/qincidong/article/details/8495893
     

    좋은 웹페이지 즐겨찾기