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

Administration Oracle Discussion :

Récupérer chaque ligne de type enregistrement dans une table


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut Récupérer chaque ligne de type enregistrement dans une table
    Bonjour !
    Je travaille sue une base oracle 9.2.0.3 sous AIX5.1L et je suis entraine de récuperer le nombre de lignes de chaque table pour cela j'utilise un script comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    declare 
    type enr_table IS 
    RECORD 
    (owner sys.all_objects.owner%TYPE,object_name sys.all_objects.object_name%TYPE, v_count NUMBER); 
    type typ_table is table of enr_table; 
    tab_lignes typ_table; 
    begin 
    select owner,object_name,0 bulk collect into tab_lignes 
    from all_objects where object_type = 'TABLE' and owner in ('AP','GL'); 
    for i in 1..tab_lignes.count 
    loop 
    execute immediate 'insert into table_nbr values ('|| tab_lignes(I).owner ||','||tab_lignes(I).object_name ||','||tab_lignes(I).v_count||')';
    end loop; 
    end;
    Càd je veux insérer dans la table "table_nbr" le propirtaire de lable (owner),le nom_table (object_name),et le nombre de lignes (v_count)
    Mon probleme est que je reçois cette erreur à chaque execution :ORA-00984
    Donc mon objectif est de récupérer chaque valeur de ligne de type enregistrement dans la table avec la commande " insert in to "!
    Ya-t-il une erreur de syntaxe oubien ce n'est pas possible de faire ça !
    Merci pour votre aide !

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    il manque des quotes...

    Essaie plutôt :

    execute immediate 'insert into table_nbr values ('''|| tab_lignes(I).owner ||''','''||tab_lignes(I).object_name ||''','||tab_lignes(I).v_count||')';
    Une recherche google t'aurai aiguillé !

    ORA-00984: column not allowed here
    Cause: A column name was used in an expression where it is not permitted, such as in the VALUES clause of an INSERT statement.
    Action: Check the syntax of the statement and use column names only where appropriate.
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 29
    Points : 12
    Points
    12
    Par défaut
    Merci mon script se termine avec succés !
    ILme manquais ces quotes magiques !
    Vive la communication

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PowerShell] Récupérer chaque ligne d'un pipeline dans une variable
    Par Eveanne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 05/06/2015, 16h16
  2. Récupérer des lignes non enregistrées dans une table
    Par leddy dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/04/2008, 15h09
  3. Récupérer l'index d'un enregistrement dans une table
    Par lolita4882 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/04/2008, 21h33
  4. Réponses: 7
    Dernier message: 08/03/2007, 16h42
  5. Réponses: 2
    Dernier message: 20/05/2006, 17h57

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