我不是很喜欢数据库,我在一个名为 CODA_TX 的表中实现一个简单的插入查询(在 Oracle db上)有一些问题,该表具有以下结构:
describe CODA_TX
Nome Nullo Tipo
-------------------- -------- --------------
PK_CODA NOT NULL NUMBER(10)
FK_TIPO_DOC NUMBER(4)
FK_PIVA_MITTENTE VARCHAR2(16)
FK_CDZZ VARCHAR2(4)
DATA_IN DATE
FK_STATO NOT NULL NUMBER(2)
DATA_OUT DATE
NUM_DOC VARCHAR2(35)
CANALE VARCHAR2(3)
SIZE_XML NUMBER(10)
FK_PIVA_DESTINATARIO VARCHAR2(20)
INDIRIZZAMENTO VARCHAR2(100)
SIGNATURE VARCHAR2(1)
PRG_CONSERVAZIONE NUMBER(10)
MIT_DATA_CONS DATE
MIT_LOTTO_CONS VARCHAR2(50)
DES_DATA_CONS DATE
DES_LOTTO_CONS VARCHAR2(50)
SEGNALAZIONE VARCHAR2(4000)
IDOC_NUM NUMBER
CODICE_UFFICIO_PA VARCHAR2(6)
IDENTIFICATIVO_SDI NUMBER(12)
NOME_FILE_SDI VARCHAR2(50)
所以我已经实现了这个插入查询来创建一个新记录。如你所见,我指定了一些必须加价的字段,未指定我认为应该自动设置为 null (它是否正确?):
insert into
CODA_TX (PK_CODA,
FK_TIPO_DOC,
FK_PIVA_DESTINATARIO,
DATA_IN,
FK_STATO,
DATA_OUT,
CANALE,
SIZE_XML,
FK_PIVA_MITTENTE)
values(70045,
5,
01392380547,
Thu May 21 16:33:40 CEST 2015,
2,
Thu May 21 16:33:40 CEST 2015,
WEB,
554,
01392380547)
问题是执行此查询时我收到此错误消息:
Bind variable "33" non dichiarata (NOT DECLARED)
0 righe inserito.
它究竟意味着什么?我错过了什么?我该如何解决这个问题?
TNX
答案 0 :(得分:4)
5月21日星期四16:33:40 CEST 2015
既不是字符串也不是日期。
DATA_IN 和 DATA_OUT 列数据类型为DATE,日期不能包含时区。
好像你没有花费任何精力去研究和理解从answer到previous question的所有内容。
WEB
您必须始终将字符串值括在单引号中。
例如,
'WEB'
01392380547
NUMBER 不能以零开头。由于您将其声明为 VARCHAR2 数据类型,请将其括在单引号
中最重要的问题是,您的值与列不匹配。例如,第三个最后一个值Thu May 21 16:33:40 CEST 2015
映射到列CANALE
。但是,该列描述为:
CANALE VARCHAR2(3)
因此,使用简单插入查询,您有基本问题。