Ich bekomme den Oracle-Fehler ORA-00972 Identifier zu lange. Dies ist wahrscheinlich auf diese Zeile zurückzuführen.ORA-00972 Identifier zu lang - Deklariere Anweisung
WHERE EMPLOYEE_ID = & e;
Aber ich kann es einfach nicht herausfinden.
Um dies zu testen, habe ich alle CASE-Anweisungen und Serverout-Anweisungen entfernt, aber ich bekomme immer noch den Fehler nach der Eingabe der Mitarbeiter-ID zur Laufzeit.
Ein Bild des Fehlers wird zur Laufzeit angehängt. Error
set echo on
spool c:\cs422a\wa4spool.txt
SET SERVEROUT ON
DECLARE Emp_rec HR.EMPLOYEES%ROWTYPE;
BEGIN
SELECT *
INTO Emp_rec
FROM HR.EMPLOYEES
WHERE EMPLOYEE_ID = &e;
DBMS_OUTPUT.PUT_LINE("---------------------------------------');
CASE Emp_rec.Department_ID
WHEN 10 THEN DBMS_OUTPUT.PUT_LINE('Department: Administration');
WHEN 20 THEN DBMS_OUTPUT.PUT_LINE('Department: Marketing');
WHEN 30 THEN DBMS_OUTPUT.PUT_LINE('Department: Purchasing');
WHEN 40 THEN DBMS_OUTPUT.PUT_LINE('Department: Human Resources');
WHEN 50 THEN DBMS_OUTPUT.PUT_LINE('Department: Shipping');
WHEN 60 THEN DBMS_OUTPUT.PUT_LINE('Department: IT');
WHEN 70 THEN DBMS_OUTPUT.PUT_LINE('Department: Public Relations');
WHEN 80 THEN DBMS_OUTPUT.PUT_LINE('Department: Sales');
WHEN 90 THEN DBMS_OUTPUT.PUT_LINE('Department: Executive');
WHEN 100 THEN DBMS_OUTPUT.PUT_LINE('Department: Finance');
WHEN 110 THEN DBMS_OUTPUT.PUT_LINE('Department: Accounting');
WHEN 120 THEN DBMS_OUTPUT.PUT_LINE('Department: Treasury');
WHEN 130 THEN DBMS_OUTPUT.PUT_LINE('Department: Corporate Tax');
WHEN 140 THEN DBMS_OUTPUT.PUT_LINE('Department: Control and Credit');
WHEN 150 THEN DBMS_OUTPUT.PUT_LINE('Department: Shareholder Services');
WHEN 160 THEN DBMS_OUTPUT.PUT_LINE('Department: Benefits');
WHEN 170 THEN DBMS_OUTPUT.PUT_LINE('Department: Manufacturing');
WHEN 180 THEN DBMS_OUTPUT.PUT_LINE('Department: Construction');
WHEN 190 THEN DBMS_OUTPUT.PUT_LINE('Department: Contracting');
WHEN 200 THEN DBMS_OUTPUT.PUT_LINE('Department: Operations');
WHEN 210 THEN DBMS_OUTPUT.PUT_LINE('Department: IT Support');
WHEN 220 THEN DBMS_OUTPUT.PUT_LINE('Department: NOC');
WHEN 230 THEN DBMS_OUTPUT.PUT_LINE('Department: IT Helpdesk');
WHEN 240 THEN DBMS_OUTPUT.PUT_LINE('Department: Government Sales');
WHEN 250 THEN DBMS_OUTPUT.PUT_LINE('Department: Retail Sales');
WHEN 260 THEN DBMS_OUTPUT.PUT_LINE('Department: Recruiting');
WHEN 270 THEN DBMS_OUTPUT.PUT_LINE('Department: Payroll');
END CASE;
DBMS_OUTPUT.PUT_LINE('Department: ' || Emp_rec.DEPARTMENT_ID);
DBMS_OUTPUT.PUT_LINE('Employee ID: ' || Emp_rec.EMPLOYEE_ID);
DBMS_OUTPUT.PUT_LINE('Employee First Name: ' || Emp_rec.FIRST_NAME);
DBMS_OUTPUT.PUT_LINE('Employee Last Name: ' || Emp_rec.LAST_NAME);
DBMS_OUTPUT.PUT_LINE('Salary: ' || Emp_rec.SALARY);
DBMS_OUTPUT.PUT_LINE('---------------------------------------');
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No data found.');
END;
/
Syntax Hervorhebung ist dein Freund. – sstan
Voting zum Schließen als Off-Topic, weil es durch einen einfachen Tippfehler verursacht wird (Verwendung eines einfachen Zitats, wenn es ein Doppelzitat hätte sein sollen). –
@Ken White: Du meinst die Verwendung eines doppelten Zitats, wenn es ein einfaches Zitat hätte sein sollen;) – sstan