2016-05-19 12 views
0

Ich versuche eine Funktion mit 2 IN-Parametern und aufzurufen als CLOB zurückgeben. Probleme damit haben. Ich bekomme einen Ausdruck vom falschen Typ ORA-06550:. Lassen Sie mich wissen, was falsch mit diesem CodeORA-06550: Zeile 1, Spalte 13: PLS-00382: Ausdruck ist vom falschen Typ ORA-06550: Zeile 1, Spalte 7: PL/SQL: Anweisung ignoriert

Class.forName("oracle.jdbc.OracleDriver").newInstance(); 
     String connectionURL = "someurl"; 



    // Class.forName("com.mysql.jdbc.Driver").newInstance(); 

    // con=DriverManager.getConnection(connectionURL,"root","root"); 
     con = DriverManager.getConnection(connectionURL); 
     callableStatement = con.prepareCall(getmaillist); 
     callableStatement.setInt(1, 8498); 
     callableStatement.setString(2,"EMAIL"); 
     out.println("i am at 1"); 
     callableStatement.registerOutParameter(3,Types.CLOB); 
     out.println("i am at 1"); 
     //callableStatement.setClob(3,clob); 
     //callableStatement.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR); 
     callableStatement.executeQuery(); 
     out.println("i am at 1"); 
     rst = (ResultSet) callableStatement.getObject(3); 
     out.println("i am at 1"); 
    // stmt=con.createStatement(); 
+0

Können Sie Ihre Emaillist Prozedur posten? –

+0

Hier ist die Funktion, ich rufe FUNKTION get_mail_list (p_sys IN NUMBER, \t \t p_list_type IN VARCHAR2) RETURN CLOB; Diese nimmt man diese Werte für p_list_type Parameter: ‚EMAIL‘ ‚PHONE‘ ‚MAIL‘ – uidev

+0

Ich bin nicht in der Lage läuft diese Codezeilen callableStatement.executeQuery(); Den obigen Fehler erhalten – uidev

Antwort

0

Haben Sie versucht:

ResultSet rs1 = con.createStatement().executeQuery("select get_mail_list(8498,'EMAIL') from dual"); 
String strRes = rs1.getString(1); 
+0

Es funktionierte Charme. Groß! – uidev