我想在 PL SQL 中接受用户输入并将其传递给程序,给我看一个简单的程序吗?

Posted

技术标签:

【中文标题】我想在 PL SQL 中接受用户输入并将其传递给程序,给我看一个简单的程序吗?【英文标题】:i want to accept user input in PL SQL and pass it to procedure, show me a simple program for it? 【发布时间】:2017-11-06 10:42:06 【问题描述】:

我想接受用户输入并将其传递给程序,只有在我输入时才会执行接受提示' / '

        Create OR Replace Procedure  input(Roll IN number, Book_n IN varchar)
        AS
        <--procedure body-->
        end;
        /

        Declare
        Roll_no  number;
        B_name varchar(20);
        Begin 
        Accept Rollno number prompt 'Enter Roll number : ';
        Accept BookName varchar(20) prompt 'Enter book name : ';

        input(Rollno,BookName);
        end; 
        /

【问题讨论】:

一个简单的谷歌会给你很多结果。例如这个***.com/questions/12516930/… how to get input from user at runtime的可能重复 【参考方案1】:

您可以使用&amp;inp_variable 将外部输入传递给 PL/SQL 变量。ACCEPT 不是 PL/SQL 关键字。外用。

SET SERVEROUTPUT ON
ACCEPT Rollno NUMBER PROMPT 'Enter Roll number : ';
ACCEPT BookName varchar(20) prompt 'Enter book name : ';

DECLARE
   Roll_no   NUMBER := &Rollno;
   B_name    VARCHAR (20) := '&BookName';
BEGIN
   input (Roll_no, B_name);
END;
/

只有当我输入'/'时才会执行接受提示

这样运行代码不是正确的方法。使用 proc 内的其他检查来控制用户输入。

【讨论】:

【参考方案2】:

在执行 pl\sql 块时尝试以下方法来接受输入。

你可以使用'/',如果你已经执行了 pl\sql 块或者写 使用 'sql>ed'

阻止

使用 '&' 后跟名称来接受用户的输入。即 &Roll_No

Declare
  Roll_no  number;
  B_name varchar(20);
Begin 
  --Accept Rollno number prompt 'Enter Roll number : ';
  Roll_no := &Roll_no;
  --Accept BookName varchar(20) prompt 'Enter book name : ';
  B_name := '&Book_Name';
  input(Roll_no,B_name);
end; 
/

这将提示输入..

输入 Roll_no 的值: 输入 Book_Name 的值:

【讨论】:

【参考方案3】:

创建或替换过程输入(Roll IN number,Book_n IN varchar) 作为 结尾; / 接受 Rollno number 提示 'Enter Roll number : '; Accept BookName varchar(20) prompt 'Enter book name : ';

    Declare
    Roll_no  number;
    B_name varchar(20);
    Begin

    Roll_no:= &Rollno;
    B_name := '&BookName'

    input(Roll_no,B_name);
    end; 
    /

【讨论】:

【参考方案4】:

设置服务器输出;

Accept Roll_no number prompt 'Enter Roll number : '; Accept B_name varchar2 prompt 'Enter book name : ';

Declare
    Roll_no  number:= NULL;
    B_name varchar2(20):= NULL;

    Begin

    Roll_no:= &Roll_no;
    B_name:= '&B_name';

    input(Roll_no,B_name);

    end; 
    /

【讨论】:

以上是关于我想在 PL SQL 中接受用户输入并将其传递给程序,给我看一个简单的程序吗?的主要内容,如果未能解决你的问题,请参考以下文章

接受用户的员工编号 从“员工”表中获取员工详细信息并将其存储到 PL SQL 记录类型变量并打印相同

尝试创建一个在 pl/sql 中接受用户输入的过程 [重复]

如何使用 pl/sql 循环接受用户输入?

我通过表单接受用户数据,我想在我的 SQL 数据库中添加系统日期和时间,我应该如何使用 JAVA 来完成?

MVC - 使用 RedirectToAction() 传递数据

从 .txt 文件读取数据并将其插入 Oracle SQL DB [PL/SQL,Unix 脚本]