create or replace function f4(isbn in varchar2, bar_code in varchar2) return varchar2 as ins_isbn varchar2(255) := isbn; ins_barcode varchar2(255) := bar_code; counter_isbn number := 0; check_corr_val varchar2(255) := 'Ihre Daten wurden nicht korrekt eingetragen!'; begin EXECUTE IMMEDIATE 'SELECT COUNT(buch.isbn) from buch WHERE buch.isbn = ' || ins_isbn into counter_isbn; if ins_barcode IS NOT NULL AND counter_isbn > 0 then EXECUTE IMMEDIATE 'INSERT INTO buch_kopien(BARCODE_ID, ISBN) values(' || ins_barcode || ', ' || ins_isbn || ')'; check_corr_val := 'Ihre Daten wurden korrekt eingetragen!'; end if; EXCEPTION WHEN dup_val_on_index THEN RAISE_APPLICATION_ERROR(-20001, 'Der Barcode ist schon vergeben! [' || sqlerrm || ']'); WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20001, 'Ein Fehler ist Aufgetreten! [' || sqlerrm || ']' || ins_isbn || ',' || counter_isbn || ',' || ins_barcode); return check_corr_val; end; declare checker varchar2(255) := ''; isbn varchar2(255) := '1-56592-335-9'; bar_code varchar2(255) := '100000212'; begin checker := f4(isbn, bar_code); dbms_output.put_line(checker); end;