Exécution de SQL Dynamique dans pl/pgsql
Jean-Paul Argudo/ = 21 Mars, 2005 - 13:07
Bonjour,
Pour faire ce genre de manipulations, il existe deux méthodes, comme c'est spécifié dans la documentation :
35.6.5. Executing Dynamic Commands
Je préfère la deuxième méthode pour ma part, voilà ce que ça donne :
create table plouf (a integer);
insert into plouf values (1);
insert into plouf values (2);
insert into plouf values (3);
insert into plouf values (4);
CREATE FUNCTION get_row_count(varchar) RETURNS integer AS $$
DECLARE
curs1 refcursor;
resultat integer;
BEGIN
OPEN curs1 FOR execute 'SELECT Count(*) FROM ' || quote_ident($1);
FETCH curs1 INTO resultat;
close curs1;
RETURN resultat;
END;
$$ LANGUAGE plpgsql;
select * from get_row_count('plouf');
get_row_count
---------------
4
(1 ligne)
Pour les explications, tout est dans la doc...
--
Jean-Paul ARGUDO
www.PostgreSQLFr.org
[ Vous devez
vous connecter pour poster des commentaires ]
Utilisation de DBLink
torterat/ = 18 Mai, 2005 - 14:35
Je tente en vain d'utiliser la fonction DBLink pour lire des donnees sur une base de donnee distante.
J'ai une base "test" avec un schema "supervision" qui contient une table "sup_test".
A partir d'un autre sgbd Postgres vu sur le reseau je lance la requete suivante:
select dblink('hostaddr=194.2.47.124 port=5432 dbname=test
user=postgres password=rootroot','select * from supervision.sup_test');
194.2.47.124 = @IP de la machine distante
Je recupere l'erreur suivante:
ERROR: could not establish connection
DETAIL: could not connect to server: Connection timed out (0x0000274C/10060)
Is the server running on host "194.2.47.124" and accepting
TCP/IP connections on port 5432?
Je suis sec : me manque t-il une option dans l'installation (j'ai coche le module de contribution de part et d'autre lors de l'installation), j'ai fait les "grant" des users pour les bases et les schema...
Merci de votre aide
Joel
[ Vous devez
vous connecter pour poster des commentaires ]