Как получить значение от пользователя во время процедуры в Oracle 10g - PullRequest
0 голосов
/ 16 октября 2018

Ниже моя процедура

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;

что не так с кодом?

1 Ответ

0 голосов
/ 17 октября 2018

Поскольку это хранимая процедура, правильный способ сделать это - передать параметр в процедуру.Например:

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>
...