Oracle 오류가 발생합니다. ORA-00972 식별자가 너무 깁니다. 이것은이 줄로 인한 것일 수 있습니다ORA-00972 식별자가 너무 깁니다. 선언문이 나타납니다.
WHERE EMPLOYEE_ID = & e;
하지만 난 그걸 알아낼 수 없습니다.
이 테스트하려면 모든 CASE 문과 serverout 문을 제거 할 수 있지만 런타임에 직원 ID를 입력 한 후에도 오류가 계속 발생합니다.
런타임에 이미지에 오류가 첨부됩니다. 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;
/
구문 강조 표시는 친구입니다. – sstan
단순한 오타 (큰 따옴표가 있어야 할 때 작은 따옴표를 사용)로 인해 투표가 오프 주제로 닫힙니다. –
@Ken White : 작은 따옴표를 사용해야하는 경우 큰 따옴표를 사용해야 함) – sstan