Précédent   Forum du club des développeurs et IT Pro > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/11/2012, 16h30   #1
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 568
Points : 25 568
Envoyer un message via MSN à CinePhil
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é ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2012, 17h03   #2
skuatamad
Expert Confirmé
 
Inscription : août 2008
Messages : 1 690
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 690
Points : 2 813
Points : 2 813
4000 ça ressemble plus à la limite du varchar2.
Logical Database Limits
Citation:
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é ?
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 22/11/2012, 17h08   #3
mnitu
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 4 104
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 4 104
Points : 7 997
Points : 7 997
Il semble que c'est un poil plus compliqué (Logical Database Limits)
Citation:
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)
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 10h19   #4
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 568
Points : 25 568
Envoyer un message via MSN à CinePhil
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 17h03   #5
pachot
Expert Confirmé
 
Avatar de pachot
 
Homme Franck Pachot
Consultant DBA en Suisse (Trivadis SA)
Inscription : novembre 2007
Messages : 987
Détails du profil
Informations personnelles :
Nom : Homme Franck Pachot
Âge : 42
Localisation : Suisse

Informations professionnelles :
Activité : Consultant DBA en Suisse (Trivadis SA)
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2007
Messages : 987
Points : 2 755
Points : 2 755
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.
__________________
A lire sur mon blog Oracle - Articles d'Experts des articles traduits en français de Jonathan Lewis, Tom Kyte, Doug Burns, Cary Millsap, Greg Rahn ...
pachot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 17h34   #6
skuatamad
Expert Confirmé
 
Inscription : août 2008
Messages : 1 690
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 690
Points : 2 813
Points : 2 813
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...
skuatamad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 18h56   #7
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
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).
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2012, 21h01   #8
CinePhil
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 13 659
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 49
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 : 13 659
Points : 25 568
Points : 25 568
Envoyer un message via MSN à CinePhil
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.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h07.


 
 
 
 
Partenaires

Hébergement Web