web-dev-qa-db-fra.com

Comment remplacer> une erreur de 2499 caractères dans Oracle DB?

J'ai une requête Oracle que j'exécute via le script Shell et en ce que ma requête dépasse la longueur maximale de 2499.

Je reçois une erreur

SP2-0027: ENTRÉE IS TROP LONG (> 2499 CARACTÈRES) - LIGNE IGNORÉE

5
user9185088

Voici quelques options pour contourner les limitations de longueur de ligne SQL * Plus:

  1. Mise à niveau vers le client 12.2 (?). Sur 12.2, le client autorise jusqu'à 4999 caractères. Ce qui est exaspérant en quelque sorte - si Oracle admet finalement que 2499 ne suffit pas, pourquoi ont-ils seulement augmenté la limite à 4999?
  2. Ajouter des sauts de ligne. Divisez les résultats en plusieurs lignes. Si vous utilisez Windows, assurez-vous d'utiliser à la fois le retour chariot et la nouvelle ligne - chr(13)||chr(10).
  3. tilisez un autre programme. De nombreux programmes ont une option similaire à SQL * Plus. En général, je recommande de ne pas utiliser un clone SQL * Plus. Le principal avantage de SQL * Plus est qu'il s'agit d'un outil simple qui fonctionne à peu près de la même manière partout. Aucun des clones SQL * Plus n'est entièrement compatible et de nombreux programmes s'arrêteront si vous exécutez des scripts SQL * Plus sur un clone.
9
Jon Heller

Le vrai problème est que le texte SQL en lui-même est trop long, une seule ligne dépasse 2500 caractères, pas les données à l'intérieur de la base de données. Pour contourner l'erreur, vous devez suivre les étapes de @Jon Heller

1
Decula

Essayez d'ajouter un saut de ligne quelque part dans ce longue ligne; c'est une limitation de SQL * Plus et, pour autant que je sache, vous ne pouvez pas l'éviter par certains paramètres (comme SET LINESIZE 100 et similaires).

0
Littlefoot