Cette rubrique explique comment résoudre les erreurs courantes liées aux requêtes SQL, notamment les types d'erreurs suivants : OTSUnsupportOperation, OTSQuotaExhausted, OTSParameterInvalid et OtsRequestTimeout.
OTSUnsupportOperation
Message d'erreur | Description | Solution |
Operation not supported | Tablestore SQL ne prend en charge qu'un sous-ensemble d'instructions SQL. L'exécution d'une instruction non prise en charge par Tablestore génère une erreur. | Exécutez uniquement les instructions SQL prises en charge par Tablestore. La liste des instructions SQL compatibles avec Tablestore est régulièrement mise à jour. Consultez le site officiel pour obtenir les informations les plus récentes à ce sujet. Pour plus d'informations, consultez la section Prise en charge du langage SQL. |
text_match is only supported for TEXT field in filter conditions in search index | Les fonctions text_match et text_match_phrase sont utilisées de manière incorrecte. Vous ne pouvez employer ces fonctions que sur des champs de type Text dans les index de recherche, en tant que conditions de filtrage. | Utilisez correctement la fonctionnalité de recherche en texte intégral. Pour plus d'informations, consultez la section Opérations sur les index de recherche. |
text_match_phrase is only supported for TEXT field in filter conditions in search index |
OTSQuotaExhausted
Message d'erreur | Description | Solution |
The sql scanned rows of kv exceeds the quota! Search quota is 100000 rows, table quota is 100000 rows | Lorsque vous utilisez le moteur KV comme moteur de requête, le nombre de lignes analysées ou le volume de données balayées dépasse la limite autorisée. | Accélérez vos requêtes de données en utilisant des index secondaires ou des index de recherche. Pour plus d'informations, consultez la section Politique de sélection des index.
Remarque Le nombre maximal de lignes pouvant être analysées est de 100 000, le volume maximal de données balayées est de 128 Mo et le délai d'expiration de l'analyse est de 30 secondes. |
The sql scanned rows of search exceeds the quota! Search quota is 100000 rows, table quota is 100000 rows | Lorsque vous utilisez un index de recherche comme moteur de requête, le nombre de lignes analysées ou le volume de données balayées dépasse la limite autorisée. |
|
The sql duration time exceed the quota! Quota is 30 seconds | L'exécution de l'instruction SQL a expiré. | Accélérez vos requêtes de données en utilisant des index secondaires ou des index de recherche. Pour plus d'informations, consultez la section Politique de sélection des index.
|
OTSParameterInvalid
Message d'erreur | Description | Solution |
Field type mismatch, actual: STRING, expect: INTEGER, col: xxx, primary key: {"PrimaryKeys":[{"ColumnName":"xxx","Value":"xxx","PrimaryKeyOption":0}]} | Les types de données des colonnes d'attribut dans la table de données ne correspondent pas aux types de données attendus par la requête SQL. | Les tables de données dans Tablestore n'imposent pas de schéma fixe : vous pouvez écrire des données de différents types dans une même colonne d'attribut. En revanche, les champs utilisés dans les requêtes SQL nécessitent un schéma défini, chaque champ devant respecter un type spécifique. Lorsque vous interrogez des données via SQL, assurez-vous que les types de données des colonnes d'attribut dans la table de données correspondent à ceux attendus par SQL. Vous pouvez modifier le type de données d'une colonne d'attribut spécifique pour une ligne donnée, en vous basant sur le message d'erreur retourné. |
Table 'instancename.tablename' doesn't exist | La table pour laquelle vous souhaitez créer une table de mappage n'existe pas. | Vous ne pouvez exécuter l'instruction CREATE TABLE en SQL pour créer une table de mappage que si la table ou l'index de recherche cible existe déjà. Vérifiez que la table ou l'index de recherche concerné existe bien. Pour plus d'informations, consultez les sections Créer une table de mappage pour une table et Créer des tables de mappage pour les index de recherche. |
Table 'instancename.tablename' already exist | Une table de mappage a déjà été créée pour cette table. | Exécutez l'instruction |
Field type 'DECIMAL(11,0)' is not supported | Le type de données DECIMAL n'est pas pris en charge par SQL. | Les requêtes SQL ne prennent en charge qu'un ensemble limité de types de données. Pour plus d'informations, consultez la section Mappages des types de données en SQL. |
Search engine: length of field value is longer than 32 for the [WILDCARD_QUERY] query | La condition contenant l'opérateur LIKE dépasse 32 caractères. | Réduisez la longueur de la chaîne de requête ou utilisez une requête de correspondance de phrase. Pour plus d'informations, consultez la section Que faire en cas d'erreur « length of field value is longer than 32 for the [WILDCARD_QUERY] query » lors de l'utilisation d'une requête avec joker ? |
Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column | L'instruction SQL utilisée pour la requête contient une clause GROUP BY mais aucune fonction d'agrégation. | Spécifiez des fonctions d'agrégation dans l'instruction SQL. Pour plus d'informations, consultez la section Interroger des données. |
Offset + limit exceeds the quota! quota is 150000 rows | La somme des valeurs des paramètres offset et limit dépasse la limite supérieure. Par exemple, si la valeur du paramètre offset est a, celle du paramètre limit est b, et que la somme de a et b excède la limite, cette erreur est générée. La limite supérieure est fixée à 150 000. | Assurez-vous que la somme des valeurs des paramètres offset et limit ne dépasse pas 150 000. |
Unknown column 'xxx' in field list | Le nom de champ spécifié dans l'instruction SQL n'est pas présent dans la table de mappage. | Ce message d'erreur s'affiche lorsque vous ajoutez un champ à une table de données sans l'ajouter à la table de mappage associée. La table de mappage doit inclure le champ utilisé dans la requête SQL. Si vous ajoutez un champ à la table de données, vous devez également l'ajouter à la table de mappage correspondante. Pour plus d'informations, consultez la section Mettre à jour les colonnes d'attribut d'une table de mappage. |
OtsRequestTimeout
|
Message d'erreur |
Description |
Solution |
|
Search engine: search timeout, please retry |
L'index de recherche est sollicité pendant l'exécution de la requête, qui expire avant d'aboutir. |
Vérifiez si la fonctionnalité de requête que vous souhaitez utiliser nécessite la configuration de règles prédéfinies pour l'index de recherche. Par exemple, si vous souhaitez utiliser la clause ORDER BY, vous pouvez configurer le prétri lors de la création de l'index de recherche. Pour plus d'informations, consultez Créer un index de recherche. Si la méthode de prétri d'un index de recherche existant ne répond pas à vos besoins, vous pouvez la modifier en ajustant dynamiquement le schéma de l'index. Pour plus d'informations, consultez Modifier dynamiquement le schéma d'un index de recherche. |