0

Oracle10gR2を使用しています。自動インクリメントトリガーを作成しようとしています。サンプルは次のとおりです。

CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1
START WITH 1
NOMAXVALUE
/
CREATE TABLE TESTER  (
ID_TESTER INTEGER NOT NULL,
   VAL VARCHAR2(20) NOT NULL
)
/
CREATE OR REPLACE TRIGGER TIB_TESTER BEFORE INSERT
ON TESTER FOR EACH ROW 
BEGIN
SELECT TEST_SEQ.NEXTVAL 
INTO :NEW.ID_TESTER
FROM DUAL;
END;
/

トリガーの作成は警告を出します:

警告:ORA-24344:コンパイルエラーで成功

そして、私がエラー値を取得したとき:

select OCI_SUCCESS_WITH_INFO;
/

エラーが発生します:

エラー:ORA-00923:FROMキーワードが予期された場所に見つかりません

4

2 に答える 2

3

これらのコマンドを発行するためにどのクライアントを使用していますか?ORA-24344は特殊なエラーです。

SQL * PLusでは、次のようなコンパイルエラーに関する詳細情報を取得できます。

SQL>  show errors

ORA-00923エラーについては、OracleのバージョンのSQLでは常にテーブルから選択する必要があるためです。だからあなたは実行する必要があります

select OCI_SUCCESS_WITH_INFO
from dual
/

それがどれほど意味があるのか​​はわかりませんが、少なくともエラーは発生しません。


「Navicatの問題でした」

私はデータベースに対してコードを実行し、問題なくビルドされたので、それは私を驚かせません。

于 2010-08-03T06:29:10.063 に答える
0

多分それは誰かのために役立つでしょう:

Oracle 10gおよびOCIドライバを使用している場合、ORA-24344は、トリガーにキャリッジリターン記号(\ r)がコードに含まれている場合を示します。ファイルはWindowsの行末スタイルで作成されました。

于 2014-05-27T09:57:13.760 に答える