Olá pessoal, vamos apresentar aqui como implementar no postgreSQL um recurso de variáveis de sessão, que pode ser inclusive usado para "substituir" o uso das variáveis de pacotes do oracle.
Primeiro fizemos a intalação do plpython no fedora 7
wget http://ftp.gui.uva.es/sites/fedora.redhat.com/linux/updates/7/i386/postgresql-plpython-8.2.4-1.fc7.i386.rpm
rpm -ivh postgresql-plpython-8.2.4-1.fc7.i386.rpm
Em seguida instalamos a plpython no banco de dados de trabalho:
createlang plpythonu detran
A pl python tem um recurso interessante que é um dicionário de dados de acesso global dentro de uma sessão, com isso podemos criar 2 funções em python set_session e get_session que vão fazer o trabalho de setar e ler essas variáveis em qualquer local que venhamos a precisar.
Para setar as informações de sessão em python usamos:
GD["nome_var"] = "valor"
para ler o valor da variável usamos apenas
GD["nome_var"]
Abaixo as funcões para gravar e ler as variáveis.
CREATE OR REPLACE FUNCTION set_session(var1 "varchar", var2 "varchar")
RETURNS bool AS
$$
GD[args[0]] = args[1]
return True
$$
LANGUAGE 'plpythonu' VOLATILE;
CREATE OR REPLACE FUNCTION get_session(var1 "varchar")
RETURNS varchar AS
$$
return GD[args[0]]
$$
LANGUAGE 'plpythonu' VOLATILE;
Para testar:
select set_global('nome','coutinho'); # retorna true se nao der pau
select get_global('nome'); # retorna 'coutinho'
Nenhum comentário:
Postar um comentário