I deleted the tables and recreated them in Oracle Mode and soon I extracted
the catalog, but in the file extracted the create table still appears in
Internal Mode.
Why?

I use the following instructions:
./loadercli -d OSPMI -u dba,dba
USE USER PSF PSF
SQLMODE ORACLE
CATALOGEXTRACT USER OUTSTREAM FILE '/ict/app/sdbN/PsfCata1'

Even if a table was created in ORACLE mode, the loader converts it in
internal one.
Is it a behaviour wanted? If it's so, what about the limitation of row
lenght in Internal Mode? That's my problem.

Thanks,
   Matteo

----- Original Message ----- 
From: "Matteo Gattoni" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>; "Zabach, Elke" <[EMAIL PROTECTED]>
Sent: Friday, November 05, 2004 3:56 PM
Subject: Re: CATALOGLOAD Row too long


> Hello,
>    thanks for reply.
>  What does it mean "change sqlmode for table create to oracle"? What do I
>  need to do?
>  Maybe, modify the file extracted manually and transform the table
creation
>  into Oracle Mode.
>  Infact in the file, it is in internal mode:
>
>  SQLMODE INTERNAL
>  //
>  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")
>  )
>  //
>  How could I make this changing automatic? I would like to create an
>  automatic export/import process.
>
>  I created the table in SQLMODE ORACLE. How could I have changed it into
>  Internal then? Why Do I find it in Internal mode?
>
>  If the mode are totally equivalent (as more than one time I find in
>  documentation and mails - only syntaxes differ), why there will be such a
>  difference between internal and oracle mode? Are there other differences?
>
>  Thanks,
>    Matteo
>
>
> > ----- Original Message ----- 
> > From: "Zabach, Elke" <[EMAIL PROTECTED]>
> > To: "'Matteo Gattoni'" <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
> > Sent: Friday, November 05, 2004 3:13 PM
> > Subject: AW: CATALOGLOAD Row too long
> >
> >
> > > 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]
>
>


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

Reply via email to