Translation not up to date
Funkcji łańcuchowych można używać z jednostkami łańcuchami ze zdalnego źródła danych Db2 , jednak funkcja łańcuchowa nie jest przesunięta w dół w zdalnym źródle danych Db2 .
Objawy
Funkcje łańcuchowe są używane z jednostkami łańcuchami w zapytaniu, a funkcja łańcuchowa nie jest przesunięta w dół w zdalnym źródle danych Db2 .
Na przykład:
select SUBSTRING (col13_char, 1, 2,OCTETS) from n1
Rozwiązanie problemu
Aby rozwiązać ten problem, należy ustawić opcje SAME_CODESET i STRING_UNITS . Opcja SAME_CODESET umożliwia ustawienie zewnętrznie atrybutu serwera SAME_CODESET . Opcja STRING_UNITS umożliwia ustawienie zewnętrznie atrybutu serwera STRING_UNITS . Jest to ustawienie parametru string_units dla zdalnego źródła danych Db2 .
- Pobierz cid z tabeli
dvsys.rdb_connections
.select cid, url from dvsys.rdb_connections;
- Sprawdź, czy codeset między lokalną bazą danych Watson Query a zdalnym źródłem danych Db2 jest taka sama.
Uruchom następującą komendę zarówno w lokalnej bazie danych Watson Query , jak i w zdalnym źródle danych Db2 , aby uzyskać ustawienie codeset :
db2 get db cfg for <dbname> | grep "Database code set"
Gdzie < nazwa_bazy_danych> jest nazwą bazy danych i produktem
"Database code set" = UTF-8
.Jeśli to ustawienie jest takie samo, można ustawić wartość SAME_CODESET na Y.
- Uruchom następującą komendę w zdalnym źródle danych Db2 , aby znaleźć ustawienie jednostek łańcuchowych:
db2 get db cfg for <dbname> | grep "STRING_UNITS"
Gdzie < nazwa_bazy_danych> jest nazwą bazy danych. Domyślne jednostki łańcuchowe (
"STRING_UNITS"
) są ustawione naSYSTEM
.Jeśli jest to ustawienie
SYSTEM
, należy ustawić wartość STRING_UNITS naS
. Jeśli jest to ustawienieCODEUNITS32
, należy ustawić wartość STRING_UNITS naC
. - Uruchom następujące komendy, aby określić opcje SAME_CODESET i STRING_UNITS , używając <cid > wartość uzyskaną z kroku 1 oraz wartość SAME_CODESET określoną w kroku 2 i wartość STRING_UNITS określoną w kroku 3.
alter server qplex options(set <cid>@same_codeset 'Y')
alter server qplex options(set <cid>@string_units 'S')
Lub
alter server qplex options(set <cid>@same_codeset 'N')
alter server qplex options(set <cid>@string_units 'C')
Więcej informacji na ten temat zawiera sekcja Łańcuchy znaków w dokumentacji Db2 .