Thanks very much. I replaced my statement by the following plpgsql code : statement := 'DROP ROLE "'||(SELECT ...)||'";'; execute(statement);
and it works like a charm. Regards, Brice 2011/10/19 Andreas Kretschmer <andr...@a-kretschmer.de> > You can't do that in THAT way, but you can use dynamic SQL: > > test=# select * from drop_role ; > t > -------- > foobar > (1 row) > > test=*# do $$ declare r text; begin for r in select t from drop_role loop > execute 'drop role ' || quote_ident(r) || ';'; end loop; end; $$language > plpgsql; > > DO > > > > > "Brice André" <br...@famille-andre.be> hat am 19. Oktober 2011 um 12:11 > geschrieben: > > > > Hello everyone, > > > > I would want to implement an SQL query where I would be able to suppress > all > > information from a registered user. I am currenlty able to suppress > everything > > except the user role. The name of the role is present in a table and so, > I > > would want to perform something like this : > > DROP ROLE (SELECT ...) > > but this is not considered as valid, as DROP ROLE is expecting a name and > not > > a text field. So, I tried the following, but with no success : > > DROP ROLE CAST((SELECT...) AS name) > > > > So, does someone knows how to handle this problem ? > > > > Regards, > > Brice > > >