Hallo, ich versuche gerade eine SP zu schreiben die mir eine Liste ausgeben soll, die allerdings nur noch ausgesuchte Werte enthält (z.B. alle Namen müssen mit ‚B‘ anfangen), was prinzipiell auch kein Problem darstellt. Allerdings sollte diese Liste auch noch sortiert werden können und deshalb gehe ich folgendermassen vor:
Function Adresse_Get(
i_ID_Adresse IN Number,
i_ID_Adresstyp in Number,
i_Sortierung in Varchar2,
i_Name1 in Varchar2
) Return TEST_PKG_TYPES.ref_Cursor
AS
cur TEST_PKG_TYPES.ref_cursor;
SQLCmd varchar2(1000);
BEGIN
if i_ID_Adresse is Null then
SQLCmd := ‚select ID_Adresse,
FK_Adresstyp,
Name1,
Name2,
Name3,
Strasse,
Hausnummer,
Plz,
Ort,
Land,
Tel,
Fax,
Mobil,
Email,
WebSite,
JuristischePerson,
UstID,
Ansp_Name,
Ansp_Tel,
Ansp_Fax,
Ansp_Mobil,
Ansp_Email,
Ansp_WebSite
from TEST_Adresse
where FK_Adresstyp =‘ || i_ID_Adresstyp || ’ AND deleted = 0 ';
else
SQLCmd := ‚select ID_Adresse,
FK_Adresstyp,
Name1,
Name2,
Name3,
Strasse,
Hausnummer,
Plz,
Ort,
Land,
Tel,
Fax,
Mobil,
Email,
WebSite,
JuristischePerson,
UstID,
Ansp_Name,
Ansp_Tel,
Ansp_Fax,
Ansp_Mobil,
Ansp_Email,
Ansp_WebSite
from TEST_Adresse
where ID_ADRESSE=‘ || i_ID_Adresse || ’ AND deleted = 0 ';
end if;
if i_Name1 is Not Null then
SQLCmd := SQLCmd || ’ AND Name1 like’ || i_Name1;
End if;
if i_Sortierung is Not Null then
SQLCmd := SQLCmd || ’ Order BY ’ || i_Sortierung;
end if;
OPEN cur For SQLCMD;
Return cur;
END;
Wenn ich die SP allerdings teste, kommt als Fehlermeldung:
ORA-00936: Ausdruck fehlt
ORA-06512: in „TEST_ADMIN.TEST_PKG_ADRESSE“, Zeile 166
ORA-06512: in Zeile 1
Mir fällt allerdings kein Fehler auf.
Kann mir bitte jemand weiterhelfen?
Schonmal danke im voraus.
Gruss
Alex