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