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

PL/SQL Oracle Discussion :

Copier une collection (IS TABLE OF) vers une table (persister)


Sujet :

PL/SQL Oracle

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut Copier une collection (IS TABLE OF) vers une table (persister)
    Bonjour,
    Je ne suis pas expert en Oracle mais je suis en train de débuggé un bout de code en sql/plus.
    Dans lequel j’ai une erreur dans les données. J’aimerais copier le contenu d’une collection qui contient le résultat dans une table pour que je puisse isoler les données pour chercher la ligne qui me pose problème.

    definition de la collection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       TYPE lt_rec_local IS TABLE OF TBL_INVENTORY_TRANS_FACT%ROWTYPE
          INDEX BY BINARY_INTEGER;
       lrec_local      lt_rec_ local;
    J’ai tenté de faire un simple insert dans une table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    create table tmp_debug_table as select * from    lrec_local       where 1=2;
    et ajouter cette ligne dans la procédure stockée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO contacts
    SELECT * FROM lrec_fact;
    Mais je reçois un message d’erreur que la table n’existe pas.

    Auriez-vous une idée comment je pourrais copier une collection vers une table facilement ?

    Merci d'avance de votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    1 993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 993
    Points : 2 499
    Points
    2 499
    Par défaut
    Quel est précisément le message d'erreur?
    On ne sait pas si l'erreur porte sur "contacts" ou "lrec_fact"
    DBA Oracle
    Rédacteur du blog : dbaoraclesql.canalblog.com

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 291
    Points : 126
    Points
    126
    Par défaut
    J'ai simplifié...

    De temps en temps, lorsque j'exécute le merge de cette collection avec une table, j'ai cette erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    04030. 00000 -  "out of process memory when trying to allocate %s bytes (%s,%s)"
    *Cause:    Operating system process private memory was exhausted.
    mais ma question, c'est aussi pour améliorer mes connaissances.

    Voilà comment j'ai fait mais ... il y a mieux, j’espère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
       FORALL i IN 1 .. lrec_fact.COUNT
         INSERT INTO tmp_debug_table  
         VALUES lrec_fact(i); 
     
        dbms_output.put_line(' end lli save ');

Discussions similaires

  1. [VB.Net] Comment copier une DataRow d'une table vers une autre ?
    Par YLF dans le forum Accès aux données
    Réponses: 7
    Dernier message: 05/09/2012, 23h23
  2. Réponses: 2
    Dernier message: 20/10/2010, 12h05
  3. copier une table d'une bdd1 vers une bdd2
    Par passion_info dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/10/2006, 18h57
  4. copier une ligne d'une table vers une autre
    Par Adren dans le forum Langage SQL
    Réponses: 5
    Dernier message: 08/08/2006, 11h54
  5. copier une table vers une autre base de données
    Par Herveg dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2005, 14h20

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