Любая причина, почему Oracle ограничивает размер BLOB до 4000 байтов при использовании последовательности? - PullRequest
1 голос
/ 19 января 2012

У меня странная ситуация.Я использую Oracle и ADO.NET (набор данных Visual Studio).У меня есть таблица, которая включает в себя поле BLOB.Кроме того, у меня есть последовательность для идентификатора этой таблицы.В ADO.NET у меня есть таблица-адаптер этой таблицы.В запросе на вставку я хотел, чтобы он сгенерировал сам идентификатор, поэтому я написал MYSEQ.NEXTVAL во вставке (где: ID должен быть).Работает нормально.

Но дело в том, что когда я использую последовательность внутри запроса, BLOB вставляется неправильно.Независимо от того, какой размер, он вставляет 4000 байтов.Это действительно странно.И когда я не использую последовательность в запросе вставки, это нормально.Я получаю NextID с другим запросом и даю результат в поле ID вставки.Работает нормально.Но мне просто интересно, почему это так.Это выглядит действительно глупо.

Я не уверен, что имя ADO.NET.Я говорю о таблицах и наборах данных, которые я использую в Visual Studio.Извините, если я ошибаюсь.

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) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...