我有一种奇怪的情况。我正在使用Oracle和ADO.NET(Visual Studio Dataset)。我有一个包含BLOB字段的表。另外,我有一个表的ID序列。在ADO.NET中,我有一个这个表的tableAdapter。在插入查询中,我希望它生成ID本身,所以我在插入中写了MYSEQ.NEXTVAL
(其中:ID应该是)。它工作正常。
但事实是,当我在查询中使用序列时,BLOB插错了。无论大小是多少,它都会插入4000个字节。这真的很奇怪。并且,当我不在插入查询中使用序列时,它很好。我用另一个查询获取NextID并将结果提供给insert的ID字段。它工作正常。但我只是想知道它的原因。它看起来真的很愚蠢。
我不确定这个名字是ADO.NET。我在谈论我在Visual Studio中使用的tableadapters和数据集。对不起,如果我错了。
INSERT INTO IPYYB_KOM_BASVURUEVRAK
(ID, BASVURUID, EVRAK, DOSYAADI, TARIH, TANIM)
VALUES (:ID, :BASVURUID, :EVRAK, :DOSYAADI, :TARIH, :TANIM)
EVRAK是文件。这是工作代码。以下是无效代码。
INSERT INTO IPYYB_KOM_BASVURUEVRAK
(ID, BASVURUID, EVRAK, DOSYAADI, TARIH, TANIM)
VALUES (IPYYB_KOM_EVRAK_SEQ.NEXTVAL, :BASVURUID, :EVRAK, :DOSYAADI,
:TARIH, :TANIM)
这是序列,
CREATE SEQUENCE "MUBIS"."IPYYB_KOM_EVRAK_SEQ" MINVALUE 1
MAXVALUE 99999999999999999999999 INCREMENT BY 1 START WITH 21
CACHE 20 NOORDER NOCYCLE ;
这是表格,
CREATE TABLE "MUBIS"."IPYYB_KOM_BASVURUEVRAK"
(
"ID" NUMBER NOT NULL ENABLE,
"BASVURUID" NUMBER,
"EVRAK" BLOB,
"DOSYAADI" VARCHAR2(200 BYTE),
"TARIH" DATE,
"TANIM" VARCHAR2(200 BYTE),
CONSTRAINT "IPYYB_KOM_BASVURUEVRAK_PK" PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE
)
SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT
)
TABLESPACE "USERS" LOB
(
"EVRAK"
)
STORE AS BASICFILE
(
TABLESPACE "USERS" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION NOCACHE LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
) ;
CREATE UNIQUE INDEX "MUBIS"."IPYYB_KOM_BASVURUEVRAK_PK" ON "MUBIS"."IPYYB_KOM_BASVURUEVRAK"
(
"ID"
)
PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE
(
INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT
)
TABLESPACE "USERS" ;
CREATE UNIQUE INDEX "MUBIS"."SYS_IL0000097973C00003$$" ON "MUBIS"."IPYYB_KOM_BASVURUEVRAK"
(
PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" PARALLEL (DEGREE 0 INSTANCES 0) ;