次の列を持つ 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" *原因:
*アクション:
これはどのように解決できますか?