Lorsque vous tentez d'exécuter une requête, vous obtenez une erreur avec le code SQL1822N
.
Symptômes
Lorsque vous exécutez une requête, vous recevez un message d'erreur avec le code SQL1822N
et le contenu suivant.
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
Causes
Ce message s'affiche lorsque la requête contient une erreur dans au moins une des sources de données impliquées dans l'exécution de la requête.
Résolution du problème
- Extrayez le message d'erreur complet en interrogeant la vue de catalogue
LISTREMOTEWARNINGS
.- Option 1 Pour extraire tous les avertissements au cours de la dernière heure, utilisez la requête suivante.
SELECT NODE_NAME, TSTAMP, CAST(WARNING AS VARCHAR(250)) FROM DVSYS.LISTREMOTEWARNINGS WHERE TIMESTAMPDIFF(8, CURRENT TIMESTAMP - TSTAMP) <= 1 ORDER BY TSTAMP
- Option 2 Pour extraire tous les avertissements, utilisez la requête suivante.
SELECT * FROM DVSYS.LISTREMOTEWARNINGS;
- Option 1 Pour extraire tous les avertissements au cours de la dernière heure, utilisez la requête suivante.
Identifiez la cause première du problème. Le message d'erreur distant complet est dans la colonne "WARNING". Utilisez cette colonne pour identifier et corriger la cause principale. Si vous avez utilisé l'option 1 pour réviser tous les avertissements obtenus au cours de la dernière heure, l'avertissement peut être tronqué en raison de la spécification CAST. Augmentez la taille de
varchar()
ou supprimez la spécificationcast
pour afficher le message complet.- Exemple 1: Le message indique que vous ne pouvez pas vous connecter à la source de données distante.
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
- Exemple 2: Le message indique que certaines requêtes avec row_number () over () ou rownumber () over () échouent.
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
- Exemple 3: Le message indique que certaines requêtes échouent dans une source de données 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.
- Exemple 4: Le message indique que la requête concerne une table comportant des colonnes de type PERIOD sur une source de données Teradata .
- Exemple 5 : Le message indique qu'une source de données distante a été supprimée de la Data Virtualization, mais que les tables existantes sont conservées lorsque vous tentez de créer une vue ou d'accéder aux tables distantes.
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