Backslash in Admin variable dropped going into the query

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
JPalatianos
Premium Member
Premium Member
Posts: 306
Joined: Wed Jun 21, 2006 11:41 am

Backslash in Admin variable dropped going into the query

Post by JPalatianos »

Hi,
We are migrating our 9.1 DataStage project from Windows to 11.5 running on Red Hat Linux.
We have one project that uses the server name in the queries as follows:
from #$Server#.#$PlanMartDB#.dbo.dly_finance_invst_info_dim
The server variable is defined in administrator as
[NJROS1BD0130\DEV].
This job run fine on our 9.1 Windows project but in our new environment it appears we lose the slash as we get the error
"main_program: [IBM(DataDirect OEM)][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Could not find server 'NJROS1BD0130DEV' in sys.servers. Verify that the correct server name was specified."

I created a test job and hardcoded the server in the sql as
from [NJROS1BD0130\DEV].#$PlanMartDB#.dbo.dly_finance_invst_info_dim and this runs fine

Any thought how I should code the admin Variable on our 11.5 Linux server?

Thanks - - John
JRodriguez
Premium Member
Premium Member
Posts: 425
Joined: Sat Nov 19, 2005 9:26 am
Location: New York City
Contact:

Post by JRodriguez »

Hi JPalatiano,

Try escaping the special character like ServerName/\DEV that should.allow you to.pass the value as a literal

Hope it help![/b]
Julio Rodriguez
ETL Developer by choice

"Sure we have lots of reasons for being rude - But no excuses
JPalatianos
Premium Member
Premium Member
Posts: 306
Joined: Wed Jun 21, 2006 11:41 am

Post by JPalatianos »

Hi Julio,
I tried the following in administrator:
[NJROS1BD0130/\DEV]
Now it gives me Could not find server 'NJROS1BD0130/DEV' in sys.servers.

A bit closer but we want it interpreted as 'NJROS1BD0130\DEV

Thanks - - John
JRodriguez
Premium Member
Premium Member
Posts: 425
Joined: Sat Nov 19, 2005 9:26 am
Location: New York City
Contact:

Post by JRodriguez »

Hi John,
Sorry, you should use ServerName\\NameInstance to get the desire result
By the way, normally you don't want to qualify the tables in your.SQL statements by adding the server and name instance where your SQL Server database is hosted. Just define the server name and port in your ODBC entry (.odbc.ini) and you should be able run the SQL statements
Julio Rodriguez
ETL Developer by choice

"Sure we have lots of reasons for being rude - But no excuses
JPalatianos
Premium Member
Premium Member
Posts: 306
Joined: Wed Jun 21, 2006 11:41 am

Post by JPalatianos »

Hi Julio,
Thank You!!
I could have sworn that I tried that up front but it appears I was never saving my changes when updating the administrative value. The [NJROS1BD0130\\DEV] ended up working for us.

FYI....
The reason this application has the server name in some of their jobs is they sometimes decide to query the table from the existing server (defined in the odbc.ini file) but sometimes they go after the same table in a Linked Server so they decided to parameterize that piece.
Thanks - - John
Post Reply