Я пытаюсь сделать оператор if для определения employee_id, но получаю ошибки каждый раз, когда запускаю программу.Вот расшифровка моего взаимодействия с базой данных:
`enter code here`SQL> SET SERVEROUT ON FORMAT TRUNCATED
`enter code here`SQL> DECLARE
`enter code here` 2
`enter code here`3 EMP_REC HR.EMPLOYEES%ROWTYPE;
`enter code here`4 BEGIN
`enter code here`5 DBMS_OUTPUT.PUT_LINE ('---------------------------------------');
`enter code here`6 FOR EMP_REC
`enter code here`7 (SELECT *
`enter code here`8 FROM HR.EMPLOYEES
`enter code here`9 WHERE EMPLOYEE_ID = 5)
`enter code here`10 LOOP
`enter code here`11 IF
`enter code here`12 IF (EMP_REC.EMPLOYEE_ID = 5) THEN
`enter code here`13 DBMS_OUTPUT.PUT_LINE ('EMPLOYEE_ID: ' || EMP_REC.EMPLOYEE_ID) ;
`enter code here` 14 DBMS_OUTPUT.PUT_LINE ('FIRST_NAME: ' || EMP_REC.FIRST_NAME) ;
`enter code here` 15 DBMS_OUTPUT.PUT_LINE ('LAST_NAME: ' || EMP_REC.LAST_NAME) ;
`enter code here` 16 DBMS_OUTPUT.PUT_LINE ('SALARY: ' || TO_CHAR (EMP_REC.SALARY, '$999,999'));
`enter code here` 17 DBMS_OUTPUT.PUT_LINE ('---------------------------------------');
`enter code here` 18 END LOOP;
`enter code here`19 END IF;
`enter code here`20 EXCEPTION
`enter code here`21 WHEN NO_DATA_FOUND THEN
`enter code here`22 DBMS_OUTPUT.PUT_LINE ('NO DATA FOUND.');
`enter code here`23
`enter code here`24 END;
`enter code here`25 /
, и вот ошибки, о которых сообщается:
(SELECT *
*
ERROR at line 7:
ORA-06550: line 7, column 1:
PLS-00103: Encountered the symbol "(" when expecting one of the following:
in
The symbol "in" was substituted for "(" to continue.
ORA-06550: line 12, column 1:
PLS-00103: Encountered the symbol "IF" when expecting one of the following:
( - + case mod new not null <an identifier>
<a double-quoted delimited-identifier> <a bind variable>
continue avg count current exists max min prior sql
ORA-06550: line 18, column 5:
PLS-00103: Encountered the symbol "LOOP" when expecting one of the following:
if
Вы можете использовать это, чтобы определить отдел, в котором они работаюткак мы делали в прошлом с CASE.Вы можете использовать его, чтобы напечатать сообщение, если они зарабатывают определенную сумму денег.Может быть, они должны повысить, если они были наняты до определенной даты.