PDA

View Full Version : Position von BLOBs in SQL



csteffen
19-05-06, 13:46
Hallo,

ich habe folgendes Phänomen festgestellt: Ich habe im SQL eine Tabelle erstellt, in dieser Tabelle ist ein Feld als BLOB definiert. Ein SELECT funktioniert, solange die Reihenfolge der Felder genau der Reihenfolge in der Tabelle entspricht. Vertausche ich zwei Felder (hinter dem BLOB), erhalte ich die Fehlermeldung SQL0101 (SQL-Anweisung zu lang oder zu komplex.).

Wenn das BLOB-Feld am Ende der Tabelle steht, kann ich die Felder davor auch in anderer Reihenfolge abfragen.

Beispiel:

CREATE TABLE MYLIB/REPORTCONSTRAINT
(
MANDANT CHAR(3) not null,
ID DECIMAL(30, 0) not null,
DELETED CHAR(1),
FIELDNAME VARCHAR(200),
operator INTEGER,
OBJECTVALUE BLOB allocate(1000),
freeFormSQL LONG VARCHAR allocate(1000),
fk_classificationEntry DECIMAL(30, 0),
FK_OPERATORLIST DECIMAL(30, 0),
FK_REPORTDEF DECIMAL(30, 0),
FK_PRIVILEGE DECIMAL(30, 0),
FK_TREENODE DECIMAL(30, 0),
fk_replClass DECIMAL(30, 0),
CREATEDBYAUTHOR VARCHAR(30),
CREATEDATTIMESTAMP TIMESTAMP,
MODIFIEDBYAUTHOR VARCHAR(30),
MODIFIEDATTIMESTAMP TIMESTAMP,
PRIMARY KEY (MANDANT,ID)
)



Diese Abfrage bringt einen Fehler (Felder OPERATOR und OBJECTVALUE vertauscht):

SELECT MANDANT, ID, DELETED, FIELDNAME, OBJECTVALUE, OPERATOR,
FREEFORMSQL, FK_CLASSIFICATIONENTRY, FK_OPERATORLIST, FK_REPORTDEF,
FK_PRIVILEGE, FK_TREENODE, FK_REPLCLASS, CREATEDBYAUTHOR,
CREATEDATTIMESTAMP, MODIFIEDBYAUTHOR, MODIFIEDATTIMESTAMP FROM
MYLIB/REPORTCONSTRAINT


Danke für Hinweise!