2015-06-16 1 views
3

Я не так попал в базу данных, и у меня есть следующая проблема, пытающаяся реализовать простой запрос , который вставляет новую запись в базу данных Oracle.Почему я не могу выполнить этот запрос вставки, если для определенного значения поля установлено значение null?

Так что мой стол имеет следующую структуру:

DESCRIBE FLUSSO_XMLSDI 

Nome   Nullo Tipo   
-------------- -------- ------------ 
NUMERO_FATTURA NOT NULL VARCHAR2(15) 
DATA_EMISSIONE   DATE   
XML      CLOB   
PFK_PIVA    VARCHAR2(16) 
PDF      VARCHAR2(1) 

Так как вы можете увидеть последнее поле этой таблицы называется PDF и это обнуляемым и иметь 1 символ в качестве длины (Это определяется как VARCHAR2 (1 BYTE), но я думаю, что это означает, что он может содержать только символ).

Так что моя проблема в том, что если я делаю:

INSERT INTO FLUSSO_XMLSDI (NUMERO_FATTURA, DATA_EMISSIONE, XML, PFK_PIVA, PDF) 
     VALUES (004600002149, date'2015-03-16', 'TEST' , 80003690668, 'S'); 

Он работает и новая запись правильно вставлена ​​в мой FLUSSO_XMLSDI стол.

Но когда я пытаюсь сделать (настройка по Pdf поле для ** нуль):

INSERT INTO FLUSSO_XMLSDI (NUMERO_FATTURA, DATA_EMISSIONE, XML, PFK_PIVA, PDF) 
     VALUES (004600002149, date'2015-03-16', 'TEST' , 80003690668, null); 

я получаю следующее сообщение об ошибке:

Errore con inizio alla riga 1 nel comando: 
INSERT INTO FLUSSO_XMLSDI (NUMERO_FATTURA, DATA_EMISSIONE, XML, PFK_PIVA, PDF) 
     VALUES (004600002149, date'2015-03-16', 'TEST' , 80003690668, null) 
Report errori: 
Errore SQL: ORA-01403: no data found 
ORA-06512: at "EDIWEA.TRI_P_FLUSSO", line 10 
ORA-04088: error during execution of trigger 'EDIWEA.TRI_P_FLUSSO' 
01403. 00000 - "no data found" 
*Cause:  
*Action: 

Почему я не могу указать что PDF значение поля как null также если его можно сгинуть? Что мне не хватает? Как я могу исправить эту проблему?

+5

На столе есть триггер: EDIWEA.TRI_P_FLUSSO. Что оно делает? –

+0

В триггере EDIWEA.TRI_P_FLUSSO есть, вероятно, инструкция SELECT ... INTO, которая не дает результата, когда поле PDF равно NULL. – ErikL

+1

Хотя схема таблицы допускает нулевые значения, появляется триггер, который работает со значением в столбце который ожидает значение. Либо триггер должен быть переписан для обработки нулей, либо схема таблицы должна быть изменена (если возможно), чтобы не допускать их в первую очередь. –

ответ

1

Этого типа ошибка no data found

ORA-04088: error during execution of trigger 'EDIWEA.TRI_P_FLUSSO' 

может быть вызван из select * into variable from dual и его возвращения пустых значений, то выберите должны возвращать записи в B добавлен к переменным, так что вы должны либо настроить выбор, чтобы вернуться значения или комментарии, поэтому триггеры работают.

есть другие причины для этой ошибки, мы не можем вам помочь, если вы не покажете нам триггер.