Erreur SP2-0027, requêtre trop longue? Comment s'en prémunir [SQLPlus] - SQL/NoSQL - Programmation
Marsh Posté le 16-12-2015 à 17:51:23
Ce message peut apparaître pour plusieurs cas différents, pas seulement celui d'une chaine trop longue.
Par exemple, je crois me souvenir de l'avoir eu, parce que j'avais une apostrophe dans une chaine. Dans ce cas, la solution était de doubler l'apostrophe.
Une autre erreur était d'avoir un ampersand (& ), que j'ai dû remplacer par autre chose.
D'autre part, puisqu'il est question de fichier ".bat", il semble qu'une console DOS soit utilisée. Dans ce cas, il faut aussi prendre en compte la limitation de la longueur d'une commande DOS qui est de 8191 caractères sous Windows XP et plus.
Marsh Posté le 12-12-2015 à 23:56:09
Hello tout le monde,
Je m'initie à SQL plus pour extraire des données d'une base vers un fichier. Je trouve 2 avantages :
- cela prends moins ressources sur mon poste client que Toad
- cela écrit directement le fichier (avec la fonction pool à mettre dans son fichier .sql) alors que sous Toad, c'est en 2 étape, affiche puis après une 2ème action pour enregistrer
Mais il y a beaucoup de contrainte sous SQL Plus. On ne peux pas laisser de ligne vide pour avoir une requêtre plus lisible, plus aéré sinon erreur.
Et dernièrement j'ai l'erreur SP2-0027 par soit disant ma commande SQL
http://www.snehashish.com/sp2-0027 [...] e-ignored/
Il est vrai que ma requete est assez longue d'autant plus que je peux faire une selection de pas mal de valeur avec l'opérateur IN. A partir de 200-300 valeurs, SQL plus commence à générer ce type d'erreur.
Dans l'url que j'ai mise, il conseille d'utiliser || pour couper la requete en plus ligne.
ok, je peux comprendre quand il s'agit de chaine de caractère comme dans leur exemple, mais lorsqu'il s'agit d'une longue requete SQL avec pas mal de nom de champs, je vois pas comment je peux utiliser l'opérateur de concaténation.
La seul solution que je vois, est que je génére automatiquement des fichiers .SQL avec une moindre sélection de valeur dans mon IN et je lance succésivement les fichiers .SQL dans un fichier .bat.