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. | Utilisez uniquement les instructions SQL prises en charge par Tablestore. La liste des instructions SQL prises en charge par 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, voir 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. Ces fonctions sont réservées aux champs de type Text dans les index de recherche, lorsqu'elles servent de conditions de filtrage. | Utilisez correctement la fonctionnalité de recherche en texte intégral. Pour plus d'informations, voir 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 en utilisant des index secondaires ou des index de recherche. Pour plus d'informations, voir Stratégie de sélection d'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 en utilisant des index secondaires ou des index de recherche. Pour plus d'informations, voir Stratégie de sélection d'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 attendus par la requête SQL. | Les tables de données Tablestore n'imposent pas de schéma fixe : une même colonne d'attribut peut contenir des valeurs de types différents. En revanche, les requêtes SQL nécessitent un schéma défini, où chaque champ possède un type spécifique. Lorsque vous interrogez des données via SQL, veillez à ce que les types de données des colonnes d'attribut dans la table correspondent bien aux types déclarés dans la requête SQL. Vous pouvez corriger le type de donnée d'une colonne d'attribut spécifique pour une ligne donnée en vous appuyant 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. | L'instruction CREATE TABLE en SQL permet de créer une table de mappage uniquement pour une table ou un index de recherche existant. Vérifiez que la table ou l'index de recherche cible existe bien. Pour plus d'informations, voir 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 existe déjà 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, voir Correspondances 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, voir Que faire si l'erreur « length of field value is longer than 32 for the [WILDCARD_QUERY] query » survient 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, voir 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 autorisée. Par exemple, si offset vaut a et limit vaut b, cette erreur se produit lorsque a + b excède la limite fixée à 150 000. | Vérifiez 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 apparaît lorsque vous ajoutez un champ à une table de données sans mettre à jour la table de mappage associée. La table de mappage doit inclure tous les champs utilisés dans les requêtes 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, voir Mettre à jour les colonnes d'attribut d'une table de mappage. |
OtsRequestTimeout
|
Message d'erreur |
Description |
Solution |
|
Search engine: search timeout, please retry |
L'accès à l'index de recherche pendant l'exécution de la requête a expiré. |
Vérifiez si la fonctionnalité de requête souhaitée nécessite la configuration de règles prédéfinies pour l'index de recherche. Par exemple, pour 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, voir 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 mettant à jour dynamiquement le schéma de l'index. Pour plus d'informations, voir Modifier dynamiquement le schéma d'un index de recherche. |