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 :

Select personnalisé [Fait]


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut Select personnalisé
    Bonjour,

    Je suis débutant en oracle. Je suis habitué à utiliser SQL Server. Voila, j'aimerai excuté un traitement sur une table bien définie et je dois récuprer les resultats de traitement sous forme tabulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
      CURSOR item_Cursor is
                 select * from item;
                 ITEMROW ITEM%ROWTYPE;                        
     
    		BEGIN		    
     
     
     
            -- dbms_output.put_line('DEBUT');
                open item_Cursor;	
     
                LOOP
                    FETCH item_Cursor INTO ITEMROW         
                      --- J'aimerai retourner ici une valeur comme le select de SQL Server
     
                    EXIT WHEN item_Cursor%NOTFOUND;
     
     
                END LOOP;            
                close item_Cursor;
    Comment je peux la réaliser ?

  2. #2
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Salut,

    Ta question n'est pas très claire pour moi, mais pour recuperer une valeur de ton ITEM, tu fais ITEMROW.NOM_CHAMP comme sous SQLSERVER j'imagine.

  3. #3
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    J'aimerai faire un traitement sur plusieurs tables. le resultat de traitement doit être retourner sous forme tabulaire pour mon programme avec une structure bien définie (Par exemple de champs calculés,etc ..).

  4. #4
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    ok.
    Mais quelles sont les tables? prend un exemple fictif pour qu'on te comprenne mieux. Et même mettre l'equivalent en SQLSERVER, ça peut peu être aider.

  5. #5
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Je crois que la solution ce de créer une table temporaire pour stocker les resultats puis je fais une select sur cette table. Mais comment je peux créer une table temporaire en oracle.

    Code en Transact-SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    DECLARE locCursor CURSOR  FOR SELECT LOC FROM LOC;
    	DECLARE @LOC varchar(500);
    	open locCursor;
    	fetch NEXT FROM locCursor into @LOC
    	create table #temp(field1 varchar(50)); 
     
    	WHILE @@FETCH_STATUS = 0
    	BEGIN
    	insert into #temp values(@LOC);
     
    	fetch NEXT FROM locCursor into @LOC
    	end
     
     
     
     
    	close locCursor;
    	DEALLOCATE locCursor;
    	select * from #temp;
    	drop table #temp;

  6. #6
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Voici comment créer une table temporaire sous oracle, la description des colonnes garde la même syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE GLOBAL TEMPORARY TABLE nom_table
    (
    description des champs
    ) ON COMMIT DELETE ROWS;
    La definition de la table reste dans le schema, mais les données à l'interieur sont supprimées après un "COMMIT". Il faudra donc faire un "DROP TABLE" quand t'aura fini si tu n'en a plus besoin.

    P.S: ICI T'ES SUR LE FORUM PL/SQL

  7. #7
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Mais je crois que je peux faire ça à l'interieur de la procédure !!!

  8. #8
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    J'esaye avec les collection !!

  9. #9
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Tu peux utiliser les collections, mais le "SELECT" ou le "INSERT" ne marchera pas.
    Pour ajouter (sorte de insert) dans ta collection tu utilises TA_COLLECTION.EXTEND() pour consulter TA_COLLECTION (index)
    Il y'a un tuto sur les collections ici

    Je crois que tu es entrain d'aller dans tous les sens maintenant,si ton problème avait été posé plus clairement on (pas necessairement moi ) t'aurai certainement proposé la meilleur solution.

  10. #10
    Membre confirmé Avatar de layouni
    Inscrit en
    Mai 2004
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 119
    Par défaut
    Voial, J'essaye de présenter une autre fois le problème.

    1) Je dois effectuer un traitement sur une table.
    2) Chaque row de cette table est traité à part.
    3) le resultat de traitement de chaque row doit être stocké quelque part (Par exemple : Numero Client, Taritement correcte,etc...) .
    4) je dois récuprer le resultat de traitement de tous les rows côté application et l'afficher à l'utilisateur.

    Merci

  11. #11
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Là c'est plus clair.
    Je suppose que tu n'utilises pas OracleForm côté application mais plutôt java, vb.net ou autre.

    1°) La façon de procéder depend donc du langage que tu va utiliser côté application, s'il permet de recuperer les collections Oracle se serait cool.

    2°) Sinon tu peux créer une table (pas temporaire) ou tu mets tes resultats:
    - tu appelles depuis ton application la fonction qui va générer les resultats dans ta table
    - depuis ton application tu fais un select sur cette table résultat.

    3°) Si tu es à l'aise avec les fichiers (txt, xml, etc) en PL/SQL (à mon avis la table est beaucoup mieux), tu ecris dans le fichier et tu lis le fichier avec ton application

Discussions similaires

  1. Création d'un select personnalisé
    Par loeca dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/02/2014, 18h50
  2. Selection de ligne impossible avec un editeur personnalisé
    Par Ximenjun dans le forum Composants
    Réponses: 5
    Dernier message: 05/05/2010, 09h27
  3. tcombobox selection personnalisé
    Par ouiouioui dans le forum Débuter
    Réponses: 5
    Dernier message: 06/12/2009, 11h38
  4. Combiner les résultats dans un select personnalisé
    Par speedev dans le forum Requêtes
    Réponses: 3
    Dernier message: 30/05/2009, 00h14

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