すべての従業員の部署名を返す関数を記述します。20部の社員全員の名前と部署名を印刷したブロックを書きます。関数ヘッダー:
Create or replace function empdnm (empno number) return varchar2 is
そのような empno がない場合は、例外を記述してみてください。
次のコードを試してみましたが、いくつかのエラーが表示されます
SQL statment ignored and missing expression
。何が問題ですか?
create or replace function empdnm (empno1 number) return varchar2 is
deptname varchar (30);
BEGIN
Select into deptname(select d.dname from dept d
join emp e on e.deptno=d.deptno
Where e.empno= empno1
)
exception
WHEN no_data_found THEN
dbms_output.put_line('no employee with no:'|| empno1);
return(deptname);
end;
BEGIN
FOR r IN (SELECT * FROM emp where dept_id = 20) loop
dbms_output.put_line( 'employee '|| r.emp_name || ' is in department '|| empdnm(empno1) );
END loop;
end;