How to handle case sensitive datastores

I am using an installation of Sybase ASE 15.x as my target datasource. This database is case sensitive, and the owner of all tables is ‘dbo’ with lower case.

My problem is that BODI translates all metadata to upper case, so that for BODI the owner becomes ‘DBO’, which in turn has many negative complications, for example it results in that I can not reimport tables.

Can anyone tell me how can I set up BODI to not translate metadata to upper case.


KonradLepsoy :norway: (BOB member since 2006-05-15)

DI shouldn’t translate that. Please file a bug and in the meantime use the datastore advanced option “owner alias” to deal with it. So you create a new alias named DBO (the owner as it is in the repo) with its alias name dbo.


Werner Daehn :de: (BOB member since 2004-12-17)

Thanks, that worked!

However, I had to put the lower case dbo in quotation marks (i.e. like this “dbo” ) in the alias field for BODI to keep it in lower case.

Where should I report this as bug, is it on www.businessobjects.com ?

Regards,
Konrad


KonradLepsoy :norway: (BOB member since 2006-05-15)

http://www.businessobjects.com/support/default.asp


Werner Daehn :de: (BOB member since 2004-12-17)

I faced a similar problem with MS SQL Server 2005 as my source database.

  1. When I import the table (whose name is dbo.OppTable in SQL Server), DI imports it with the name (DBO.OPPTABLE)
  2. When I add this Table object to the Central repository – DI creates 2 objects in the central repository with the names (DBO.OPPTABLE and dbo.OppTable)
  3. When I compare my local datastore with Central – the comparison report says that the ‘Case Sensitivity’ property is set to ‘Yes’ in the Central and is set to ‘No’ in the Local repository.
  4. I wanted to turn off the ‘Case Sensitivity’ property in the Data Store definition available in Central.
  5. I checked-out ‘without replacement object’ & performed a check-in of the data store object
  6. Even after check-in the ‘Case Sensitivity’ option is ‘turned ON’ in the data store definition available in Central Repository.
  7. I went really crazy trying to figure out what’s going on and finally gave up :frowning:

If someone can help me …with their thoughts on how to address this – I’ll really apperciate it.

Thanks in advance for your inputs…


srinivas_t (BOB member since 2007-11-25)

what is the version of DI that you are using ? check the history of the datastore in the central repo does all the versions have the case-sensitive set to false ?

what is your local repo database type and central repo database type ?


manoj_d (BOB member since 2009-01-02)

DI version:::
Designer: 11.7.2.0

Central & Local repositories are on the same database. The database version: Oracle 10g

Yes, when I looked at the history of the data store object – there were versions where the Case Sensitivity was Turned OFF…

Hope to get some inputs!!


srinivas_t (BOB member since 2007-11-25)

Could anyone help me understand what’s the problem here, please?

Thanks in advance for your time and help.


srinivas_t (BOB member since 2007-11-25)

just to clarfiy few more things

if you import a new table, and check-in to the central, its creating 2 copies of that table one with Upper case and other with lower case ? or this for some existing tables ?

can you do a “where used” for the table in the local that is displayed in upper and lower case in central repo ? check if this table is reference in script or customer function or compare table in same case as it is displayed in datastore ?

when you are doing check-out/check-in, is the datastore connection valid at that time ?

how about other local repos, is the case-sensitive option no in those repos also ? if the history shows it as no for some versions and yes for some of them, check from which local repo this was checked-in as yes

will take a look at the code over the weekend and see whats going wrong


manoj_d (BOB member since 2009-01-02)

Hi Manoj,
please find my answers below:

Yes. This behavior is seen for new table objects that I imported (and added to Central, eventually) and even for those table objects that are already existing, when I re-import, check-out and check-in them

the data flows refer to the table with All Upper case Letters in its name (ex: OPPTABLE).
But when I got a different local repository (other than mine I mean) and perform a ‘get latest from central with object and dependents’, that repository gets only one version of the table into that local repository (ex: OppTable). And after the get latest operation is complete, if I validate the data flow, it complains that the table “OPPTABLE” is missing in the data store objects…

Yes

this data store’s case sensitivity property was modified about 1.5 years back and that user is not here anymore…so I’m not sure if I can gather that user specific info right now…
but FYI: Even I was able to change that case sensitivity property of this data store in the Central (I think I was able to do it once), during the initial stages of my trouble-shooting of this problem. It’s only later on that it’s not letting me even do that.

Thanks a ton…this problem actually drove me crazy…hope this is an issue that’s fixed sooner than later :slight_smile:


srinivas_t (BOB member since 2007-11-25)

did some investigation the case-sensitive option for datastore is highly sensitive, its a read only property and is determined dynamically from the database, so when ever the datastore is modified make sure that the connection is valid

if the SQL server DB is not case sensitive, it will still store the table names in the case as entered by the user, it will not change that to upper case

I managed to reproduce the issue with 2 entries for same table in Datastore with different case
this is what I did
Create a table in SQL Server DB in mixed case
Create a DS for the SQL Server DB in DI, import the table, the tables are imported in upper case
add the DS and tables to the Central, both local and central display the table names in upper case
I am not able to reproduce the issue with case sensitive property as yes in central and no in local
so I exported the DS from the central to an ATL, changed the user name, and imported the ATL again, since connection is not valid, the DS case-sensitive property is set to yes (by default DI sets it to yes) and I can see 2 entries for the tables
but if I checkout the DS and fix the connection and check-in again, and open the Desginer again, the local and central repo both show the table names in upper case, I also tried check-out without replacement

for your DS, do you have multiple configurations ? if yes, is the default configuration for local and central repo same ? does all the configurations point to non case sensitive DB ?
can you try following
Check-out the DS without replacement
make sure the connection info is correct for DS
Check-in the DS to central
Exit Designer
Open Designer again and do a diff for the datastore is the case-sensitive option fixed ?

there is one more issue, if this property gets messed up, you will see 2 enteries for same table in AL_SCHEMA repo table in both central and local, repo, not sure what impact it will have ?
the other thing is since the DS is not case sensitive, the lower case enteries will not show up in the Designer, if someone has modified the table with lower case name then they may not get reflected in table with upper case name ?


manoj_d (BOB member since 2009-01-02)

Thanks, I had the same problem (using BODS 4.0) and this fixed it.


FreeZey (BOB member since 2007-12-07)