PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 07/06/2011 16:49:22

mortimer.pw
Membre

RECORD Oracle sous PostgreSQL

Bonjour,

Je travaille en version 8 et 9 sous Red-hat et Cent-OS.

J'ai des Fonctions Oracle à réécrire avec ce genre de déclarations :

TYPE tablevar IS RECORD (
    vbl varchar2(2000),
    err_code number,
    obligatoire number(1),
    existence number(1),
    type varchar2(50)
    );
TYPE tablectrl IS TABLE OF tablevar INDEX BY VARCHAR2(50) ;

Est-il possible de faire cela sous PostgreSQL ?

D'avance merci pour les réponses.

Hors ligne

#2 07/06/2011 17:15:13

Marc Cousin
Membre

Re : RECORD Oracle sous PostgreSQL

Dans le PL de PostgreSQL (PLPgSQL), pour le moment, vous n'avez pas de tableau associatif. Vous pouvez utiliser d'autres langages de procédures stockées qui les ont, sous PostgreSQL (Python, Perl, Ruby…). Vous pouvez même appeler les procédures de ces langages en plpgsql.

Vous pouvez peut-être aussi vous en sortir en manipulant des hstores : http://doc.postgresql.fr/9.0/hstore.html . Mais cela risque d'être aussi très inélégant hmm

(ps, modif par gleu pour le lien)


Marc.

Hors ligne

#3 07/06/2011 21:34:12

bebert73
Membre

Re : RECORD Oracle sous PostgreSQL

pensez à enlever le point de votre lien (après hstore.html.)...quand on clique sur le lien ça fait 404 not found, il faut enlever le point pour tomber sur la bonne page

Hors ligne

#4 08/06/2011 08:51:32

Marc Cousin
Membre

Re : RECORD Oracle sous PostgreSQL

Grmbl smile
On peut même pas dormir tranquille sans se faire éditer ses posts smile


Marc.

Hors ligne

#5 08/06/2011 09:52:15

mortimer.pw
Membre

Re : RECORD Oracle sous PostgreSQL

Bonjour à tous,

Merci Marc pour la réponse négative.

Je vais chercher des exemples Perl, ou peut être Java ? pour la déclaration des tableaux associatifs, et l'appel sous plpgsql.

Si vous avez un lien, je suis preneur.

Hors ligne

#6 08/06/2011 09:58:59

Marc Cousin
Membre

Re : RECORD Oracle sous PostgreSQL

Pour des exemples en Perl, il y a surtout la doc. http://docs.postgresql.fr/9.0/plperl.html. Une fonction en perl s'appelle comme une autre fonction, il n'y a aucune différence syntaxique de l'extérieur.

PLJava n'est pas en standard dans le moteur. C'est plus compliqué à installer.

Après, si ce que vous souhaitez vraiment, c'est d'associer une structure à une valeur, vous avez toujours la solution de créer une table (temporaire au besoin) pour ça…


Marc.

Hors ligne

Pied de page des forums