사용자가 값을 입력하기 전에 WARD
이라는 테이블에 사용 가능한 침대가 있는지 확인하기 위해 다음과 같은 방아쇠가 있습니다. 오류가 표시되지 않으면 오류가 표시됩니다. 이것이 내가 다음과 같은 오류 얻을 실행오라클 방아쇠 삽입 전의 if 문의
create or replace
trigger checkBeds
before insert or update on INPATIENT_STAY for
each row
Begin
select BEDSAVAIL from WARD where wardnum=:new.WARDNUM;
if(BEDSAVAIL <=0) then
DBMS_OUTPUT.PUT_LINE('There are no beds available.');
end if;
END;
:
Error(2,42): PLS-00049: bad bind variable 'NEW.WARDNUM'
WARD
가 여기에 WARDNUM
라는 INPATIENT_STAY
에서 외래 키에 의해 INPATIENT_STAY
에 링크는 WARD
테이블의 구조입니다
CREATE TABLE WARD
(
WARDNUM VARCHAR2(20 BYTE) NOT NULL
, NAME VARCHAR2(40 BYTE)
, LOCATION VARCHAR2(20 BYTE)
, TOTALBEDS NUMBER
, TELEXTENTION VARCHAR2(20 BYTE)
, BEDSAVAIL NUMBER
, CONSTRAINT WARD_PK PRIMARY KEY
(
WARDNUM
));
여기 INPATIENT_STAY
테이블
CREATE TABLE INPATIENT_STAY
(
INPATIENTID VARCHAR2(20 BYTE) NOT NULL
, PATIENTNUMBER VARCHAR2(20 BYTE)
, WADNUM VARCHAR2(20 BYTE)
, DATEONWAITINGLIST DATE
, EXPECTEDDURATION VARCHAR2(20 BYTE)
, EXPECTEDLEAVEDATE DATE
, DATEPLACEDINWARD DATE
, REQWARD VARCHAR2(20 BYTE)
, DATELEFT DATE
, CONSTRAINT INPATIENT_STAY_PK PRIMARY KEY
(
INPATIENTID
)
);
의 구조가 어떻게이 문제를 해결합니까입니까?
를 응용 프로그램 오류를 발생시킬 수 있습니다, 당신이 확실히 열'WARDNUM 있습니까 동일한 오류 – Pindo
을 제공합니다 'WARD' 및'INPATIENT_STAY' 테이블에 있습니까? – Dba
또는 큰 따옴표없이 열이 생성되었는지 확인하십시오. 'WARD'와'INPATIEND_STAY'에 대한 완전한 create table 스크립트를 공유하십시오. – Dba