我想在 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】:您可以使用&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 中接受用户输入的过程 [重复]
我通过表单接受用户数据,我想在我的 SQL 数据库中添加系统日期和时间,我应该如何使用 JAVA 来完成?