ORA-01400: невозможно вставить NULL в PK в Oracle
Я использую Oracle 12c. Я не мог выполнить процедуру хранения, когда я поместил его в процедуру хранения, он выдал ошибку ORA-01400, как это:
ORA-01400: невозможно вставить NULL в ("PRODUCT". "My_table". "ID")
* Причина: была сделана попытка вставить NULL в ранее перечисленные объекты.
* Действие: эти объекты не могут принимать значения NULL.
Но когда я вынимаю его и выполняю оператор вставки, он работает. Кто-то может помочь и объяснить для меня?
Вот мой код в SP:
BEGIN
INSERT INTO Product.My_table(Code,time,sub,date,owner,type)
SELECT Code ,time,sub,SYSTIMESTAMP,p_UpdateBy,1 FROM Product.My_table2 WHERE ACTIVE=1
AND Code NOT IN(SELECT time FROM Product.My_table P WHERE sub = v_ID AND Type=1)
ORDER BY Code ASC;
COMMIT;
END;
И это мой скрипт создания таблицы
CREATE TABLE "PRODUCT"."My_table"
("ID" NUMBER(10,0) DEFAULT PAR.My_table.nextval NOT NULL ENABLE,
"Code" NUMBER(10,0),
"TIME" VARCHAR2(30 BYTE),
"sub" NUMBER(10,0),
"TIMEZONEABILITY" NUMBER(5,0),
"Date" TIMESTAMP (6),
"owner" VARCHAR2(30 BYTE),
"KIND" NUMBER(3,0) DEFAULT ((1)),
"TYPE" NUMBER(3,0) DEFAULT ((1)),
CONSTRAINT "My_table" PRIMARY KEY ("ID")
..........)
Благодарю.