SQL Plus 无法使用 Accept 将参数传递到我的存储过程
SQL Plus can't pass parameters to my stored procedure by using Accept
我遇到了一个问题,我无法将一些字符串从命令行传递到我的存储过程。我可以传递数字但不能传递 varchar 的..
accept nr1 char prompt 'Name: ';
accept nr2 char prompt 'Surname: ';
accept nr3 char prompt 'Username: ';
accept nr4 char prompt 'GroupCode: ';
execute CreateUsers('&nr1','&nr2','&nr3','&nr4');
我试过用这个
accept nr1 prompt 'Name: ';
accept nr2 prompt 'Surname: ';
accept nr3 prompt 'Username: ';
accept nr4 prompt 'GroupCode: ';
declare
p_name varchar(30) := '&nr1',
p_surname varchar(30) := '&nr2',
p_Username varchar(30) := '&nr3',
p_GroupCode varchar(30) := '&nr4';
begin
execute CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/
该存储过程有 varchar2
个参数,它可以与类似
的东西一起使用
execute CreateUsers ('anne','123','annie','DBA');
非常感谢任何帮助,谢谢!
编辑 1
添加了错误消息。
编辑 2
编辑 3
正如评论中所讨论的那样,问题出在这个 PL/SQL 块中:
declare
p_name varchar(30) := '&nr1',
p_surname varchar(30) := '&nr2',
p_Username varchar(30) := '&nr3',
p_GroupCode varchar(30) := '&nr4';
begin
execute CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/
块的 declare
部分中的变量声明应以分号而不是逗号结尾,并且 execute
不应在 PL/SQL 块内使用。
该块应如下所示:
declare
p_name varchar(30) := '&nr1';
p_surname varchar(30) := '&nr2';
p_Username varchar(30) := '&nr3';
p_GroupCode varchar(30) := '&nr4';
begin
CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/
我遇到了一个问题,我无法将一些字符串从命令行传递到我的存储过程。我可以传递数字但不能传递 varchar 的..
accept nr1 char prompt 'Name: ';
accept nr2 char prompt 'Surname: ';
accept nr3 char prompt 'Username: ';
accept nr4 char prompt 'GroupCode: ';
execute CreateUsers('&nr1','&nr2','&nr3','&nr4');
我试过用这个
accept nr1 prompt 'Name: ';
accept nr2 prompt 'Surname: ';
accept nr3 prompt 'Username: ';
accept nr4 prompt 'GroupCode: ';
declare
p_name varchar(30) := '&nr1',
p_surname varchar(30) := '&nr2',
p_Username varchar(30) := '&nr3',
p_GroupCode varchar(30) := '&nr4';
begin
execute CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/
该存储过程有 varchar2
个参数,它可以与类似
execute CreateUsers ('anne','123','annie','DBA');
非常感谢任何帮助,谢谢!
编辑 1
添加了错误消息。
编辑 2
编辑 3
正如评论中所讨论的那样,问题出在这个 PL/SQL 块中:
declare
p_name varchar(30) := '&nr1',
p_surname varchar(30) := '&nr2',
p_Username varchar(30) := '&nr3',
p_GroupCode varchar(30) := '&nr4';
begin
execute CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/
块的 declare
部分中的变量声明应以分号而不是逗号结尾,并且 execute
不应在 PL/SQL 块内使用。
该块应如下所示:
declare
p_name varchar(30) := '&nr1';
p_surname varchar(30) := '&nr2';
p_Username varchar(30) := '&nr3';
p_GroupCode varchar(30) := '&nr4';
begin
CreateUsers(p_name,p_surname,p_username,p_GroupCode);
end;
/