oracle存储过程调用有几种方式?

用plsql编写存储过程的代码如下:

 create or replace procedure p_1 is
    r emp%rowtype;
        n number(4);
BEGIN
     n:=&n;
     dbms_output.put_line('姓名 薪水');
     select * into r from emp where empno=n;
     dbms_output.put_line(r.ename||' '||r.sal);    --输出结果,需要 set serverout on 才能显示.
    n:=r.sal; 
END;

现在我的需求是在调用存储过程的时候才弹出对话框输入n的值,请代码如何修改?

n:=r.sal;