IBM Support

DataStage : ODBC経由で日本語のデータベース名を持つデータベースへ接続する場合の設定

How To


Summary

日本語のデータベース名をそのまま .odbc.ini 内のDSNに記述した場合、ODBCコネクターにそのDSNを指定したジョブを実行するとデータベースとの接続エラーが発生します。
 
例:
.odbc.ini 内の DSN の設定例(SQLServer 内の"テストDB"というデータベースに接続するためのDSN):
[sqljpdb]
Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMsqls00.so
Description=DataDirect SQL Server Native Wire Protocol
....
Database=テストDB
....
 
ジョブ実行時のエラーメッセージの例:
項目 #: 34
イベント ID: 33
タイム・スタンプ: 2024-08-07 16:23:26
タイプ: 致命的
ユーザー名: dsadm
メッセージ ID: IIS-CONN-ODBC-00004
メッセージ: ODBC_Connector_0: ODBC function "SQLConnect" reported: SQLSTATE = 08001: Native Error Code = 4,060: Msg = [IBM (DataDirect OEM)][ODBC SQL Server Wire Protocol driver][SQL Server]このログインで要求されたデータベース "?????????DB" を開けません。ログインに失敗しました。
ODBC function "SQLConnect" reported: SQLSTATE = 28000: Native Error Code = 18,456: Msg = [IBM (DataDirect OEM)][ODBC SQL Server Wire Protocol driver][SQL Server]ユーザー 'sa' はログインできませんでした。 (CC_OdbcConnection::connect, file CC_OdbcConnection.cpp, line 616)


Steps

エラーを回避する方法:
 
方法1:
日本語のデータベース名をそのまま .odbc.ini に記述して、.odbc.ini ファイルを UTF-8(BOM付き)で保存します。
ODBCコネクター内の"データ・ソース"の指定では、そのDSNをそのまま指定します(例では、sqljpdb と指定)。
 
[sqljpdb]
Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMsqls00.so
Description=DataDirect SQL Server Native Wire Protocol
 ....
Database=テストDB 
 ....
 
linux環境でファイルの先頭にBOMを追加する方法の例:
bash/ksh などで
 cat <(printf "\xEF\xBB\xBF") file.txt
と実行すると先頭にBOMが付いてファイルの内容が標準出力に出力されます。
 
 
方法2.
.odbc.ini 内のDSNには、データベース名としてasciiでダミーのデータベース名を指定します。
コネクター内の"データ・ソース"の指定では、"DSN=<DSN>; Database=<接続する日本語のデータベース名>"と指定します。
 
[sqljpdb]
Driver=/opt/IBM/InformationServer/Server/branded_odbc/lib/VMsqls00.so
Description=DataDirect SQL Server Native Wire Protocol
 ....
Database=dummy 
 ....
 
image-20240808164540-1
・DSNのDatabaseに指定するダミーのデータベース(例ではdummy)が実際に存在している必要はありません。
  
 
 

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m50000000L0y3AAC","label":"DataStage-\u003EJob Stages-\u003EODBC Connector"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"}],"Version":"11.7.0;11.7.1"}]

Document Information

Modified date:
14 August 2024

UID

ibm17163958