【问题标题】:How to take value from user during procedure in Oracle 10gOracle 10g 过程中如何从用户那里获取价值
【发布时间】:2018-10-16 14:51:27
【问题描述】:

下面是我的过程

create or replace procedure demo_table () is

temp number(5);

begin 

temp:=:temp;

end;

我收到了错误

ERROR at line 4: PLS-00049: bad bind variable 'TEMP'

2. temp number(5);
3. begin 
4. temp:=:temp;
5. end;

代码有什么问题?

【问题讨论】:

    标签: oracle stored-procedures oracle10g procedure


    【解决方案1】:

    因为它是一个存储过程,所以正确的做法是向该过程传递一个参数。例如:

    SQL> create or replace procedure demo_table(par_temp in number)
      2  is
      3  begin
      4    dbms_output.put_line('You entered number ' || par_temp);
      5  end;
      6  /
    
    Procedure created.
    
    SQL> set serveroutput on
    SQL> begin
      2    demo_table(123);
      3  end;
      4  /
    You entered number 123
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    或者,如果你想提示用户输入一些值,你可以这样做:

    SQL> accept par_some_value prompt 'Enter some number: '
    Enter some number: 5545
    SQL> begin
      2    demo_Table(&par_some_value);
      3  end;
      4  /
    old   2:   demo_Table(&par_some_value);
    new   2:   demo_Table(5545);
    You entered number 5545
    
    PL/SQL procedure successfully completed.
    
    SQL>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 2013-11-23
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      相关资源
      最近更新 更多