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]