Stored Procedure - Aufruf mit call

Status
Nicht offen für weitere Antworten.

cam

Bekanntes Mitglied
Hallo,

ich habe nun einige Beiträge zum Aufruf von Stored Procedures gelesen, aber ich komme damit nicht zurecht.
Im Moment wird die Stored Procedure nicht gefunden - nu hab ich überlegt, ok, die ist in einem anderen Verzeichnis gespeichert, hab versucht den Pfad mit anzugeben, aber irgendwas mach ich da auch falsch.
Mit den ganzen "?" komme ich auch nicht zurecht.

Das ist das, was ich mir aus den verschiedenen Beiträgen und Google-Suchen rausgenommen hab:

Code:
if(EinlagernM5.boxGr5 == "G0"){
			try{
				CallableStatement callG0 = Frame.cn.prepareCall("{? = call SPG0(?, ?, ?, ?)}");
				callG0.registerOutParameter(1, Types.CHAR);
				callG0.registerOutParameter(2, Types.CHAR);
				callG0.registerOutParameter(3, Types.CHAR);
				callG0.registerOutParameter(4, Types.CHAR);
				callG0.registerOutParameter(5, Types.CHAR);
				Frame.rs = callG0.executeQuery();
				if(Frame.rs.next()){
					reiheG01 = Frame.rs.getString(1);
					spalteG01 = Frame.rs.getString(2);
					ebeneG01 = Frame.rs.getString(3);
					fachG01 = Frame.rs.getString(4);
					fachG02 = Frame.rs.getString(5);
					System.out.println(reiheG01 + spalteG01 + ebeneG01 + fachG01 + fachG02);
				}
			}catch(Exception ex){
				System.out.println("Keine Verbindung: " + ex);
			}
		}
 

cam

Bekanntes Mitglied
Ok, wenn man die Stored Procedure ausführt, landet sie automatisch im richtigen Verzeichnis und wir gefunden - wobei mir gesagt wird, dass kein ResultSet existiert...
Aber am ende muss ich doch ein "DROP PROCEDURE" ranhängen? Aber wenn ich das mache, verschwindet die SP wieder und ich kann sie über Java nicht mehr aufrufen?!
 
S

SlaterB

Gast
nebenbei:
> if(EinlagernM5.boxGr5 == "G0"){

Strings mit equals vergleichen!
 

cam

Bekanntes Mitglied
*g* ja klar...
bin nur seit Wochen mit dieser blöden Abfrage beschäftigt, dass ich das vergessen habe...
Aber das hilft mir nu auch nicht weiter :(
 

cam

Bekanntes Mitglied
Ich brauche bitte ganz dringend eure Hilfe!!!

Ich schicke jetzt einfach mal eine der Prozeduren mit...

Code:
CREATE PROCEDURE boxG0
   @reihe CHAR(1) OUTPUT
   , @spalte CHAR(1) OUTPUT
   , @ebene CHAR(1) OUTPUT
   , @fach1 CHAR(1) OUTPUT
   , @fach2 CHAR(1) OUTPUT
   AS
      BEGIN
         DECLARE @reiheG0 CHAR(1), @spalteG0 CHAR(1), @ebeneG0 CHAR(1), @fachG01 CHAR(1)
         DECLARE c_G0 CURSOR FOR
            SELECT reihe, spalte, ebene, fach FROM la_platz WHERE mgl_g0 = '1' AND belegt = '0' AND reserv = '0'
         OPEN c_G0
         FETCH c_G0 INTO @reiheG0, @spalteG0, @ebeneG0, @fachG01         
         GOTO Schleife;         
      END
      
	  Schleife:
      IF(@fachG01 = '1')
         BEGIN            
            DECLARE @belegt1 BIT, @reserviert1 BIT
            DECLARE c_G0fach2_1 CURSOR FOR
               SELECT belegt, reserv FROM la_platz WHERE reihe = @reiheG0 AND spalte = @spalteG0 AND ebene = @ebeneG0 AND fach = '2'
            OPEN c_G0fach2_1
            FETCH c_G0fach2_1 INTO @belegt1, @reserviert1            
            IF(@belegt1 = '0' AND @reserviert1 = '0')
            BEGIN
               SET @fach1 = '1'
               SET @fach2 = '2'
               CLOSE c_G0fach2_1
			   DEALLOCATE c_G0fach2_1
               GOTO Ende;
            END
            ELSE
				CLOSE c_G0fach2_1
				DEALLOCATE c_G0fach2_1
				GOTO Weiter;
            
         END
         IF(@fachG01 = '3')
         BEGIN            
            DECLARE @belegt3 BIT, @reserviert3 BIT
            DECLARE c_G0fach2_3 CURSOR FOR
               SELECT belegt, reserv FROM la_platz WHERE reihe = @reiheG0 AND spalte = @spalteG0 AND ebene = @ebeneG0 AND fach = '4'
            OPEN c_G0fach2_3
            FETCH c_G0fach2_3 INTO @belegt3, @reserviert3            
            IF(@belegt3 = '0' AND @reserviert3 = '0')
            BEGIN
               SET @fach1 = '3'
               SET @fach2 = '4'
               CLOSE c_G0fach2_3
			   DEALLOCATE c_G0fach2_3
               GOTO Ende;
            END
            ELSE
				CLOSE c_G0fach2_3
				DEALLOCATE c_G0fach2_3
				GOTO Weiter;
            
         END
         
         Weiter:
			FETCH NEXT FROM c_G0 INTO @reiheG0, @spalteG0, @ebeneG0, @fachG01
			GOTO Schleife;
			
		 Ende:
			SET @reihe = @reiheG0;
			SET @spalte = @spalteG0;
			SET @ebene = @ebeneG0;
			CLOSE c_G0
			DEALLOCATE c_G0
      
   GO
   DECLARE @reiheG0 CHAR(1), @spalteG0 CHAR(1), @ebeneG0 CHAR(1), @fachG01 CHAR(1), @fachG02 CHAR(1)
   EXECUTE boxG0 @reiheG0 OUTPUT, @spalteG0 OUTPUT, @ebeneG0 OUTPUT, @fachG01 OUTPUT, @fachG02 OUTPUT
   SELECT @reiheG0, @spalteG0, @ebeneG0, @fachG01, @fachG02   
--DROP PROCEDURE boxG0

Es ist mir ja klar, dass die Prozedur bereits erzeugt sein muss, damit ich sie über Java aufrufen kann. Und mir ist auch klar, dass es Prozeduren ja deshalb gibt, damit man sie mehrfach verwenden kann, ABER ich stehe total auf dem Schlauch, wie ich das umsetzen soll. Bitte, bitte helft mir!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B MySQL Stored Procedure Aufruf funktioniert nicht Datenbankprogrammierung 4
K JDBC- In Java "stored procedure" erstellen für DB2,OracleSql ... Datenbankprogrammierung 3
G Stored Procedure Exception Handling Datenbankprogrammierung 3
G Stored Procedure in Oracle, Txt erzeugen Datenbankprogrammierung 9
B Fehler in Stored Procedure Datenbankprogrammierung 7
H Stored Procedure in PL/SQL Datenbankprogrammierung 5
C Stored Procedure mit Übergabeparameter Datenbankprogrammierung 2
C Stored Procedure - Cursor Datenbankprogrammierung 2
M ORM: Stored Procedure Datenbankprogrammierung 2
W Stored procedure Datenbankprogrammierung 4
ruutaiokwu sql server 2008 stored procedures automatisiert vergleichen Datenbankprogrammierung 2
M Java Stored Procedures Datenbankprogrammierung 4
F Fehler bei Stored Function Datenbankprogrammierung 2
S Warum Stored Procedures in JDBC Datenbankprogrammierung 14
G Zahlen sich stored Procedures wirklich aus? Datenbankprogrammierung 12
G Stored Procedures Datenbankprogrammierung 3
K Stored Procedures, mittels Java Datenbankprogrammierung 8
S Oracle PL/SQL Procedure mit Type Rückgabe Datenbankprogrammierung 1
K mysql procedure Datenbankprogrammierung 5
K HSQLDB .sql Script Aufruf über Java Datenbankprogrammierung 7
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
G Aufruf von SELECT INTO Datenbankprogrammierung 8
1 Aufruf einer View über Java Gui Datenbankprogrammierung 5
N Probleme beim Aufruf aus der DB Datenbankprogrammierung 7
H MIt oracle Verbinden (ungültiges Argument in Aufruf) Datenbankprogrammierung 4

Ähnliche Java Themen


Oben