hilpers


  hilpers > comp.lang.* > comp.lang.java

 #1  
11.02.2004, 13:09
Ole Schmidt
Hallo,

ich habe eine gespeicherte Prozedur in meiner Datenbank (Oracle), die ich
jetzt aus Java aurufen möchte.

Die Prozedur heisst to_read und hat zwei IN-Parameter.

Ich habe das folgendermassen versucht:


/**
* @jc:sql statement="call to_read({keyVal}, {intVal})"
*/
void to_read(String keyVal, String intVal);

Nun bekomme ich aber die Fehlermeldung "missing method body"

Kann mir jemand sagen wie ich das richtig mache?!

Vielen Dank für die Hilfe.

Gruss

Ole
 #2  
11.02.2004, 13:37
Andreas Schneider
Hallo Ole,

> ich habe eine gespeicherte Prozedur in meiner Datenbank (Oracle), die ich
> jetzt aus Java aurufen möchte.
>
> Die Prozedur heisst to_read und hat zwei IN-Parameter.


Dein Beispiel ist etwas knapp gehalten.

Hier hast Du ein Stück Samplecode:

Wichtig ist das Du die Parameter für den "prepareCall" mit '?'
markierst.

So etwa: cs = connection.prepareCall("{call to_read(?,?)}");

---------------------------------------------------------
CallableStatement cs;
try {
// Call a procedure with no parameters
cs = connection.prepareCall("{call myproc}");
cs.execute();

// Call a procedure with one IN parameter
cs = connection.prepareCall("{call myprocin(?)}");

// Set the value for the IN parameter
cs.setString(1, "a string");

// Execute the stored procedure
cs.execute();

// Call a procedure with one OUT parameter
cs = connection.prepareCall("{call myprocout(?)}");

// Register the type of the OUT parameter
cs.registerOutParameter(1, Types.VARCHAR);

// Execute the stored procedure and retrieve the OUT value
cs.execute();
String outParam = cs.getString(1); // OUT parameter

// Call a procedure with one IN/OUT parameter
cs = connection.prepareCall("{call myprocinout(?)}");

// Register the type of the IN/OUT parameter
cs.registerOutParameter(1, Types.VARCHAR);

// Set the value for the IN/OUT parameter
cs.setString(1, "a string");

// Execute the stored procedure and retrieve the IN/OUT value
cs.execute();
outParam = cs.getString(1); // OUT parameter
} catch (SQLException e) {
}
---------------------------------------------------------

Gruss
Andreas
 #3  
12.02.2004, 14:33
Ole Schmidt
Hallo Andreas,

super, hat geklappt!

Vielen Dank für Deine Hilfe.

Gruss

Ole
Ähnliche Themen
gespeicherte Prozeduren

Hallo..., wie kann ich Sp auf einen anderen SQL-Server einsetzen ohne diese wieder neu zu schreiben? Danke MfG Hans-Jürgen

gespeicherte Prozeduren

wenn ich von verschiedenen applikation auf die gleiche datenbank zugreifen will, dann sollte man sperren, update, insert delete und die @@error abfragen in gespeicherte...

Berechtigungen gespeicherte Prozeduren

Hallo NG, wie kann ich beim SQL-Servier 2000 die Berechtigungen für MEHRERE gespeicherte Prozeduren für einen bestimmten User gleichzeitig ändern? So muss ich immer einzeln...

Gespeicherte Prozeduren

Hallo Leute, ich verwende in meinen Datenbankapplikationen viel gespeicherte Prozeduren. Wenn mehrere User gleichzeitig auf die gleiche Prozedur zugreifen, bekomme ich aber...


Alle Zeitangaben in WEZ. Es ist jetzt 03:50 Uhr. | Privacy Policy