728x90


에러 메시지
HTTP 상태 404 – 찾을 수 없음
Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다.


상황
배운 코드를 써보려고 새로 workspace와 프로젝트 파일을 생성하고 jsp뷰와 Model.vo 파일만해서 실행해봄. 수업 때는 저 두 파일만해서 페이지가 켜졌는데 에러 나서 찾는 중

원인
이 에러 메시지 원인의 상당 부분은 해당 경로가 잘못됐거나, 경로가 지정하는 곳에 파일이 없는 것

해결
방법1
이클립스 or STS 재부팅, 컴퓨터 재부팅,
이클립스 상단 project탭 - clean 실행
서버 clean실행

방법2
프로젝트 파일의 properties - java build path - libraries에서 톰캣 서버가 있는지 있으면 이름이 설정된 것과 맞는지 확인
없다면 add Library 눌러서 server Runtime 클릭하고 next
그리고 사용하려는 서버 선택


해결
방법1
프로젝트 파일의 properties - java build path - libraries에서 톰캣 서버가 있는지 있으면 이름이 설정된 것과 맞는지 확인



없다면 add Library눌러서 server Runtime 클릭하고 next
그리고 사용할려는 서버 선택

728x90
반응형
728x90

 

 

사용 프로그램

Oracle 11g

 

메세지

ORA-25154: column part of USING clause cannot have qualifier 25154. 00000 - "column part of USING clause cannot have qualifier"

*Cause: Columns that are used for a named-join (either a NATURAL join or a join with a USING clause) cannot have an explicit qualifier.

*Action: Remove the qualifier.

 

상황

ANSI 표준구문으로 사번, 사원 명, 직급코드, 직급명 조회할려던 중 발생

 

원인

ANSI 표준구문에서 USING 자체가 다른 테이블에 같은 컬럼명을 JOIN한다는 전제가 깔려있기에 SELECT절에 JOIN되는 각 컬럼 앞에 테이블 경로 지정해줄 필요가 없다

 

해결

식별자(quilifier) 삭제

 

-- 에러 해결 전
EMP_ID, EMP_NAME, E.JOB_CODE, J.JOB_NAME
FROM EMPLOYEE E
    JOIN JOB J USING(JOB_CODE);
    
 -- 에러 해결 후
 EMP_ID, EMP_NAME, JOB_CODE, JOB_NAME
FROM EMPLOYEE
    JOIN JOB USING(JOB_CODE);
728x90
반응형
728x90

메세지

ORA-01841: (full) year must be between -4713 and +9999, and not be 0

 

원인

컬럼명의 순서를 바꿔서 들어갈 수 없는 데이터 형식이 넣어졌기에 에러발생

 

상황

테이블의 모든 컬럼에 값을 넣을 때는 컬럼명 명시를 생략 가능하여 해보던 중

해결 컬럼명을 명시하는 경우에는 명시한 순서를 따라 데이터를 넣으면 되고, 생략 시에는 테이블에 있는 컬럼명 순서을 따라야 한다

 

-- 테이블의 모든 컬럼에 값을 넣을 때는 컬럼명 명시를 생략 가능            
-- INSERT 시, 컬럼명을 생략하려면 테이블에 있는 컬럼 순서를 정확히 지켜서 넣어야 함
INSERT INTO EMPLOYEE -- 컬럼명 명시부분 삭제
VALUES(900,'강건강','990311-1451201','kang_kk@kh.or.kr','01011112222',
        'D1','J7','S3',4300000,0.2,200,SYSDATE,'N',NULL);            
-- ORA-01841: (full) year must be between -4713 and +9999, and not be 0
-- 원인 : ENT_YN,ENT_DATE의 순서를 바꿔서 에러발생
-- 컬럼명을 명시하는 경우에는 명시한 순서를 따라 데이터를 넣으면 되고, 
-- 생략 시에는 테이블에 있는 컬럼명 순서을 따라야 한다
728x90
반응형
728x90

메세지
ORA-02292: integrity constraint (KH.UF_GC_FK) violated - child record found

