Тип данных varchar2
, а не varhar2
.
Кроме того, вы можете опустить эти скобки.
SQL> create or replace procedure sp(enm number, com_stat out varchar2)
2 as
3 begin
4 select case when sal > 2000 and comm is not null then 'High Sal'
5 when sal < 2000 and comm is null then 'No Comm'
6 end
7 into com_stat
8 from emp1 ;
9 end;
10 /
Procedure created.
SQL>
Однако высока вероятность того, что процедура вызовет too_man_rows
поскольку нет предложения WHERE
, которое ограничивало бы select
возвращать одно значение. Вероятно, это
where emp1.empno = enm
или что-то в этом роде, отсутствующее после строки # 8.