質問は簡単すぎるかもしれませんが、私は助けが必要です。oracleストアドプロシージャと関数を呼び出せません
Oracle 10gではストアドプロシージャを作成していますが、呼び出すことはできません。 SQL Developerを使用してデータベースを管理しています。
CREATE OR REPLACE
FUNCTION check_login
(username IN VARCHAR2, pwd IN VARCHAR2)
RETURN VARCHAR2
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
return isUserValid;
END;
私はこれも試してみました:
CREATE OR REPLACE
PROCEDURE check_login
(username IN VARCHAR2, pwd IN VARCHAR2, RESULT OUT INTEGER)
IS
isUserValid INTEGER;
BEGIN
SELECT Count(*) INTO isUserValid
FROM users
WHERE Username = username AND PASS_WORD = pwd;
RESULT := isUserValid;
END;
は、解析の両方のいずれかのエラーメッセージを与えるものではありません。私はこのエラーメッセージ....
PLS-00221を取得し
BEGIN check_login('admin', 'admin'); END;
と
EXECUTE check_login('admin', 'admin');
:私はそれらを呼び出すために、次の構文を使用し 'CHECK_LOGINは' 手続きではありませんかが定義されていません
PL/SQL:ステートメントが無視されました
直接実行すると、両方のSELECT文が正常に動作します。
何か間違っていますか?
ありがとうジョセフ!それは働いた。 ** oci_execute()**を使用してPHPコードから1行で呼び出せるように、3行を1行に縮小します。 –
あなたが言及した2番目のブロックは動作しますが、完了した**匿名ブロック**のみが表示されます。値を返しません。 –