Skip to content

Error : Invalid BLOB ID #8682

@zifou1958

Description

@zifou1958

I have a trigger on an articles_ft table that contains several blobs:

CREATE OR ALTER TRIGGER ARTICLE_FT_BEFORE_INSERT_UPDATE
ACTIVE BEFORE INSERT OR UPDATE ON ARTICLE_FT POSITION 0
EXTERNAL NAME 'udrbouz!article_ft' ENGINE UDR;

The udr function is written in Pascal. Its role is to fill a small blob (< 64Kb) in the article_ft table.
Everything works on the udr side.
And my table is updated correctly.

CREATE TABLE ARTICLE_FT (
    CODEART  INTEGER NOT NULL,
    FT0      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT1      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT2      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT3      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT4      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT5      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT6      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */,
    FT7      SMALLBLOB /* SMALLBLOB = BLOB SUB_TYPE BINARY SEGMENT SIZE 80 */
);
ALTER TABLE ARTICLE_FT ADD CONSTRAINT ARTICLE_FT PRIMARY KEY (CODEART);
insert into ARTICLE_FT(codeart) select code from article where octet_length(fichetechnique) > 0;

After committing the last query,
I execute:

select A.codeart, octet_length(A.FT0) from article_ft a where octet_length(A.FT0) > 0

I get the error: Invalid blob id

with the following query:

select BLOBIDBIN(A.FT0) from ARTICLE_FT A rows 2

I get the following results:

Image

you'll notice that the blob id begins with zero, which means the stored blob id is temporary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions