# Stored Procedure mit Übergabeparameter



## cam (28. Feb 2009)

Hallo,

ich möchte zum Ausführen einer Stored Procedure die Artikelnummer an diese Prozedur übergeben. Wie mache ich das?

Aufruf:
[HIGHLIGHT="Java"]try{
  CallableStatement callLoeschen = Main.cn.prepareCall("{? = call loeschen}");			
  callLoeschen.setString(1, Main.artikelNr);
  callLoeschen.execute();
}catch(Exception ex) {
  System.out.println("Keine Verbindung (SPLoeschen): " + ex);	
  ex.printStackTrace();
}[/HIGHLIGHT]

SP:

```
CREATE PROCEDURE loeschen
	@art CHAR(25)
AS
	BEGIN
		DECLARE @zeit DATETIME, @artikel CHAR(25)
		DECLARE c_time CURSOR FOR
			SELECT zeitstemp, art_nr FROM ausl_li WHERE art_nr = @art ORDER BY zeitstemp ASC
		OPEN c_time
		FETCH c_time INTO @zeit, @artikel
		CLOSE c_time
		DEALLOCATE c_time
		DELETE FROM ausl_li WHERE zeitstemp = @zeit AND art_nr = @artikel
	END
GO
EXECUTE loeschen 
DROP PROCEDURE loeschen
```


----------



## Ebenius (2. Mrz 2009)

Gegen Oracle funktioniert das bei uns so:
[HIGHLIGHT="Java"]final CallableStatement stmt = connection.prepareCall("CALL renameSomething(?,?)");
stmt.setString(1, oldID);
stmt.setString(2, newID);[/HIGHLIGHT]


```
CREATE OR REPLACE PROCEDURE "RENAMESOMETHING" (oldid IN VARCHAR2, newid IN VARCHAR2) IS
  ...
BEGIN
  ...
END;
/
```
Was anderes als Oracle kenne ich aber leider nicht. Sonst noch jemand?

Ebenius


----------



## cam (2. Mrz 2009)

Ich habe ein bisschen probiert und es funktioniert jetzt:


```
try{
         			CallableStatement callLoeschen = Main.cn.prepareCall("{call loeschen(?)}");			
         			callLoeschen.setString(1, Main.artikelNr);
         			callLoeschen.execute();
         		}catch(Exception ex){
        			System.out.println("Keine Verbindung (SPLoeschen): " + ex);	
        			ex.printStackTrace();
        		}
```


----------

