Hallo zusammen,
ich stehe aktuell vor dem Problem eine PL/SQL Prozedur aufzurufen, die einen OUT Paramater vom Typ TYPE hat.
Der TYPE ist wie folgt definiert:
Die Deklaration der Prozedur ist wie folgt:
Bislang kann ich die Datenbank connectieren und die Prozedur aufrufen.
Nur habe ich keine Ahnung, was für eine Typdefinition im registerOutParameter für den PL/SQL TYPE benutzen muss
Mein bisherigen Versuch lautet wie folgt:
Weiß hier jemand Rat?
Ich bin über jede Idee dankbar
Vielen Dank
ich stehe aktuell vor dem Problem eine PL/SQL Prozedur aufzurufen, die einen OUT Paramater vom Typ TYPE hat.
Der TYPE ist wie folgt definiert:
Code:
CREATE OR REPLACE TYPE T_TAB_NUM AS TABLE OF NUMBER(11);
Die Deklaration der Prozedur ist wie folgt:
Code:
PROCEDURE get_par_nr ( p_pos_param IN VARCHAR2,
p_neg_param IN VARCHAR2,
p_kamp_name IN VARCHAR2,
p_nur_count IN VARCHAR2 := 'J',
p_tab_par OUT t_tab_num,
p_trace_level IN PLS_INTEGER := 0 );
Bislang kann ich die Datenbank connectieren und die Prozedur aufrufen.
Nur habe ich keine Ahnung, was für eine Typdefinition im registerOutParameter für den PL/SQL TYPE benutzen muss
Mein bisherigen Versuch lautet wie folgt:
Java:
String pos = "KAP_PAR_NUMMER = 152217 ";
String neg = " ";
Array partner = null;
StructDescriptor voRowStruct = null;
ArrayDescriptor arrydesc = null;
Connection con=getConnection("mis_ro", "mis_ro");
CallableStatement proc = null;
proc = con.prepareCall("{call MIS.KAMPAGNENLISTE_PA.get_par_nr(?,?,?,?,?,?) }");
OracleCallableStatement cStmt=null;
proc.setString(1, pos); // p_pos_param
proc.setString(2, neg); // p_neg_param
proc.setString(3, ""); //p_kamp_name
proc.setString(4, "J");//p_nur_count
proc.registerOutParameter(5,OracleTypes.ARRAY, "MIS.T_TAB_NUM"); //p_tab_par
proc.setInt(6, 0); //p_trace_level
ResultSet result = proc.executeQuery();
System.out.println(result.getFetchSize());
Weiß hier jemand Rat?
Ich bin über jede Idee dankbar
Vielen Dank