Kyaria icon

HELP²

Kyaria | PRO | 05/01/18 01:35:32 PM UTC | 0 ⭐ | 7443 👁️ | Never ⏰ | []
PL/SQL |

1.21 KB

|

None

|

0 👍

/

0 👎

 
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;

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