PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Recois une erreur dans mon code et n'arrive pas à la résoudre.

| Recois une erreur dans mon code et n'arrive pas à la résoudre.

Par odi_9 le 29/09/2006 - 11:23

Voici mon code:

CREATE OR REPLACE FUNCTION transform_table_address () RETURNS SETOF transform_address_attribut AS /*$BODY$*/'
DECLARE
rec RECORD;
o transform_address_attribut;

BEGIN
FOR rec IN SELECT company_id FROM address GROUP BY company_id

LOOP
o.company_id := rec.company_id;
SELECT INTO o.company_id, o.name1, o.name2, o.street, o.zip, o.zipcity, o.country, o.state company_id, name1, name2, street, zip, zipcity, country, state FROM address ORDER BY company_id LIMIT 1;
SELECT INTO o.street2, o.zip2, o.zipcity2, o.country2, o.state2 street, zip, zipcity, country, state FROM address WHERE company_id = rec.company_id ODER BY company_id LIMIT 1;
SELECT company_id FROM address WHERE company_id = rec.company_id LIMIT 1;
IF (rec.company_id = company_id)
THEN
EXIT;
END IF;
RETURN NEXT o;
END LOOP;
RETURN;
END;
/*$BODY$*/'
LANGUAGE 'plpgsql';

Les cheveux blancs me poussent déjà sur la tete. Besoin d'aide.

PS: Suis nouveau dans le PostgreSQL.

Merci pour toute contribution.

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

C'est quoi l'erreur déjà

sparky/ = 29 Septembre, 2006 - 14:49

C'est quoi l'erreur déjà


Sorry j avais oublie: voici l

odi_9/ = 30 Septembre, 2006 - 12:44

Sorry j avais oublie: voici l erreur:

ERROR: Incorrect argument to RETURN NEXT at or near "O"

Odi_9


o transform_address_attribut%

sparky/ = 2 Octobre, 2006 - 11:19

o transform_address_attribut%rowtype; ???


je comprends pas très bien l

odi_9/ = 3 Octobre, 2006 - 00:42

je comprends pas très bien l'indication faite plus haut.

Le type transform_address_attribut je l'ai défini moi meme comme ceci:

CREATE TYPE transform_address_attribut AS ( company_id VARCHAR, name1
VARCHAR, name2 VARCHAR, street VARCHAR, zip VARCHAR, zipcity
VARCHAR, country VARCHAR, state VARCHAR, street2 VARCHAR, zip2 VARCHAR, zipcity2 VARCHAR, country2 VARCHAR, state2 VARCHAR);

Odi_9


Vu comme ça ok. hmmm... Je n

sparky/ = 4 Octobre, 2006 - 10:50

Vu comme ça ok. hmmm... Je ne comprends pas non plus alors


Serait-ce peut etre lié à m

odi_9/ = 5 Octobre, 2006 - 02:30

Serait-ce peut etre lié à ma version de PostgreSQL? Version 7.3.10.
Ou alors à l'installation du langage plpqsql que j'ai faite avec la commande createlang?

Odi_9


7.3 ??? Oui dans la 7.3 il n'

sparky/ = 9 Octobre, 2006 - 10:27

7.3 ??? Oui dans la 7.3 il n'y a pas la commande "create or replace " mais create tout seul qu'il faut accompagner d'un drop si on modifie de l'existant.


J'ai la solution à mon probl

odi_9/ = 9 Octobre, 2006 - 12:51

J'ai la solution à mon problème.

L'erreur venait de la DECLARATION de de o.

Ca aurait du etre fait de la facon suuivante:

o transform_address_attribut%ROWTYPE; -- L'erreur était à ce niveau

Tout le reste est ok. la commande "create or replace" ne pose pas de problème: Merci pour vos contributions

Odi_9


arrghhh je l'avais dit :-(

sparky/ = 10 Octobre, 2006 - 10:28

arrghhh je l'avais dit :-(


Ah oui c vrai. Je n'avais en

odi_9/ = 10 Octobre, 2006 - 15:29

Ah oui c vrai. Je n'avais en fait pas compris l'indication. Merci pour ton aide!

Odi_9


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.