create or replace procedure sp_rights_getloginuser ( p_userid Users.Userid%TYPE, p_password out Users.Pwd%TYPE, p_username out Users.Username%TYPE ) As Begin declare p_tempname varchar2(20); declare p_temppwd varchar2(10); begin select UserName into p_tempname,pwd into p_temppwd from Users where UserID = p_userid; p_username := p_tempname; p_password := p_temppwd; end; end; / 我用的oracle 9i。select UserName into p_tempname,pwd into p_temppwd from Users where UserID = p_userid; 有什么问题?这么简单一段代码,错误到底在那里?
正确的写法: create or replace procedure sp_rights_getloginuser ( p_userid Users.Userid%TYPE, p_password out Users.Pwd%TYPE, p_username out Users.Username%TYPE ) As Begin declare p_tempname varchar2(20); p_temppwd varchar2(10) ; begin select UserName,Pwd into p_tempname,p_temppwd from Users where UserID = p_userid; p_username := p_tempname; p_password := p_temppwd; end; end; /
错误句: select UserName into p_tempname,pwd into p_temppwd from Users where UserID = p_userid;注:上面的写法适用于 SqlServer,在Oracle中下面的语法才是对的。 select UserName,Pwd into p_tempname,p_temppwd from Users where UserID = p_userid;
select UserName into p_tempname,pwd into p_temppwd from Users where UserID = p_userid;选出来的字段数和变量数不相等.
(
p_userid Users.Userid%TYPE,
p_password out Users.Pwd%TYPE,
p_username out Users.Username%TYPE
)
As
Begin
declare p_tempname varchar2(20);
declare p_temppwd varchar2(10);
begin
select UserName into p_tempname,pwd into p_temppwd from Users
where UserID = p_userid;
p_username := p_tempname;
p_password := p_temppwd;
end;
end;
/
我用的oracle 9i。select UserName into p_tempname,pwd into p_temppwd from Users
where UserID = p_userid;
有什么问题?这么简单一段代码,错误到底在那里?
create or replace procedure sp_rights_getloginuser
(
p_userid Users.Userid%TYPE,
p_password out Users.Pwd%TYPE,
p_username out Users.Username%TYPE
)
As
Begin
declare
p_tempname varchar2(20);
p_temppwd varchar2(10) ;
begin
select UserName,Pwd into p_tempname,p_temppwd from Users
where UserID = p_userid;
p_username := p_tempname;
p_password := p_temppwd;
end;
end;
/
select UserName into p_tempname,pwd into p_temppwd from Users
where UserID = p_userid;注:上面的写法适用于 SqlServer,在Oracle中下面的语法才是对的。
select UserName,Pwd into p_tempname,p_temppwd from Users
where UserID = p_userid;
where UserID = p_userid;选出来的字段数和变量数不相等.