首页 > 解决方案 > 每次在 PL/SQL 中执行存储过程时都可以提示吗?

问题描述

这是将数据插入表的简单过程是:-

create or replace 
PROCEDURE add_job_history
  (  p_emp_id          job_history.employee_id%type
   , p_start_date      job_history.start_date%type
   , p_end_date        job_history.end_date%type
   , p_job_id          job_history.job_id%type
   , p_department_id   job_history.department_id%type
   )
IS
BEGIN
  INSERT INTO job_history (employee_id, start_date, end_date,job_id, department_id)

    VALUES(p_emp_id, p_start_date, p_end_date, p_job_id, p_department_id);

END add_job_history;

现在我正在执行这个带有参数的存储过程,它将起作用......

但我想让这个程序像每次我执行它时一样,它会提示我并询问列的值。

这可能吗?

像一个例子: -

exec add_job_history;
enter your employee_id:15
enter your start_date:

如果可能,请帮助我。我正在学习 PL/SQL 并对此感到困惑。

标签: sqldatabasestored-proceduresplsqloracle12c

解决方案


不可以。存储过程在服务器上运行,无法提示用户输入。他们不知道正在使用什么客户端应用程序(如果有)来调用存储过程。

您可以编写一个SQL*Plus提示用户输入的脚本,然后通过传入这些值来调用存储过程。该脚本必须存在于每台客户端计算机上。


推荐阅读