Puede utilizar funciones de serie con unidades de serie de un origen de datos remoto de Db2; sin embargo, la función de serie no se reduce en el origen de datos remoto de Db2.
Síntomas
Puede utilizar funciones de serie con unidades de serie en una consulta y la función de serie no se empuja hacia abajo en el origen de datos remoto de Db2.
Por ejemplo
select SUBSTRING (col13_char, 1, 2,OCTETS) from n1
Resolución del problema
Para resolver este problema, debe establecer las opciones SAME_CODESET y STRING_UNITS. La opción SAME_CODESET proporciona una forma de establecer el atributo de servidor SAME_CODESET externamente. La opción STRING_UNITS proporciona una forma de establecer el atributo de servidor STRING_UNITS externamente. Es el valor de string_units para el origen de datos remoto de Db2.
- Obtenga el cid de la tabla
dvsys.rdb_connections
.select cid, url from dvsys.rdb_connections;
- Compruebe si el ' codeset ' entre la base de datos local Data Virtualization y la fuente de datos remota ' Db2 ' es el mismo.
Ejecute el siguiente comando tanto en la base de datos local Data Virtualization como en la fuente de datos remota ' Db2 ' para obtener la configuración de ' codeset '.
db2 get db cfg for <dbname> | grep "Database code set"
Donde <dbname> es el nombre de la base de datos y
"Database code set" = UTF-8
.Si el valor es el mismo, puede establecer SAME_CODESET en Y.
- Ejecute el mandato siguiente en el origen de datos remoto Db2 para buscar el valor de unidades de serie.
db2 get db cfg for <dbname> | grep "STRING_UNITS"
Donde < dbname> es el nombre de la base de datos y la unidad de serie predeterminada (
"STRING_UNITS"
) se establece enSYSTEM
.Si el valor es
SYSTEM
, establezca STRING_UNITS enS
. Si el valor esCODEUNITS32
, establezca STRING_UNITS enC
. - Ejecute los mandatos siguientes para especificar la opción SAME_CODESET y STRING_UNITS . Utilice el valor < cid> que ha obtenido del paso 1 y el valor para SAME_CODESET que ha determinado en el paso 2 y el valor para STRING_UNITS que ha determinado en el paso 3.
alter server qplex options(set <cid>@same_codeset 'Y')
alter server qplex options(set <cid>@string_units 'S')
O
alter server qplex options(set <cid>@same_codeset 'N')
alter server qplex options(set <cid>@string_units 'C')
Para obtener más información, consulte Cadenas de caracteres en la documentación de Db2.