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.