如何在 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>
下面是我的程序
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>