Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果特定字段值设置为null,为什么我不能执行此插入查询?_Sql_Database_Oracle_Oracle11g_Rdbms - Fatal编程技术网

Sql 如果特定字段值设置为null,为什么我不能执行此插入查询?

Sql 如果特定字段值设置为null,为什么我不能执行此插入查询?,sql,database,oracle,oracle11g,rdbms,Sql,Database,Oracle,Oracle11g,Rdbms,我对数据库不太感兴趣,在尝试实现一个简单的插入查询(将新记录插入到Oracle数据库中)时遇到以下问题 因此,我的表具有以下结构: DESCRIBE FLUSSO_XMLSDI Nome Nullo Tipo -------------- -------- ------------ NUMERO_FATTURA NOT NULL VARCHAR2(15) DATA_EMISSIONE DATE XML

我对数据库不太感兴趣,在尝试实现一个简单的插入查询(将新记录插入到Oracle数据库中)时遇到以下问题

因此,我的表具有以下结构:

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个字符,它被定义为VARCHAR21字节,但我认为这意味着它只能包含一个字符

所以我的问题是如果我这样做:

INSERT INTO FLUSSO_XMLSDI (NUMERO_FATTURA, DATA_EMISSIONE, XML, PFK_PIVA, PDF) 
       VALUES (004600002149, date'2015-03-16', 'TEST' , 80003690668, 'S');
它工作正常,新记录正确地插入到我的FLUSSO_XMLSDI表中

但当我尝试将PDF字段设置为**null时:

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,为什么我不能将其指定为null?我错过了什么?如何解决此问题?

此类型的错误未找到数据

可能是由于select*into变量从dual及其返回空值引起的,select应将添加到变量的记录返回到b,因此您必须调整select以返回值或对其进行注释,以便触发器工作


该错误可能还有其他原因,除非您向我们展示触发器,否则我们无法帮助您。

表中有一个触发器:EDIWEA.TRI_p_FLUSSO。它的作用是什么?在触发器EDIWEA.TRI_P_FLUSSO中,可能有一些SELECT…INTO语句在PDF字段为空时不给出结果。当表架构允许为空时,似乎有一个触发器对期望值的列中的值进行操作。要么需要重写触发器以处理空值,要么应该更改表架构(如果可能的话)以首先不允许它们。
 ORA-04088: error during execution of trigger 'EDIWEA.TRI_P_FLUSSO'