test.sql
prompt================================
prompt please enter a character &a &b;
prompt================================
execute test(a,b);
/
PROCEDURE test
CREATE OR REPLACE PROCEDURE test(a VARCHAR2,
b VARCHAR2)
AS
begin
dbms_output.put_line(a);
dbms_output.put_line(b);
end ;通过sqlplus 输入参数传到存储过程里调用
但有错误能解决吗?
prompt================================
prompt please enter a character &a &b;
prompt================================
execute test(a,b);
/
PROCEDURE test
CREATE OR REPLACE PROCEDURE test(a VARCHAR2,
b VARCHAR2)
AS
begin
dbms_output.put_line(a);
dbms_output.put_line(b);
end ;通过sqlplus 输入参数传到存储过程里调用
但有错误能解决吗?
prompt please enter a character a b;
prompt================================
execute test(&a,&b);--因为你定义的2个输入参数是VARCHAR2类型的,所以当命令行提示输入
参数时,你应该给输入的值加上单引号。
/
PROCEDURE test
CREATE OR REPLACE PROCEDURE test(a VARCHAR2,
b VARCHAR2)
AS
begin
dbms_output.put_line(a);
dbms_output.put_line(b);
end ;
================================
输入 a 的值: '1'
输入 b 的值: '2'
please enter a character '1' '2'
================================
execute TEST(a,b);
*
第 5 行出现错误:
ORA-06550: line 5, column 9:
PLS-00103: Encountered the symbol "TEST" when expecting one of the following:
:= . ( @ % ; immediate
The symbol ":=" was substituted for "TEST" to continue.
SQL> set serveroutput on;
SQL> exec test('&a','&b');
输入 a 的值: 1
输入 b 的值: 2
1
2PL/SQL 过程已成功完成。SQL>