2012-12-11 3 views
0

테이블에 삽입을하려고하는데이 오류가 발생합니다. 그러나, 그것은 영향을받는 컬럼을 보여주지 않습니다.DB2 오류 : NULL이 아닌 열에 NULL 값을 지정할 수 없습니다.

여기에 무슨 일이 일어나는 지 아는 사람이 있습니까?

DB2 Error

+1

코드를 표시 할 수 있습니까? 그리고 테이블 스키마에 대해 뭔가? – Steve

+2

삽입 문에 모든 열을 포함하지 않았고 누락 된 열 중 하나/일부가 null이 아닌 것으로 정의 된 것 같습니다. DB 스키마를 제안하고 DB 스키마를 나열하고 문을 삽입하는 것이 유용 할 것입니다. –

+1

나는 가능한 원인에 대해 @BruceMartin에 동의합니다. DB2에서 발생할 수있는 한 특정 상황 : 자동 생성 키가있는 테이블이 있고 그 테이블에 'LIKE' 테이블을 새로 작성하면 기본적으로 자동 생성이 새 테이블에 복사되지 않습니다. 'NOT NULL' 속성이 있습니다). 따라서 인서트는 자동 생성되고 있다고 가정하는 키에 null을 할당하려고 시도합니다. – dan1111

답변

0

어떻게 든 당신의 응용 프로그램 또는 SQL은 "NOT NULL" 지정 된 열을 <NULL>을 보내고있다.

나는 글을 쓰고있는 앱에서 이것을 보았다. 당신이에 대해 물어 오류가 발생합니다

CREATE TABLE "PURCHASE" (
    "PURCHASE_NAME" VARCHAR(150) NOT NULL, 
    "NOTIFY_FLAG" CHARACTER(1) NOT NULL, 
    "PURCHASE_AMOUNT" DECIMAL(9, 2) 
) 

다음과 같은 방식으로 삽입 : 다음 표를 고려하여 DB 클라이언트가 당신에게 열 정보를 송출하지 않게

INSERT INTO PURCHASE 
(PURCHASE_NAME, NOTIFY_FLAG, PURCHASE_AMOUNT) 
VALUES 
('Lotus Organizer version 3.1', null, 12743.27); 

귀하의 스크린 샷을 보여줍니다. 그것은 다음과 비슷한 모습이 될 것입니다

ERROR [23502] [IBM][DB2/AIX64] SQL0407N Assignment of a NULL value to a NOT NULL 
column "TBSPACEID=15, TABLEID=11, COLNO=16" is not allowed. 

이를 디버깅하려면, 당신은 어떻게 든 두꺼비 (http://www.quest.com/database-management/)과 같은 앱이 생성하는 SQL을 잡아 더 직접적인 DB 클라이언트를 통해 그것을 실행해야합니다.

관련 문제