Cześć, mam problem z napisaniem funkcji w oracle sql. Chciałem napisać funkcję aby najpierw dodała do bazy adres, a następnie pobrała id tego rekordu.
Wyskakuje mi błąd ORA-14551: nie można wykonać operacji DML wewnątrz zapytania.
CREATE FUNCTION dodaj_adres_pobierz_id(ulica VARCHAR2,numer_budynku NUMBER, numer_mieszkania NUMBER, miejscowosc VARCHAR2, kod_pocztowy VARCHAR2, poczta VARCHAR2, wojewodztwo_id NUMBER)
RETURN NUMBER
IS
result NUMBER(12,0);
output NUMBER(12,0);
BEGIN
INSERT INTO adresy VALUES(identyfikor_adresy.NEXTVAL,ulica,numer_budynku,numer_mieszkania,miejscowosc,kod_pocztowy,poczta,wojewodztwo_id);
SELECT adres_id INTO output FROM adresy WHERE adres_ulica = ulica;
RETURN(output);
END dodaj_adres_pobierz_id;
/