Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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/03/2007, 12h44   #1
Invité régulier
 
Inscription : mars 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 10
Points : 5
Points : 5
Par défaut missing from_clause entry for table "curr"

Bonjour,
je veux insérer dans une nouvelle table des champs selectionnés de la table que je donne comme argument à la fonction
l'erreur généré est la suivante :missing from_clause entry for table "curr"
le code est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
CREATE OR REPLACE FUNCTION "DM".tkharik("tableName" text)
  RETURNS void AS
$BODY$DECLARE
cur refcursor;
curr record;
name text;  
BEGIN
name:='"'||$1||'"';
open cur FOR execute ('select a1, a2 , a3, a4 ,a5 from'||name);
fetch cur INTO curr; 
IF  NOT found then
exit;
--nom_fct insère dans une table et j'ai vérifier le bon fonctionnement
else SELECT "DM"."nom_fct"(curr.a1,curr.a2,curr.a3,curr.a4,curr.a5); 
end IF;  
close cur;    
end;   
 
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
merci d'avance de votre aide
Dev_ps est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 22h28   #2
Invité régulier
 
Inscription : mars 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 10
Points : 5
Points : 5
Citation:
Envoyé par Dev_ps
Bonjour,
je veux insérer dans une nouvelle table des champs selectionnés de la table que je donne comme argument à la fonction
l'erreur généré est la suivante :missing from_clause entry for table "curr"
le code est :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
CREATE OR REPLACE FUNCTION "DM".tkharik("tableName" text)
  RETURNS void AS
$BODY$DECLARE
cur refcursor;
curr record;
name text;  
BEGIN
name:='"'||$1||'"';
open cur FOR execute ('select a1, a2 , a3, a4 ,a5 from'||name);
fetch cur INTO curr; 
IF  NOT found then
exit;
--nom_fct insère dans une table et j'ai vérifier le bon fonctionnement
else SELECT "DM"."nom_fct"(curr.a1,curr.a2,curr.a3,curr.a4,curr.a5); 
end IF;  
close cur;    
end;   
 
$BODY$
  LANGUAGE 'plpgsql' VOLATILE;
merci d'avance de votre aide
Dev_ps est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2007, 22h38   #3
Invité régulier
 
Inscription : mars 2007
Messages : 10
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 10
Points : 5
Points : 5
bon il apparait que l'erreur est dans la nécessité d'utiliser PERFORM lors de l'appel d'une procedure lorsque on est à l'intérieur d'une autre procedure ou fonction.
parce que PostgreSQL voit une procedure comme étant fonction qui retourne quelque chose de type "nothing", de ce fait il faut spécifier que nous voulons éliminer le résultat de la procedure d'ou PERFORM.

merci à moi d'avoir répondu à moi
Dev_ps 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 15h23.


 
 
 
 
Partenaires

Hébergement Web