Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2008, 14h44   #1
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 44
Points : 28
Points : 28
Par défaut Obtenir la taille max d'une colonne PL/SQL

Bonjour,

je souhaiterais obtenir depuis du PL/SQL la taille maximum d'une colonne de type varchar2(tailleMax), de façon à ce que le code PL/SQL s'adapte automatiquement aux modifications de la BDD.

À la façon d'un
Code :
1
2
 
variable Table1.Attr1%type;
Je cherche la fonction du langage (si elle existe) qui me permettrait d'écrire un truc du genre :
Code :
1
2
 
tailleMax := Table1.Attr1%tailleMax;
Merci d'avance.
Syrmonsieur
Syrmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 16h42   #2
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Code :
1
2
3
SELECT data_length INTO tailleMax
  FROM user_tab_cols
  WHERE table_name = 'TABLE1' AND column_name = 'ATTR1';
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 18h38   #3
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 44
Points : 28
Points : 28
Merci pour ta réponse.

Donc ça signifie qu'il n'y a rien d'intégré au langage et que je dois faire appel au dictionnaire de données.

En fait je veux connaître les longueurs des colonnes pour générer des champs texte HTML (avec htp), automatiquement limités en longueur à leur taille dans la BDD.

Est-ce que vous pensez que ça serait trop couteux de faire une requête au dictionnaire de données pour chaque champ ?

Au fait, quand j'appelle '%rowtype' ou '%type' en PL/SQL est-ce que ça appelle aussi, en interne, de façon aussi "bourrine" le dictionnaire de données ?

Merci.
Syrmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 20h08   #4
Membre du Club
 
Inscription : janvier 2008
Messages : 63
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 63
Points : 58
Points : 58
Code :
1
2
3
4
 
Au fait, quand j'appelle '%rowtype' ou '%type' en PL/SQL est-ce que ça appelle aussi, en interne, de façon aussi "bourrine" le dictionnaire de données ?
 
Merci.
Pour info, "toute" requête fait appel au dico de données. Sinon, comment valider les objets utiliser dans la requête ?
sdanvbnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2008, 20h16   #5
Membre confirmé
 
Avatar de DAB.cz
 
Inscription : octobre 2006
Messages : 221
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 221
Points : 214
Points : 214
Citation:
Envoyé par Syrmonsieur Voir le message
Donc ça signifie qu'il n'y a rien d'intégré au langage et que je dois faire appel au dictionnaire de données.
rien à ma connaissance

Citation:
Envoyé par Syrmonsieur Voir le message
En fait je veux connaître les longueurs des colonnes pour générer des champs texte HTML (avec htp), automatiquement limités en longueur à leur taille dans la BDD.
dans ce cas je ferais mon propre "dictionnaire" (la table MYWEBCOLS)

Citation:
Envoyé par Syrmonsieur Voir le message
Est-ce que vous pensez que ça serait trop couteux de faire une requête au dictionnaire de données pour chaque champ ?
Tu peux faire la demande pour la table entière et cacher les valeurs...

Citation:
Envoyé par Syrmonsieur Voir le message
Au fait, quand j'appelle '%rowtype' ou '%type' en PL/SQL est-ce que ça appelle aussi, en interne, de façon aussi "bourrine" le dictionnaire de données ?
Traitement de %xxx n'est effectué que pendant la compilation du code PL/SQL
DAB.cz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2008, 17h41   #6
Nouveau Membre du Club
 
Inscription : novembre 2005
Messages : 44
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 44
Points : 28
Points : 28
C'est dommage que ce ne soit pas intégré au langage, au moins la recherche ne se ferait qu'à la compilation...
Je vais faire mon dico perso pour éviter des recherches trop lourdes.

Un grand merci pour vos réponses.
Syrmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h04.


 
 
 
 
Partenaires

Hébergement Web