2014-12-13 2 views
-1

SQL을 작성하여 한 테이블에서 다른 테이블로 행을 복사하려고하지만 WHERE 절에 유효하지 않은 식별자가 계속 표시됩니다. 나는 오라클 정점을 사용하고 있습니다. 여기 WHERE 절의 유효하지 않은 식별자

내 코드입니다 :

INSERT INTO CRIMECLOSED (crimeClosedID, crimeName, crimeDate, crimeNotes, 
    outsideSourceDescription, dateClosed, relatedCrimes, 
    staffID, crimeTypeID, locationID) 
SELECT CRIMEOPEN.crimeOpenID, CRIMEOPEN.crimeName, CRIMEOPEN.crimeDate, 
     CRIMEOPEN.crimeNotes, CRIMEOPEN.outsideSourceDescription, CURDATE(), 
     CRIMEOPEN.relatedCrimes, CRIMEOPEN.staffID, CRIMEOPEN.crimeTypeID, 
     CRIMEOPEN.locationID 
FROM CRIMEOPEN 
WHERE CRIMEOPEN.crimeOpenID = '1'; 

CRIMEOPEN 테이블

CREATE TABLE "CRIMEOPEN" 
( "crimeOpenID" VARCHAR2(5), 
"crimeName" VARCHAR2(20), 
"crimeDate" DATE, 
"crimeNotes" VARCHAR2(200), 
"outsideSourceDescription" VARCHAR2(200), 
"relatedCrimes" VARCHAR2(5), 
"staffID" VARCHAR2(5), 
"crimeTypeID" VARCHAR2(5), 
"locationID" VARCHAR2(5), 
CONSTRAINT "CRIMEOPEN_PK" PRIMARY KEY ("crimeOpenID") ENABLE 
) 

내가 오류는 다음과 같습니다

ORA-00904: "CRIMEOPEN"."CRIMEOPENID": invalid identifier

내가 오류가 말을하려고 생각 'crimeOpenID' 'CRIMEOPEN'의 열이 아니지만 그렇습니다. 도움이 필요하십니까?

+1

CRIMEOPEN – HaveNoDisplayName

+0

에 대한 테이블 디자인을 포함하고 있습니까? 실제로 Oracle Apex에서 MySQL을 사용하고 있습니까? –

+0

여기에 별칭 이름이 필요한 이유는 여기에 있습니다. –

답변

1

테이블의 열을 선언 할 때 큰 따옴표를 사용하면 다양한 구문에서 열을 "사용할 때"같은 형식을 사용해야합니다.

따라서 문제를 해결하려면 select 문에 모든 열을 큰 따옴표로 묶어야합니다 (아래와 같이 select 문에만 적용됨).

INSERT INTO CRIMECLOSED (crimeClosedID, crimeName, crimeDate, crimeNotes, 
    outsideSourceDescription, dateClosed, relatedCrimes, 
    staffID, crimeTypeID, locationID) 
SELECT "CRIMEOPEN"."crimeOpenID", "CRIMEOPEN"."crimeName", "CRIMEOPEN"."crimeDate", 
     "CRIMEOPEN"."crimeNotes", "CRIMEOPEN"."outsideSourceDescription", CURDATE(), 
     "CRIMEOPEN"."relatedCrimes", "CRIMEOPEN"."staffID", "CRIMEOPEN"."crimeTypeID", 
     "CRIMEOPEN"."locationID" 
FROM "CRIMEOPEN" 
WHERE "CRIMEOPEN"."crimeOpenID" = '1'; 
+0

이것은 위의 오류를 수정했지만 지금은 오류가 발생합니다. ORA-00904 : "LOCATIONID": 잘못된 식별자 – user1056798

+0

@ user1056798 인 경우 삽입 명령의 열에 대해 동일한 작업을 수행해야합니다. 그런 다음 큰 따옴표를 사용하여 큰 따옴표로 묶습니다. –

+0

대단히 고맙습니다. :) – user1056798

관련 문제