如何在 Oracle 10g 的过程中从用户那里获取价值

How to take value from user during procedure in Oracle 10g

下面是我的程序

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;

代码有什么问题?

由于是存储过程,正确的做法是给过程传递一个参数。例如:

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>