このコードを実行する際に問題があります。トリガーはコンパイルエラーで作成されたものの、何が間違っているのかを説明せず、出力もしません。以下は私が与えたコードとエラーです。私はOracle 11g R1でPL/SQLを使用しています。SQL - Oracle 11g - PL/SQL - トリガー・コンパイル・エラー
CREATE OR REPLACE TRIGGER checkRecommendedAge
BEFORE INSERT OR UPDATE ON Loan
FOR EACH ROW
DECLARE
borAge number;
ex exception;
BEGIN
SELECT count(*) INTO borAge
FROM Loan
WHERE dateOut =: new.dateOut;
IF borAge < 18 THEN
dbms.output.put_line('Row added to Book table succesful');
ELSE
raise ex;
END IF;
EXCEPTION
WHEN EX THEN
raise_application_error("Error");
END;
/
エラー:
Warning: Trigger created with compilation errors.
SQL> SHOW ERRORS
Errors for TRIGGER CHECKRECOMMENDEDAGE:
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PLS-00801: internal error [ph2csql_strdef_to_diana:bind]
6/2 PL/SQL: SQL Statement ignored
7/7 PL/SQL: ORA-06544: PL/SQL: internal error, arguments:
[ph2csql_strdef_to_diana:bind], [], [], [], [], [], [], []
10/3 PL/SQL: Statement ignored
10/3 PLS-00201: identifier 'DBMS.OUTPUT' must be declared
17/2 PL/SQL: Statement ignored
17/27 PLS-00201: identifier 'Error' must be declared
任意の助けをいただければ幸いです
おかげ
EXITをだ
コンパイル後に 'SHOW ERRORS'を発行してみてください。 – Chandu
@Cybernateこんにちはありがとう! @Brian - オリジナルの投稿を更新しました – Brian
@Brian - コピー&ペーストのエラーはありませんか?エラーメッセージは識別子 'dbms.output'を参照します。これは' dbms_output'パッケージを参照したときにタイプミスをしたことを意味します。しかし、あなたのコードはそのタイプミスを持っていないようです。また、エラーメッセージは、そのテキストが投稿されたコードのどこにも現れないとき、識別子「エラー」を参照します。また、 'CREATE'を含む完全なトリガ定義を投稿できますか? –