Tous les produits
Search
Centre de documentation

Tablestore:Comment résoudre les erreurs courantes des requêtes SQL ?

Dernière mise à jour :Aug 18, 2026

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.

  • Utilisez un index de recherche pour accélérer la requête.

    Si votre instruction SQL inclut une fonction d'agrégation (COUNT, SUM, AVG, etc.) ou une clause GROUP BY, ou si la requête s'appuie sur une colonne autre que la clé primaire, nous vous recommandons de configurer un index de recherche pour optimiser les performances.

    Si un index de recherche est déjà configuré mais que l'erreur persiste, vérifiez que cet index contient bien le champ utilisé dans la requête.

  • En l'absence d'index de recherche, assurez-vous que les conditions de la requête incluent les colonnes de clé primaire et respectent le principe de correspondance la plus à gauche. Ajoutez ensuite le paramètre limit à votre instruction SQL pour définir le nombre maximal de lignes à renvoyer.

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.

  • Ajoutez le paramètre limit à l'instruction SQL pour limiter le nombre de lignes renvoyées.

  • Optimisez les conditions de la requête SQL afin de déléguer certaines tâches de calcul à l'index de recherche. Pour en savoir plus sur la délégation de calcul, voir Délégation de calcul.

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.

  • Utilisez un index de recherche pour accélérer la requête.

    Si votre instruction SQL inclut une fonction d'agrégation (COUNT, SUM, AVG, etc.) ou une clause GROUP BY, ou si la requête s'appuie sur une colonne autre que la clé primaire, nous vous recommandons de configurer un index de recherche pour optimiser les performances.

    Si un index de recherche est déjà configuré mais que l'erreur persiste, vérifiez que cet index contient bien le champ utilisé dans la requête.

  • En l'absence d'index de recherche, assurez-vous que les conditions de la requête incluent les colonnes de clé primaire et respectent le principe de correspondance la plus à gauche. Ajoutez ensuite le paramètre limit à votre instruction SQL pour définir le nombre maximal de lignes à renvoyer.

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 DESCRIBE pour consulter le schéma de la table de mappage existante. Si ce schéma ne répond pas à vos besoins métier, vous pouvez mettre à jour les colonnes d'attribut de la table de mappage. Notez toutefois qu'il est impossible de modifier les colonnes d'attribut d'une table de mappage créée automatiquement par le système. Dans ce cas, supprimez la table de mappage puis recréez-la après vous être assuré que ces opérations n'affecteront pas votre activité.

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.