Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/07/2011, 16h59   #1
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Par défaut Sélection sur une colonne de type LONG

Bonjour,

J'ai besoin d'identifier des noms de partitions en fonction de la HIGH_VALUE enregistrée dans la vue USER_TAB_PARTITIONS.

Malheureusement la requête suivante me retourne un message d'erreur :
Code :
1
2
3
4
5
6
7
8
9
10
SELECT  table_name
    ,   partition_name
    ,   high_value
FROM    user_tab_partitions
WHERE   table_name  LIKE 'TA_AGR%'
    AND high_value  LIKE '%2010%'
;
 
ORA-00932: types de données incohérents ; attendu : NUMBER ; obtenu : LONG
00932. 00000 -  "inconsistent datatypes: expected %s got %s"
Comment convertir ce LONG en CHAR ou VARCHAR pour pouvoir travailler dessus ?
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 04h47   #2
Membre actif
 
Yong Huang
Inscription : janvier 2010
Messages : 105
Détails du profil
Informations personnelles :
Nom : Yong Huang

Informations forums :
Inscription : janvier 2010
Messages : 105
Points : 150
Points : 150
http://forums.oracle.com/forums/thre...ageID=1723504&
http://asktom.oracle.com/pls/asktom/...D:839298816582
https://supporthtml.oracle.com/ep/fa...px?id=338159.1
yong321 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2011, 18h24   #3
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Merci pour ces liens.

J'ai pu répondre à mon besoin en utilisant un curseur sur la table consultée.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 09h04   #4
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT EXTRACTVALUE (VALUE (t), '/ROW/TABLE_NAME/text()') TABLE_NAME,
       EXTRACTVALUE (VALUE (t), '/ROW/PARTITION_NAME/text()') PARTITION_NAME,
       EXTRACTVALUE (VALUE (t), '/ROW/HIGH_VALUE/text()') HIGH_VALUE
  FROM TABLE (
          XMLSEQUENCE (
             EXTRACT (
                xmltype (
                   DBMS_XMLGEN.getxml (
                      'select * from user_tab_partitions where table_name=''TA_AGR''')),
                '/ROWSET/ROW'))) t
 WHERE EXTRACTVALUE (VALUE (t), '/ROW/HIGH_VALUE/text()') LIKE '%2010%';
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/07/2011, 13h03   #5
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 445
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 445
Points : 7 532
Points : 7 532
Merci Laurent pour cette requête qui va simplifier une partie des traitements.

... A la condition que les DBA de production l'acceptent
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 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 00h11.


 
 
 
 
Partenaires

Hébergement Web