buenos dias

intento cambiar el password de usuario desde un trigger estoy intentando
con estas lineas

si lo hago de manera estatica funciona pero si intento tomar los valors de
los campos de NEW no he podido lograrlo

aqui las lineas que intentado espero sea posible

CREATE OR REPLACE FUNCTION chk()
  RETURNS trigger AS
$BODY$

    DECLARE
        a varchar;
        b varchar;
        c varchar;
    BEGIN
    a := NEW.usuario;
    b := NEW.pass;

    ALTER ROLE usuprueba WITH PASSWORD '123'; -- esta linea funciona con
datos estaticos

    c = 'ALTER ROLE '||a||' WITH PASSWORD '||"'"||b||"';"; -- intente
concatenar pero no me funciono

    ALTER ROLE a WITH PASSWORD '12'; -- intente colocando la variable pero
me toma a en lugar del valor de NEW.usuario

    --c = "ALTER ROLE "|| a ||" WITH PASSWORD '" || b ||"'";

    --ALTER ROLE a WITH PASSWORD 'b';

    --execute    'c';
    --execute "ALTER ROLE NEW.usuario WITH PASSWORD 'new.pass'";

        --ALTER ROLE NEW.usuario WITH PASSWORD '''NEW.pass''';

        RETURN NEW;
        COMMIT;

    END;

$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION chk()
  OWNER TO postgres;





-- 
José Mercedes Venegas Acevedo
cel: Mov. 949808846

mails: [email protected]
          [email protected]

PHP Spanish Docs translator member.
http://www.php.net/manual/es/index.php

Responder a