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

时间:2017-11-06 10:42:06

标签: oracle plsql

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

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

4 个答案:

答案 0 :(得分:0)

您可以使用&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;
/
  

接受提示只有在我输入&#39; /&#39;

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

答案 1 :(得分:0)

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

  

如果您已经执行了pl \ sql块或写入,则可以使用'/'   阻止使用'sql&gt; ed '

     

使用'&amp;'后跟一个名称来接受来自用户的输入。即&amp; 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的值:

答案 2 :(得分:0)

创建OR替换过程输入(Roll IN number,Book_n IN varchar)         如         &lt; - 程序体 - &gt;         结束;         / 接受Rollno编号提示'输入滚动编号:'; 接受BookName varchar(20)提示“输入书名:';

    Declare
    Roll_no  number;
    B_name varchar(20);
    Begin

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

    input(Roll_no,B_name);
    end; 
    /

答案 3 :(得分:0)

设置serveroutput;

接受Roll_no号码提示&#39;输入滚动号码:&#39 ;; 接受B_name varchar2提示&#39;输入书名:&#39;;

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