2012 Feb 24 8:49 AM
Hi,
creating an index on a table will result in nameschema like tablename~inx where inx is the three letter name you enter in SE11(Indexes).But: the indexname for the index in the database is limited in the dictionary to 18 chars. So some truncation occurs, eg the index Z10 on table ZSD_RU_CUSTOMLOG will result in ZSD_RU_CUSTOMLOGZ1
I thought the indexname in the database is stored in table DD12L in field DBINDEX, but in this case this field is blank? The index exists for sure and SE11 stated Index ZSD_RU_CUSTOMLOGZ1 exists in database system ORACLE
So where is this information stored? Unfortunetly, pressing F1 and F4 does not reveal any information where this comes from.
2012 Feb 24 9:11 AM
I found this in MSGTBF01:
" AW: Manche generierte Indizes haben das Feld DD12V-DBINDEX
" nicht gepflegt. >> Falls dies der Fall ist: bestimme
" Indexname neu.
call function 'DD_INDEX_NAME'
exporting
indexname = dd12v-indexname
tabname = dd12v-sqltab
importing
dbindex = dd12v-dbindex.So you would need to call this function to determine the name in case DD12L-DBINDEX is empty.
Thomas
Hi,
creating an index on a table will result in nameschema like tablename~inx where inx is the three letter name you enter in SE11(Indexes).But: the indexname for the index in the database is limited in the dictionary to 18 chars. So some truncation occurs, eg the index Z10 on table ZSD_RU_CUSTOMLOG will result in ZSD_RU_CUSTOMLOGZ1
I thought the indexname in the database is stored in table DD12L in field DBINDEX, but in this case this field is blank? The index exists for sure and SE11 stated Index ZSD_RU_CUSTOMLOGZ1 exists in database system ORACLE
So where is this information stored? Unfortunetly, pressing F1 and F4 does not reveal any information where this comes from.
2012 Feb 24 9:11 AM
I found this in MSGTBF01:
" AW: Manche generierte Indizes haben das Feld DD12V-DBINDEX
" nicht gepflegt. >> Falls dies der Fall ist: bestimme
" Indexname neu.
call function 'DD_INDEX_NAME'
exporting
indexname = dd12v-indexname
tabname = dd12v-sqltab
importing
dbindex = dd12v-dbindex.So you would need to call this function to determine the name in case DD12L-DBINDEX is empty.
Thomas
2012 Feb 24 9:26 AM
The logic lies inside the fm DD_LIST_INDEX & DB_GET_INDEXES. Place a debug point and check it
2012 Feb 24 9:53 AM
2012 Feb 24 10:33 AM
Little late to reply, just to share the way the text "Index ZSD_RU_CUSTOMLOGZ1 exists in database system ORACLE" in SE11 is determined.
If length of concatenated value of TABLENAME and INDEXNAME > 15
concatenate [tablename] [indexname] to [dbindex name variable] (of length 18).
In your case, table length is already 16, as per above logic {dbindex name variable} will have truncated text.
See Program "LSDD0F02", sub-routine "DD_INDEX_NAME" called from Function module DB_EXISTS_INDEX.
Regards, Vinod
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |