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")
 ..........)

Благодарю.

0 ответов

Другие вопросы по тегам