0

Oracle 11g Express Edition で簡単なトリガーを作成しようとしています。

CREATE OR REPLACE TRIGGER EMPLOYEE_UPDATE 
BEFORE UPDATE ON EMPLOYEE
FOR EACH ROW
BEGIN
   :new.End_Date := SYSDATE;
END;

しかし、エラーが発生します:

Error(4,1): PLS-00049: bad bind variable 'NEW.END_DATE'

この単純なトリガーの問題は何ですか?

4

1 に答える 1

2

どういうわけか、CREATE TABLE EMPLOYEE ステートメントの問題を書き直した後、問題はなくなりました。私が持っていた

CREATE TABLE EMPLOYEE
( "Employee_ID" NUMBER(6,0),
 "HireDate" DATE,
 "Salary" NUMBER(8,2),
 CONSTRAINT "EMPLOYEE_PK" PRIMARY KEY ("Employee_ID") ENABLE
 );

テーブルを削除し、二重引用符なしで CREATE TABLE 構文を書き直しました。

CREATE TABLE EMPLOYEE
( Employee_ID NUMBER(6,0),
 HireDate DATE,
 Salary NUMBER(8,2),
 CONSTRAINT EMPLOYEE_PK PRIMARY KEY (Employee_ID) ENABLE
 );

そして問題は消えました。

編集: @Sathya が説明したように、Oracle ではオブジェクト名を引用符で囲んで作成すると、大文字と小文字が区別されます。私の誤解が問題でした。

于 2012-10-04T00:48:12.993 に答える