Aufrufen von SQL Server gespeicherten Prozedur in java-mit dem Ergebnis eingestellt, und die input -, output-Parameter?
In Oracle kann ich Folgendes 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() )
{
.....
Jedoch bin ich fest mit dem Verweis auf Oracle, die nicht mit SQL Server arbeiten.
Ich habe versucht, die folgenden:
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 bekomme die folgende Fehlermeldung
Falsche syntax in der Nähe von '{'.
Habe ich schon Beispiele gesehen, mit PreparedStatement
statt CallableStatement
und ändern Sie die Abfrage, um
String query = "EXEC uspGetLastLocation ?, ?";
Aber ich kann nicht herausfinden, wie man mit den Output-parameter.
Anregungen oder ein Zeiger auf eine Referenz?
Dank.
InformationsquelleAutor Burferd | 2012-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
sieht aus wie Sie vermissen eine Klammer im code.
versuchen Sie, diese
Ist der rest der syntax mit Bezug auf die Definition der output-Parameter und wie ich bin versucht, das Ergebnis zu erhalten setzen?
JDBC-API bleibt gleich für beide Oracle-und SQL-Server..so testen Sie Ihre Prozedur zuerst und überprüfen Sie, ob es gibt keine Ergebnisse. Ich glaube, dein code ausgeführt fein und haben keine Ergebnisse für die parameter, die Sie übergeben.
Vielen Dank, ich habe es endlich an die Arbeit. Die gespeicherte Prozedur erwartet wurde eine null statt 0 zu verwenden die Standardwerte.
InformationsquelleAutor user47900