ORA-01400: невозможно вставить NULL в PK в Oracle - PullRequest
0 голосов
/ 30 января 2019

Я использую 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")
 ..........)

Спасибо.

...