2 Stimmen

Wie ruft man SQL Server Stored Procedure in Java mit Ergebnismenge und Eingabe- und Ausgabeparametern auf?

In Oracle kann ich das Folgende verwenden:

    String query = "{ ? = call get_config_func( ?, ? ) }";
    try
    {
        CallableStatement cs = con.prepareCall( query );
        cs.registerOutParameter(1, OracleTypes.CURSOR);
        cs.setInt( 2, i );
        cs.registerOutParameter(3, java.sql.types.INTEGER);
        cs.execute();
        ResultSet results = ((OracleCallableStatement)cs).getCursor (1);
        String val = cs.getString(3);

        if( results != null)
        {
            while( results.next() )
            {
             .....

Ich bin jedoch mit dem Verweis auf Oracle, die nicht mit SQL Server arbeiten wird stecken.

Ich habe Folgendes versucht:

    String query = "{ call uspGetLastLocation( ?, ? }";
    try
    {
        cs = con.prepareCall( query );
        cs.setLong(1, id );
        cs.registerOutParameter(2, java.sql.Types.VARCHAR );
        rs = cs.executeQuery();

        while(rs.next())
        {
            .....

Aber ich erhalte folgende Fehlermeldung

Falsche Syntax in der Nähe von '{'.

Ich habe Beispiele gesehen, die PreparedStatement anstelle von CallableStatement und ändern Sie die Abfrage in

    String query = "EXEC uspGetLastLocation  ?, ?";

Aber ich kann nicht herausfinden, wie ich den Parameter Output behandeln soll.

Irgendwelche Vorschläge oder Hinweise auf eine Referenz?

Danke.

3voto

user47900 Punkte 637

Sieht aus, als würden Sie o vermissen Versuchen Sie dies

String query = "{ call uspGetLastLocation( ?, ? )}";

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X