Hallo liebe Gemeinde,
ich muss derzeit eine bestehende Software so umarbeiten das sie mit Oracle funktioniert. Derzeit baute sie ausschließlich auf SQL-Server auf. Jetzt hat mein Vorgänger, der diese Software entwickelt hat, in meinen Augen, ziemlichen Humnbug betrieben. Jedoch ist es mir zeitlich nicht möglich diesen Humbug so abzuändern wie es denk ich "besser" wäre.
Der Kollege hat also alle Abfragen auf der Datenbank, eine ganze Menge, in Stored Procedures geschrieben. Da ich jetzt den Code der Software nur ungern ändern möchte (Änderungen würden sich durch das ganze Programm ziehen und somit sehr viel Arbeit verursachen) wollte ich nun die StoredProcs von MSSQL in PL/SQL umschreiben. Jetzt ahbe ich folgende Frage. Wie schriebt man in PL/SQL eine StoredProc die quasi ein "ResultSet" zurück gibt?
In MSSQL sieht die proc(vereinfacht) wie folgt aus:
Ich habe schon ein paar Stunden versucht es selber umzusetzen scheitere jedoch immer wieder. Die Fehlermeldung von sqlplus ist da allerdings auch nicht sehr hilfreich: "Warnung: Prozedur wurde mit Kompilierungsfehlern erstellt." Keinerlei Ausschrift was denn die Fehler sind. Wie gesagt sitze ich schon eine ganze weile dran. So habe ich viele Sachen ergoogled wo immer die rede von einem Cursor ist. Soweit so gut, Cursor sind mir denk ich bekannt. Jedoch funcktioniert es die ganze Zeit nicht.
Hier mal mein Ansatz der leider nicht kompiliert/funktioniert:
Hoffe ihr könnt mir helfen bin schon ein wenig am verzweifeln
Gut Schuß
VuuRWerK
ich muss derzeit eine bestehende Software so umarbeiten das sie mit Oracle funktioniert. Derzeit baute sie ausschließlich auf SQL-Server auf. Jetzt hat mein Vorgänger, der diese Software entwickelt hat, in meinen Augen, ziemlichen Humnbug betrieben. Jedoch ist es mir zeitlich nicht möglich diesen Humbug so abzuändern wie es denk ich "besser" wäre.
Der Kollege hat also alle Abfragen auf der Datenbank, eine ganze Menge, in Stored Procedures geschrieben. Da ich jetzt den Code der Software nur ungern ändern möchte (Änderungen würden sich durch das ganze Programm ziehen und somit sehr viel Arbeit verursachen) wollte ich nun die StoredProcs von MSSQL in PL/SQL umschreiben. Jetzt ahbe ich folgende Frage. Wie schriebt man in PL/SQL eine StoredProc die quasi ein "ResultSet" zurück gibt?
In MSSQL sieht die proc(vereinfacht) wie folgt aus:
Code:
CREATE PROCEDURE [prCheckTable] AS SELECT * FROM System WHERE (CheckTable IS NOT NULL) AND (CheckTable <> '')
Hier mal mein Ansatz der leider nicht kompiliert/funktioniert:
Code:
create or replace procedure "PARSEC"."prCheckTable"(p_cursor in out SystemCursorType) as type SystemCursorType is ref cursor return system%rowtype; begin open p_cursor for SELECT * FROM System WHERE (CheckTable IS NOT NULL) AND (CheckTable != ''); end;
Gut Schuß
VuuRWerK
Comment