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 PL/pgSQL » Traduire en C » 15/10/2010 13:20:14

Hatem
Réponses : 2

Bonjour,
je souhaiterai si quelqu'un m 'éclaircit la bonne piste pour crypter le code d'une fonction écrite en PLpgSQL
comme le cas sous oracle. (wrap)

j'ai pensé que le seul moyen c'est de la créer dans une classe en C, mais j'ignore comment le faire ?
je
je vous remercie de votre aide

voici un exemple simple en plpgsql pour le tutoriel.

--------------

CREATE OR REPLACE function searchanimal (nom character varying(16)) returns
setof refcursor as
$BODY$

declare

ref refcursor ;

row1 animals%ROWTYPE;
begin

OPEN ref FOR SELECT * FROM animals WHERE name = nom ;
    LOOP
   FETCH ref into row1;

    if not found then
     EXIT;
      end if;

return next row1 ;
END LOOP ;

  close ref;

END;

$BODY$
  LANGUAGE 'plpgsql' VOLATILE

#2 Re : PL/pgSQL » recherche multi champs » 27/09/2010 13:31:54

Bonjour Mr Marc,

sincèrement,  je vous remercie de m'avoir aidé.
Bon travail
je vais reformuler ma fonction
Cordialement
Hatem

#3 PL/pgSQL » recherche multi champs » 27/09/2010 11:55:40

Hatem
Réponses : 7

Bonjour,

je postule ma question et je souhaiterai si quelqu'un peut m'aider,
mon objectif est de lancer une recherche par mot clé sur toutes les tables ainsi leurs champs issus de la base, si un ou pls résultats trouvés il affiche ses enregistrements.


ma fonction recherche n'affiche aucun bug mais par conséquent le résultat est toujours nul.
j'ai pas compris où est le problème

j'exécute ma fonction par la requete exemple je cherche dans toutes tables et dans tous les champs issus un 'service' malgré que dans la base type j'ai déjà instauré ces mots clé correctement !
je serai à votre écoute pour éclaircir la bonne méthode.


select * from rech2('service') as tableau(tab1 int , tab2 varchar) ;
-----------------------------------


voici mon code en PL/PgSQL
-----------------------------------

CREATE OR REPLACE FUNCTION rech2(mot character varying)
  RETURNS SETOF record AS
$BODY$
DECLARE
querysrch record;
req record;
i int ;


BEGIN

FOR querysrch IN SELECT table_name, column_name FROM information_schema.columns
    WHERE table_schema = 'public'  and data_type ilike '%character%'
    LOOP

FOR req IN EXECUTE 'SELECT '|| querysrch.column_name  ||' FROM '|| querysrch.table_name||' WHERE '|| querysrch.column_name ||' = '||'''|| mot || '''||' ;' 
LOOP
;
RETURN NEXT Req;
END LOOP;
END LOOP;
RETURN;   
end;

$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100
  ROWS 1000;
ALTER FUNCTION rech2(character varying) OWNER TO postgres;


---------------------------------

Cordialement
Hatem

Pied de page des forums

Propulsé par FluxBB