oracle 我想在PL SQL中接受用户输入并将其传递给过程,请显示一个简单的程序,

h9vpoimq  于 2022-11-28  发布在  Oracle
关注(0)|答案(4)|浏览(227)

我想接受用户输入并将其传递给过程,只有当我输入时,接受提示才应该执行

' / '

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; 
        /
nimxete2

nimxete21#

可以使用&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内部的其他检查来控制用户输入。

yvt65v4c

yvt65v4c2#

在执行pl\sql块时尝试以下方法来接受输入。
如果已经使用“sql〉ed”执行了pl\sql块或write块,则可以使用“/”
使用'&'后跟名称以接受用户的输入。例如**&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的值:
  • 输入帐簿名称的值(_N):
5kgi1eie

5kgi1eie3#

创建或替换过程输入(Roll IN number,Book_n IN varchar)AS〈--过程主体--〉结束;/接受辊号提示“输入辊号:';接受BookName varchar(20)提示'输入图书名称:';

Declare
    Roll_no  number;
    B_name varchar(20);
    Begin

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

    input(Roll_no,B_name);
    end; 
    /
rqenqsqc

rqenqsqc4#

设置服务器输出;
接受Roll_no编号提示“输入辊编号:';接受B_name varchar 2提示'输入图书名称:';

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; 
    /

相关问题