Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
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 11/10/2005, 11h20   #1
Membre du Club
 
Inscription : juin 2003
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 156
Points : 51
Points : 51
Par défaut [Oracle 9.1] Types de retour d'une fonction PL/SQL

Bonjour,

Tout ou presque est dans la question . Une fonction PL/SQL peut-elle retourner un type non élémentaire comme un tableau d'entiers par exemple ?

Mon code

Code :
CREATE FUNCTION getTabCMR RETURN TABLE of integer
Semble poser problème mais possible qu'il y ait une précaution à prendre que je n'ai pas prise...

Merci, Fred
ftrifiro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2005, 11h36   #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
peut-être dans un package avec le type déclaré dans l'entête mais sinon ça m'étonnerait
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2005, 11h42   #3
Membre du Club
 
Inscription : juin 2003
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 156
Points : 51
Points : 51
Alors comment je peux faire pour ne pas répéter ce code entre différents scripts ?

Et en procédure en mettant le tableau d'entier en IN OUT, ça ne semble pas fonctionner non plus

Fred
ftrifiro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2005, 11h47   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Tu peux passer par un type basé :
Code :
1
2
3
SQL> CREATE type test_dvp2 IS TABLE of integer;
  2  /
Type created.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2005, 11h55   #5
Membre du Club
 
Inscription : juin 2003
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 156
Points : 51
Points : 51
Bien vu ! Il ne bronche plus... Merci

En testant par contre, j'obtiens le message

Citation:
Référence à un ensemble non initialisé
Lorsque j'affecte

Ca veut dire quoi ce charabiat ?
ftrifiro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2005, 12h26   #6
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
Une collection de type NESTED table doit être initialisée.

http://sheikyerbouti.developpez.com/pl_sql/?page=Chap5
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2005, 16h44   #7
Membre du Club
 
Inscription : juin 2003
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 156
Points : 51
Points : 51
Et qu'en est-il pour une collection indexée ? Visiblement je n'arrive pas à créer un type avec une ligne comme la suivante

Code :
CREATE TYPE TYP_IND_TAB IS TABLE of number INDEX BY binary_integer;
Parait qu'il y aurait des erreurs de compilation

Fred
ftrifiro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2005, 16h50   #8
Rédacteur

 
Avatar de SheikYerbouti
 
Inscription : mai 2003
Messages : 6 534
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 6 534
Points : 6 471
Points : 6 471
Citation:
Envoyé par ftrifiro
Et qu'en est-il pour une collection indexée ? Visiblement je n'arrive pas à créer un type avec une ligne comme la suivante

Code :
CREATE TYPE TYP_IND_TAB IS TABLE of number INDEX BY binary_integer;
Parait qu'il y aurait des erreurs de compilation

Fred
Vous ne pouvez pas créer de table de type INDEX BY directement en base (il s'agit d'un type purement PL/SQL)

"parait qu'il y aurait des erreurs de compilation..."
plutôt léger pour un dévelopeur, non ?

SHOW ERRORS vous dira mieux que ce qu'il parait...
__________________
Rédacteur Oracle (Oracle ACE)
Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
Je ne réponds pas aux questions techniques par MP
Blogs: Forms-PL/SQL-J2EE - Forms Java Beans
SheikYerbouti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2005, 16h54   #9
Membre du Club
 
Inscription : juin 2003
Messages : 156
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 156
Points : 51
Points : 51
Ok...

Pas spécialement "léger" mais je ne connaissais pas la commande pour faire afficher les erreurs. J'étais coutumier d'environnements différents sur les missions précédentes et science non infuse !

Merci pour la réponse..
ftrifiro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h59.


 
 
 
 
Partenaires

Hébergement Web