Kyaria

HELPΒ²

May 1st, 2018
319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.21 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE FUNCTION f4(isbn IN VARCHAR2, bar_code IN VARCHAR2) RETURN VARCHAR2 AS
  3.  
  4. ins_isbn VARCHAR2(255) := isbn;
  5. ins_barcode VARCHAR2(255) := bar_code;
  6. counter_isbn NUMBER := 0;
  7.  
  8. check_corr_val VARCHAR2(255) := 'Ihre Daten wurden nicht korrekt eingetragen!';
  9.  
  10. BEGIN
  11.  
  12. EXECUTE IMMEDIATE 'SELECT COUNT(buch.isbn) from buch WHERE buch.isbn = ' || ins_isbn INTO counter_isbn;
  13.  
  14.     IF ins_barcode IS NOT NULL AND counter_isbn > 0 THEN
  15.         EXECUTE IMMEDIATE 'INSERT INTO buch_kopien(BARCODE_ID, ISBN) values(' || ins_barcode || ', ' || ins_isbn || ')';
  16.         check_corr_val := 'Ihre Daten wurden korrekt eingetragen!';
  17.     END IF;
  18.    
  19.     EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
  20.         RAISE_APPLICATION_ERROR(-20001, 'Der Barcode ist schon vergeben! [' || SQLERRM || ']');
  21.     WHEN OTHERS THEN
  22.         RAISE_APPLICATION_ERROR(-20001, 'Ein Fehler ist Aufgetreten! [' || SQLERRM || ']' || ins_isbn || ',' || counter_isbn || ',' || ins_barcode);
  23.    
  24.  
  25. RETURN check_corr_val;
  26. END;
  27.  
  28.  
  29. DECLARE
  30.     checker VARCHAR2(255) := '';
  31.    
  32.     isbn VARCHAR2(255) := '1-56592-335-9';
  33.     bar_code VARCHAR2(255) := '100000212';
  34. BEGIN
  35.     checker := f4(isbn, bar_code);
  36.     DBMS_OUTPUT.put_line(checker);
  37. END;
Advertisement