我有一个名为 BANKCUSTOMER 的表,其中包含以下列:
USERNAME NOT NULL VARCHAR2(11)
FAMILY_NAME NOT NULL VARCHAR2(25)
NAME NOT NULL VARCHAR2(25)
PASSWD NOT NULL VARCHAR2(6)
如果用户 USERNAME 和 PASSWORD 与数据库中的数据匹配,我想创建一个函数来检查数据库。如果登录成功,那么它应该打印出“登录成功!” 否则“用户名或密码错误!”
我访问了一个 pl/sql 教程站点并看到了以下代码,我对其进行了一些修改,以便它可以与我的数据库一起使用,但是有些东西我不明白,那就是做什么z number
和做什么begin select 1 into z
。有人可以为我解释一下。
create or replace function log_in(x in varchar2, y in varchar2)
return varchar2
as
z number;
begin
select 1
into z
from bankcustomer
where username=x
and passwd=y;
dbms_output.put_line('Login successful!');
exception
when no_data_found then
dbms_output.put_line('Wrong username or password!');
end;
我想通过写来测试这个功能,SELECT log_in() FROM dual;
看看它是否有效。当我写信时,SELECT log_in() FROM dual;
我收到一条错误消息:
从命令中的第 1 行开始出错:SELECT log_in() FROM dual 命令行错误:1 列:7 错误报告:SQL 错误:ORA-06553:PLS-306:调用“LOG_IN”06553 中的参数数量或类型错误. 00000 - “PLS-%s: %s” *原因:
*操作:
如何解决?