Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
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 23/12/2004, 11h14   #1
Invité régulier
 
Inscription : décembre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 7
Points : 6
Points : 6
Par défaut [Forms6i] Pb avec BULK COLLECT

Bonjour,
Voila mon probleme,j'ai une procedure qui fonctionne sous SQL/PLUS mais pas dans Forms6i:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Procedure maProc IS
  TYPE tofCol IS TABLE OF VARCHAR2(3);
  aCol tofCol;
 
  Cursor Col_cur IS
     SELECT COL_CODE
         FROM ART_COL
       WHERE SOC_CODE = 'DAU'
          AND SAI_CODE = '04H';
BEGIN
  Open Col_cur;
  Fetch Col_cur BULK COLLECT INTO aCol;
  Close Col_cur;
 
  -- Traitement de ma collection
END maProc;
Cette fonction plante à la compile sur BULK

Je me demande donc si on peux utilisé BULK COLLECT dans forms6i ou s'il faut charger sa collection avec une boucle

merci de votre aide.
Kast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2004, 11h19   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96624/05_colls.htm#28396

Citation:
You can use the BULK COLLECT clause only in server-side programs (not in client-side programs). Otherwise, you get the error this feature is not supported in client-side programs.
Conclusion, il faut passer par une procédure stockée pour utiliser le BULK COLLECT
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2004, 11h21   #3
Invité régulier
 
Inscription : décembre 2004
Messages : 7
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 7
Points : 6
Points : 6
Merci ORAFRANCE !!!
donc je pense que je vais passer par une boucle sur mon curseur pour charger ma collection.
Kast est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2004, 16h55   #4
En attente de confirmation mail
 
Inscription : décembre 2004
Messages : 20
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 20
Points : 15
Points : 15
Voila ce que tu dois faire:
Procedure maProc is
TYPE tofCol IS TABLE OF VARCHAR2(3);
Code :
1
2
3
 
  -- Initialise la collection de cette façon:
  aCol tofCol := tofCol(NULL);
Cursor Col_cur is
Select COL_CODE
From ART_COL
Where SOC_CODE = 'DAU'
And SAI_CODE = '04H';
BEGIN
Open Col_cur;
Fetch Col_cur BULK COLLECT INTO aCol;
Close Col_cur;

-- Traitement de ma collection
END maProc;


Je l'ai testé sur la table emp et ça a marché
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
  1  CREATE OR REPLACE Procedure maProc IS
  2    TYPE tofCol IS TABLE OF VARCHAR2(3);
  3    aCol tofCol := tofCol(NULL);
  4    Cursor Col_cur IS
  5       SELECT ename
  6           FROM emp
  7         WHERE job LIKE  '%MAN';
  8  BEGIN
  9    Open Col_cur;
 10    Fetch Col_cur BULK COLLECT INTO aCol;
 11    Close Col_cur;
 12    -- Traitement de ma collection
 13* END maProc;
SQL> /
 
Procedure created.
dev_ora_moimeme 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 18h13.


 
 
 
 
Partenaires

Hébergement Web