원인
무결점 제약조건(integrity constraint)위반 : 자식테이블이 존재해서 지울 수 없다
GRADE_CODE = 10가 부모테이블이고 얘를 참조하고 있는 자식테이블 때문에 삭제 불가

상황
FOREIGN KEY로 자식 테이블이 부모테이블을 참조했고 커밋 후 DELETE로 테이블의 데이터를 하나 삭제할려고 하다 발생한 에러

참고 코드

CREATE TABLE USER_GRADE (
    GRADE_CODE NUMBER PRIMARY KEY,
    GRADE_NAME VARCHAR2(30) NOT NULL
);

INSERT INTO USER_GRADE VALUES(10, '일반회원');
INSERT INTO USER_GRADE VALUES(20, '우수회원');
INSERT INTO USER_GRADE VALUES(30, '특별회원');


CREATE TABLE USER_FOREIGNKEY  (
    USER_NO NUMBER PRIMARY KEY,
    USER_ID VARCHAR2(20) UNIQUE,
    USER_PWD VARCHAR2(30) NOT NULL,
    USER_NAME VARCHAR2(30),
    GENDER VARCHAR2(10),
    PHONE VARCHAR2(30),
    EMAIL VARCHAR2(50),
    GRADE_CODE NUMBER,
    CONSTRAINT UF_GC_FK FOREIGN KEY(GRADE_CODE) REFERENCES USER_GRADE(GRADE_CODE)
    -- USER_GRADE(GRADE_CODE)를 참조하고 있는 (GRADE_CODE). FOREIGN KEY를 써서 이부분을 컴에게 인지시킴
);

INSERT INTO USER_FOREIGNKEY VALUES(1, 'user01', 'pass01', '강건강','남','010-1111-2222','kang@k.k',10);
INSERT INTO USER_FOREIGNKEY VALUES(2, 'user02', 'pass02', '남나눔','남','010-1111-2222','nam@k.k',10);
INSERT INTO USER_FOREIGNKEY VALUES(3, 'user03', 'pass03', '도대담','남','010-1111-2222','do@k.k',30);
INSERT INTO USER_FOREIGNKEY VALUES(4, 'user04', 'pass04', '류라라','여','010-1111-2222','ryu@k.k',NULL);
-- 참조하는 테이블(=부모테이블)의 참조 컬럼 값 외에 null 값도 가능
INSERT INTO USER_FOREIGNKEY VALUES(5, 'user05', 'pass05', '문미미','여','010-1111-2222','moon@k.k',50);
-- ERROR : ORA-02291: integrity constraint (KH.UF_GC_FK) violated - parent key not found
-- 무결점 제약조건(integrity constraint)위반 : 부모테이블에 없는 값을 참조해서 에러발생

COMMIT; -- 데이터 확정


DELETE FROM USER_GRADE -- 데이터삭제
WHERE GRADE_CODE = 10;
-- ERROR : ORA-02292: integrity constraint (KH.UF_GC_FK) violated - child record found
-- 무결점 제약조건(integrity constraint)위반 : 자식테이블이 존재해서 지울 수 없다
728x90
반응형
728x90

맨 왼쪽부터 동그라미에 빨간색 x표시 뜬다. 컴파일시 에러난다는 의미이며,
위에를 클릭해보면 스샷처럼 오른쪽에 툴팁으로 어떤 에러가 떴는지 나오며
흰색 배너에 해결책이 제시되고, 그 오른쪽에 노란 배너에 해당 선택지들이 실제로 어떻게 코드가 바뀌는지
미리보여주기가 뜬다
int에 쳐진 위쪽 동그라미 안에 보면 옆은 빨간색으로 밑줄이 쳐져 있는데 이 또한 에러발생을 알려주는 표시이다
다만 주석해서 왼쪽에 x표시가 안뜬 것은 컴파일시에 문제가 없기 때문.


에러는 개발자에게 항상 맞닥드리는 부분이니 개발자가 되기 위해 공부를 막 시작했다면 꼭꼭 숙지해주자!!


728x90
반응형

+ Recent posts