Matteo Gattoni wrote:
> 
> I'm trying to extract the catalog from a user  and load it into anothe
> user of the same database instance in MaxDB 7.5.0.19.
> When I load the extracted catalog,
> 
> ./loadercli -d TEST -u DBA,DBA -E 0
> USE USER TEST TES
> SQLMODE ORACLE
> CATALOGLOAD USER INSTREAM FILE 'filename'
> 
> I receive the error
> [MySQL MaxDB][LIBSQLOD SO][MaxDB] Syntax error or access violation;-2000
> POS(575) Row too long
> 
> and watching in file loader.prt, I have
> 
> CATALOGLOAD USER INSTREAM FILE '/ict/app/sdbN/PsfCata1'
> // *
> // M    EXECUTE PACKAGE TO TRANSFORM CATALOG
> // *
> CREATE TABLE "ACTIVITY_DYN_INFO" ( "E_ACT_K_ACTIVITY"               Fixed
> (9,0)    NOT NULL, "E_DINF_TYP_K_DYNINFO_TYPE"               Fixed (6,0)
> NOT NULL, "E_DINF_VAL_K_DYNINFO_VALUE"               Fixed (6,0),
> "Q_VALUE"               Fixed (9,0), "C_VALUE"               Varchar
> (4000) ASCII, "D_VALUE"               Timestamp, "T_VALUE"
> Fixed (12,3), "D_START"               Timestamp    NOT NULL, "K_PROG"
> Fixed (3,0), "O_MODIFY"               Timestamp    NOT NULL,
> "E_OPERATOR_K_OPERATOR"               Varchar (20) ASCII    NOT NULL,
> "C_NOTE"               Varchar (4000) ASCII, "D_END"
> Timestamp, "E_DB_TYP_K_DATABASE_TYPE"               Fixed (6,0)    NOT
> NULL, "K_ACTIVITY_DYNINFO"               Fixed (9,0)    NOT NULL, PRIMARY
> KEY ("K_ACTIVITY_DYNINFO", "E_DB_TYP_K_DATABASE_TYPE") )
> // *
> // E -25392:    '[MySQL MaxDB][LIBSQLOD SO][MaxDB] Syntax error or access
> violation;-2000 POS(575) Row too long'
> // M    Number of tables   transformed : 0
> // *
> // M    Number of views    transformed : 0
> // *
> // M    Number of synonyms transformed : 0
> // *
> // M    UNLOAD TRANSFORMATIONPACKAGE
> x'010000000E5E8B41A5350000EC8AF23B00017F0000000000'
> // *
> // M    START   20041105        00121345
> 
> Looking into the file that contains the catalog extracted, I see that for
> every instruction is explained the SQLMODE. Declaring the SQLMODE ORACLE
> before extract is just useless, isn't it?
> 

The table concerned was created using SQLMODE Oracle. Then it is possible to create a 
table whose rows (if every column is filled to its maximum length) would exceed the 
maximum row length of 8088.
Each insert/update then has to check for the maximum length of a row.
With sqlmode internal the check is done during creation/altering of a table and not 
during insert/update --> if you used Oracle before and now use internal the behaviour 
can be explained.

_-> change sqlmode for table create to oracle

Elke
SAP Labs Berlin

> Thanks,
>    Matteo

-- 
MaxDB Discussion Mailing List
For list archives: http://lists.mysql.com/maxdb
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to