我正在尝试在表上执行插入操作,并且它正在抛出此错误。但是,它没有向我显示受影响的列。
有谁知道这里发生了什么?
答案 0 :(得分:0)
您的应用或SQL正以某种方式将<NULL>
发送到已指定为"NOT NULL"
的列。
我刚刚在我写的应用程序中看到了这个。请考虑下表:
CREATE TABLE "PURCHASE" (
"PURCHASE_NAME" VARCHAR(150) NOT NULL,
"NOTIFY_FLAG" CHARACTER(1) NOT NULL,
"PURCHASE_AMOUNT" DECIMAL(9, 2)
)
以下列方式插入会产生您询问的错误:
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.
要调试它,您需要以某种方式捕获您的应用程序生成的SQL并通过更直接的数据库客户端运行它,如TOAD(http://www.quest.com/database-management/)。