2011-09-29 2 views
0

2 개 매개 변수가있는 Java 코드에서 프로 시저를 실행합니다. 그 중 하나는 오브젝트 테이블입니다. 여기 패키지Java에서 OUT 매개 변수로 PL-SQL 테이블에서 데이터를 가져 오는 중

PROCEDURE SalesProc (
    p_S_table    IN t_s_table 
, p_T_table    IN OUT t_t_table   
, x_message    OUT VARCHAR2      

)

t_table 그것으로 여러 개의 문자열과 숫자를 포함 OUT 매개 변수에의 개요입니다. 패키지를 실행하기 전에 SalesObject 배열을 만들고이를 설정합니다.

여기서 목표는 resultSet을 사용하여 t_table에서 값을 얻는 것입니다.

내가 작업을 얻으려고 노력하고있는 소스는 다음과 같습니다

callstmt.registerOutParameter(2, Types.ARRAY,"T_TABLE"); 
callstmt.setArray(2, mySalesObjectArray); 
callstmt.execute(); 
java.sql.Array aa = callstmt.getArray(2); 
ResultSet rs = aa.getResultSet(); 

while(rs.next()){ 
    String ss = rs.getString(1); 
} 

다음 줄은 "java.sql.exception는"

String ss = rs.getString(1); 

가 나는 또한 개체 유형으로 캐스팅하려고주고있다 다음과 같이

salesObject[] sArray = (salesObject[])callstmt.getArray(2); 

어떤 것이 classCastException을 던지고 있습니다. "classcastException.Cannot cast java.lang.Object[2][id=16062] to java.lang.String[]"


는 어떻게 이러한 예외를 방지 할 수 있습니까?
  • 이 t_t_table
  • 가 나는 DBMS하지만 피난처로 오라클을 사용

    1. p_S_table
    2. p_T_table : 당신은 3 개 개의 매개 변수를

    +0

    오류가 발생합니까? T_TABLE의 정의는 무엇입니까? 등등. 당신은 우리가 좀 더 일할 수 있도록해야합니다. – cagcowboy

    +2

    "작동하지 않습니다."구체적으로 알려주십시오. Inb 어떤 식으로 작동하지 않습니까? 오류 메시지 등을 포함하여 관찰 된 동작을 설명하십시오. 세부 사항을 제공하지 않으면 답을 얻지 못할 것입니다. – APC

    +0

    기본 프로 시저의 구조 (바람직하게는 구문)를 게시 할 수 있습니까? – Ollie

    답변

    0

    는 계산은 가장 왼쪽 매개 변수에서 1부터 시작 IN/OUT 매개 변수를 사용하지는 않지만, IN 매개 변수를 사용하고 OUT 매개 변수를 반환하는 함수로 사용자 프로 시저를 변경하면 (함수가 무언가를 반환하기 때문에) ame 코드가 작동합니다. 여기 주조로

    :

    salesObject[] sArray = (salesObject[])callstmt.getArray(2); 
    

    당신의 salesObject 클래스를 구현해야 하나 ORAData 또는 SQLData. SQLData이 더 멋지게 보입니다.

    관련 문제