IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Taille limite du texte d'une requête SQL Oracle


Sujet :

SQL Oracle

  1. #1
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut Taille limite du texte d'une requête SQL Oracle
    Bonjour,
    J'essaie de rassembler plusieurs requêtes existantes en une seule et je me retrouve confronté à un message d'erreur de l'application indiquant que je ne dois pas dépasser 4000 caractères dans le texte de la requête SQL.

    C'est une limite imposée par l'application ou par Oracle ?

    En cherchant un peu, j'ai trouvé ce message qui indique une taille limite de 64 ko. C'est confirmé ?

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    4000 ça ressemble plus à la limite du varchar2.
    Logical Database Limits
    Note:
    The limit on how long a SQL statement can be depends on many factors, including database configuration, disk space, and memory
    maximum length of sql statement

    Quel est l'outil utilisé ?

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Il semble que c'est un poil plus compliqué (Logical Database Limits)
    Note:

    The limit on how long a SQL statement can be depends on many factors, including database configuration, disk space, and memory
    Mais rassurer vous je pense que vous est en train de tapper dans la limite du varchar2 (Datatype Limits)

  4. #4
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Pas impossible effectivement que la requête soit stockée en BDD et donc dans une colonne potentiellement en varchar2.

    Merci pour la réponse.

    Je vais essayer de simplifier la requête, maintenant que je comprends mieux son architecture à force de la triturer et de rassembler les morceaux qui viennent de plusieurs états de gestion.

    J'ai 123 caractères de trop ; au pire, je créerai une vue pour simplifier la requête.

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Points : 6 446
    Points
    6 446
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Le mieux serait quand même de stocker dans un clob. Peut-être qu'un jour la base passera en UTF-8, et certaines requêtes dépasseront le VARCHAR(4000)...

    Sinon, les tables sont plutôt faites pour stocker des données. Des requêtes, c'est du code. Ça peut se stocker dans des vues, dans des procédures stockées,...

    Cordialement,
    Franck.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 950
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par pachot Voir le message
    Sinon, les tables sont plutôt faites pour stocker des données
    Sur ce point je pense sans trop m'avancer que cinephil n'est qu'un domage colatéral de plus dans ce monde merveilleux et pourtant si souvent horriblement mal modélisé qu'est l'IT...

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Si la requetes est stockée dans un Varchar (paix à son âme), tu as eventuellement la possibilité de changer le type de la colonne en LONG, c'est moche, oracle te dira que c'est pas bien, mais au moins, c'est coompatible au niveau applicatif avec du varchar2 (ce qui n'est pas le cas de CLOB qui nécessite des appels spécifique du coté de l'application).

  8. #8
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Pour vous éviter de chercher des raisons obscures et critiques sur le mystère du stockage de la requête en BDD, il s'agit d'un module de l'ERP qui permet à l'utilisateur de sélectionner des états de gestion pré-définis en sortie .xls ou PDF via Jasper Reports.
    En tant qu'administrateur, on peut ajouter ou modifier directement les états existants via l'interface du logiciel. Il y a une fenêtre avec une zone de texte pour éditer la requête et uploader le masque de tableur de l'état, quand c'est une sortie en .xls.
    Voilà pourquoi la requête est stockée en BDD quelque part et non pas transformée en une vue. L'application ne change pas la BDD, elle l'alimente.

    Il y aurait des choses à dire sur le modèle de données de cet ERP plus importantes à mon avis que ce choix de stocker des requêtes paramétrées d'états dans une colonne de table, lequel n'est pas de mon fait. J'essaie de travailler avec l'existant tout simplement.

    J'ai encore une quarantaine de caractères en trop. Vu que j'en ai d'autres à faire, je pense que je ferai lundi directement quelques vues qui seront appelées par la requête afin de réduire la taille de celle-ci.

    Merci de vos réponses en tout cas.

Discussions similaires

  1. comment insérer une valeur provenant d'un champs texte dans une requête SQL
    Par carlostropico dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 02/12/2009, 15h38
  2. [SQL-Server] Taille limite des résultats d'une requête
    Par AllezTFC dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/05/2008, 22h03
  3. Réponses: 6
    Dernier message: 23/04/2007, 16h21
  4. limitation de caractére dans une requête SQL sous Acces
    Par amka dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 18/08/2006, 16h15
  5. Réponses: 4
    Dernier message: 14/12/2004, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo