shaksuper wrote:
> 
> hello!
> 
> I have created a unicode-enabled database by set the parameter 
> _UNICODE to YES and the parameter DEFAULT_CODE to UNICODE.
> Then,I input some data from sqlserver2000 to the database successful.
> when I try to run some query statement,the error occur:
> 
> >Auto Commit: On, SQL Mode: Internal, Isolation Level: Committed
> >General error;-2009 POS(1) Join columns too long.
> >select em.STATUS AS status,    em.EMPLOYEE_ID AS employeeId,  
> >em.EMPLOYEE_NAME AS employeeName,a.TIME_CONCUME as timeConcume,  
> >a.END_DATE AS endDate,  p.PROJECT_TITLE_SHORTEN AS 
> >projectName,ot.OPERATION_TYPE_TITLE AS operationType from  
> >manhaur_temp AS a , empolyee as em, project as p,  operation_type as 
> >ot,  operation as o where      em.EMPLOYEE_ID=a.EMPLOYEE_ID and  
> >a.OPERATION_ID=o.EVENT_ID  and      
> >o.OPERATION_TYPE_ID=ot.OPERATION_TYPE_ID and    
> >o.EVENT_ID=p.PROJECT_ID
> 
> I tested several times,I found that if the statement include 3 tables 
> it will run fine,more than 3 tables it will generate the General 
> error;-2009 POS(1) Join columns too long.

ith the current versions of MaxDB there is a limit of 1020 bytes (bytes,
not character) for those join-columns used for joining the next table.
If you have tables a,b,c,d (assuming, they are handled in this sequence)
and join-predicates like
a.c1 = c.c1 and
b.c2 = c.c2 and
c.c3 = d.c3

Then (after having joined a and b) the join-columns for table c are c.c1 and c.c2,
not c.c3. Therefore the sum of lengths of c.c1 and c.c2 is not allowed this limit.
With other sequences of table-handling (if a,b,d,c is the best sequence, for example)
those columns which are needed to join c may be different.

> 
> Besides,I sometimes fall across the General error;-904 POS(1) Space 
> for result tables exhausted,when I execute sql statement both at sql 
> studio and according JDBC driver.

In the archive of this list, there are several therads concerning error -904.
It means, that your database is too small to hold the intermediate results
and the final result of some selects.
This may be caused by 
- a really too small database (nearly filled with primary data)
- a select with huge size of intermediate results, for example
  for joins with OR-terms for join-conditions
- wrong (too old) optimizer statistics causing bad join-sequences
- missing indizes causing bad join-sequences.

We do not know those selects, the size of the database, the explain-output
of those selects,... therefore these are just hints where to look to.

> 
> I have read the document carefully,but still confused.
> At last,I also setup a non unicode-enabled database and try the same 
> example,and it's run fine.
> Is this a sapdb BUG?

No, this is no bug, but unicode-character needs twice the size of
ascii-character--> increasing the size of primary data, intermediate 
and final results, row length, join-column-length.
Do you really NEED all columns to be of unicode-type 
or would it be a good idea to define a mixture
of ascii character columns and unicode-character-columns depending
on the columns needs?


Elke
SAP Labs Berlin
> 
> _______________________________________________
> sapdb.general mailing list
> [EMAIL PROTECTED]
> http://listserv.sap.com/mailman/listinfo/sapdb.general
> 
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to