0 / 0
Volver a la versión inglesa de la documentación
Error SQL1822N al ejecutar una consulta en Data Virtualization
Última actualización: 26 nov 2024
Error SQL1822N al ejecutar una consulta en Data Virtualization

Cuando intenta ejecutar una consulta, obtiene un error con el código SQL1822N.

Síntomas

Cuando ejecuta una consulta, recibe un mensaje de error con el código SQL1822N y el contenido siguiente.

SQL1822N Unexpected error code "GDB_ERROR" received from data source
"DV-FMP". Associated text and tokens are "Query failed at some sources. 
Check remote warnings". SQLSTATE=560BD

Causas

Obtiene este mensaje cuando la consulta contiene un error en al menos uno de los orígenes de datos implicados en la ejecución de la consulta.

Resolución del problema

Para intentar resolver el problema, siga estos pasos.
  1. Recupere el mensaje de error completo consultando la vista de catálogo de LISTREMOTEWARNINGS.
    • Opción 1 Para recuperar todos los avisos en la última hora, utilice la consulta siguiente.
      SELECT NODE_NAME, 
             TSTAMP, 
             CAST(WARNING AS VARCHAR(250)) 
          FROM DVSYS.LISTREMOTEWARNINGS 
          WHERE TIMESTAMPDIFF(8, CURRENT TIMESTAMP - TSTAMP) <= 1 ORDER BY TSTAMP
    • Opción 2 Para recuperar todos los avisos, utilice la consulta siguiente.
      SELECT * FROM DVSYS.LISTREMOTEWARNINGS;
  2. Identifique la causa raíz del problema. El mensaje de error remoto completo está en la columna "WARNING". Utilice esta columna para identificar y corregir la causa raíz. Si ha utilizado la opción 1 para revisar todos los avisos de la última hora, es posible que el aviso se trunque debido a la especificación CAST. Aumente el tamaño de varchar() o elimine cast para ver el mensaje completo.

    Ejemplo 1: El mensaje indica que no puede conectarse al origen de datos remoto.
    qpendpoint_1:6415   2021-04-27-08.43.59.428000000 
    RESULT_DS_EXEC_QUERY_ERROR: Query exec failure against Data Source 
    GDB_GTW_TPCDS_CATALOG_RETURNS_DB210001: java.lang.Exception: 
    Unreachable RDBMS in Data Source: 
    GDB_GTW_TPCDS_CATALOG_RETURNS_DB210001

    Puede realizar las acciones siguientes.

    • Compruebe si las definiciones de usuario y contraseña están actualizadas en la conexión Data Virtualization.
    • Compruebe que el origen de datos remoto se esté ejecutando.
    • Compruebe que existe conectividad de red entre la instancia de Data Virtualization y el origen de datos remoto.
    Ejemplo 2: El mensaje indica que algunas consultas con row_number () over () o rownumber () over () fallan.
    fmp_1 2022-06-17-02.49.56.313000000 2022-06-17-02.49.56.313000000 1 
    RESULT_DS_EXEC_QUERY_ERROR: Origin: 3 node(s), 0/1 sources (0 successful, 0 excluded, 1 failed, 0 missing) 
    Warnings (1) >"GDB_NODE yanlixu_yanlixuiptt8x86_Endpoint1:60009 QUERYING SOURCE Netezza VIA GDB_SUBQ_NETEZ10000: 
    Unable to get physical meta data for table: (SELECT ROW_NUMBER() OVER( ) C0 FROM ""TEST"".""TESTNUMBER"" A0) 
    SUBQ : org.netezza.error.NzSQLException: ERROR: ROW_NUMBER must include ORDER BY specification
    
    "-1822: Remote Exception: Origin: 3 node(s), 0/1 sources (0 successful, 0 excluded, 1 failed, 0 missing) 
    Warnings (1) >"GDB_NODE yanlixu_yanlixuiptt8x86_Endpoint1:60009 QUERYING SOURCE Netezza VIA GDB_SUBQ_NETEZ10000: 
    Unable to get physical meta data for table: (SELECT ROW_NUMBER() OVER( ) C0 FROM ""TEST"".""TESTNUMBER"" A0) SUBQ : 
    org.netezza.error.NzSQLException: ERROR: ROW_NUMBER must include ORDER BY specification
    
    yanlixu_yanlixuiptt8x86_Endpoint1:60009 2022-06-17-02.49.56.298000000 2022-06-17-02.49.56.298000000 1 
    RESULT_DS_EXEC_QUERY_ERROR: Query exec failure against Data Source GDB_SUBQ_NETEZ10000: java.lang.Exception: 
    Unable to get physical meta data for table: (SELECT ROW_NUMBER() OVER( ) C0 FROM "TEST"."TESTNUMBER" A0) SUBQ : 
    org.netezza.error.NzSQLException: ERROR: ROW_NUMBER must include ORDER BY specification

    Puede realizar la siguiente acción.

    • Añada una cláusula order by para esta función tal como se muestra en este ejemplo.
      select row_number() over(order by $columnname) from <table_name>
    Ejemplo 3: El mensaje indica que algunas consultas fallan en un origen de datos Data Virtualization Manager .
    qpendpoint_3:6417    2022-08-31-08.31.55.624000000 2022-08-31-08.31.55.624000000                    1 
    ENGINE_STATEMENT_PREPARE_ERROR_SQL: GDB_SUBQ_DVM10000 
    Unable to PREPARE statement - (empty result for this data source): 
    Unable to get physical meta data for table: (SELECT A0.C1 C0, A0.C8 C1 FROM DVSQL.CB1A_TSDCV_TESTNUMBER A0) SUBQ : 
    java.sql.SQLException: [DV][JDBC Driver][3.1.202201120442] [DV][JDBC Driver][3.1.202201120442] 
    Unexpected end of input stream java.net.SocketInputStream@30edda80 
    (read 0 out of an expected 4 bytes), while executing userSql=select * from (SELECT A0.C1 C0, A0.C8 C1 FROM DVSQL.CB1A_TSDCV_TESTNUMBER A0) SUBQ where 0=1 - 'call listrdbc()' to identify the data source.
    Para resolver problemas con el rendimiento de las consultas, consulte Ajuste del rendimiento y optimización de consultas.

    Este problema también puede deberse a la configuración del parámetro PASSTHROUGH en el servidor Data Virtualization Manager . Para solicitar cambios en este parámetro, abra un caso para solicitar soporte.

    Ejemplo 4: El mensaje indica que la consulta se realiza en una tabla que tiene columnas con el tipo PERIOD en un origen de datos Teradata .

    Cambie la consulta utilizando las directrices del optimizador para Teradata.

    Por ejemplo, se consulta una tabla con la especificación siguiente bluadmin.testtera (C1 int, C2 interval year, C3 interval day to hour, C4 interval minute, C5 PERIOD(DATE), C6 PERIOD(TIME)) .
    select c5 from bluadmin.testtera
    Esta consulta se puede cambiar tal como se muestra en el ejemplo siguiente.
    select c5 from bluadmin.testtera 
    /* <OPTGUIDELINES> <SERVER NAME='QPLEX'> <OPTION NAME='collating_sequence_dv' VALUE='TERAD10001:N'/> </SERVER> </OPTGUIDELINES> */

    Donde TERAD10001 es el CID para la tabla testtera.

    Ejemplo 5: El mensaje indica que se ha eliminado una fuente de datos remota de Data Virtualization, pero las tablas existentes se mantienen cuando se intenta crear una vista o acceder a las tablas remotas.
    Failed to get join result.:
    Unexpected error code "GDB_ERROR" received from data source "DV-FMP". Associated text and tokens are "Query failed at some sources. Check remote warnings".. SQLCODE=-1822, SQLSTATE=560BD, DRIVER=4.32.28
Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información