Accpt employee number from user fetch the employee details from the “Employee” table and store it to a PLSQL record type variable and print the same.
x
SET SERVEROUTPUT ON;
DECLARE
type emp_det is record
(
emp_num number := &empnum,
emp_name varchar2(150),
emp_sal number,
dept_id number
);
emp_rec emp_det;
BEGIN
select employee_id, first_name, salary, department_id into emp_num, emp_name,
emp_sal, dept_id from hr.employees where employee_id = &empnum;
dbms_output.put_line('Employee Number :'||emp_rec.emp_num);
dbms_output.put_line('Employee Number :'||emp_rec.emp_name);
dbms_output.put_line('Employee Number :'||emp_rec.emp_sal);
dbms_output.put_line('Employee Number :'||emp_rec.dept_id);
END;
Advertisement
Answer
Here’s one option (if that’s what you’re looking for):
SQL> create or replace procedure p_test (par_empno in emp.empno%type) is
2 type emp_det is record (empno number,
3 ename varchar2(10),
4 sal number
5 );
6 led emp_det;
7 begin
8 select empno, ename, sal
9 into led
10 from emp
11 where empno = par_empno;
12
13 dbms_output.put_line(led.empno ||': '|| rpad(led.ename, 10, ' ') || led.sal);
14 end;
15 /
Procedure created.
SQL> exec p_test(7369);
7369: SMITH 800
PL/SQL procedure successfully completed.
SQL>