[pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Bom dia pessoal! Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa OBS.: 1) Este é a simplificação de um problema real que preciso resolver. 2) Com array eu consigo chegar a este resultado, mas nao quero usá-lo, a nao ser que eu nao tenha outra opção . Tipo: -- create or replace function fn_teste() returns void as $$ declare resultadoQuery RECORD; r RECORD; begin select u.* into resultadoQuery from usuario u; for r in rec loop raise notice 'loop 1 -- %', r.login; end loop; for r in rec loop raise notice 'loop 2 -- %', r.nome; end loop; end; $$ language plpgsql; -- Alguma sabe como chegar a este resultado? Abraços.. -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
On 14-02-2012 08:05, Moisés P. Sena wrote: Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Utilize cursor [1]. Não traga os velhos hábitos de linguagens de programação para PLs. [1] http://www.postgresql.org/docs/current/static/plpgsql-cursors.html -- Euler Taveira de Oliveira - Timbira http://www.timbira.com.br/ PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 11:56, Euler Taveira de Oliveira eu...@timbira.com escreveu: On 14-02-2012 08:05, Moisés P. Sena wrote: Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Utilize cursor [1]. Não traga os velhos hábitos de linguagens de programação para PLs. [1] http://www.postgresql.org/docs/current/static/plpgsql-cursors.html Legal! E para eu saber se este cursor retornou algum registro? tipo, usando array eu usaria (array_length(..)), mas eu preciso apenas saber se existe algum registro no cursor, tipo isto: IF ( CURSOR NAO VAZIO ) THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Eu faria assim: -- create or replace function fn_teste() returns void as $$ declare r RECORD; begin for r in select u.* into resultadoQuery from usuario u loop raise notice 'loop 1 -- %', r.login; raise notice 'loop 2 -- %', r.nome; -- Faz as duas atividades de uma vez para cada registro. end loop; end; $$ language plpgsql; -- -- Marcone Peres - DBA http://www.linkedin.com/in/marconeperes @marconeperes (61) 8146-0028 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 14:25, Marcone marconepe...@gmail.com escreveu: a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Eu faria assim: -- create or replace function fn_teste() returns void as $$ declare r RECORD; begin for r in select u.* into resultadoQuery from usuario u loop raise notice 'loop 1 -- %', r.login; raise notice 'loop 2 -- %', r.nome; -- Faz as duas atividades de uma vez para cada registro. end loop; end; $$ language plpgsql; -- Mas é que precisa ser executado separadamente mesmo, o CURSOR, funcionou legal. Mas está valendo =) Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Após o FETCH ou o MOVE você pode usar a variável especial FOUND: (...) FETCH seu_cursor INTO sua_var; IF FOUND THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; (...) -- Matheus de Oliveira Bacharelado em Ciências de Computação Laboratório de Computação de Alto Desempenho - LCADhttp://www.lcad.icmc.usp.br/ Instituto de Ciências Matemáticas e de Computação - ICMChttp://www.icmc.usp.br/ Universidade de São Paulo - USP http://www.sc.usp.br/ 2012/2/14 Moisés P. Sena moisesps...@gmail.com Em 14 de fevereiro de 2012 11:56, Euler Taveira de Oliveira eu...@timbira.com escreveu: On 14-02-2012 08:05, Moisés P. Sena wrote: Como faço para conseguir o seguinte resultado em uma PL/PGSQL (sem usar ARRAY): a) Selecionar varias linhas e guardar em uma variavel b) iterar sobre as linhas desta variavel e fazer alguma coisa b) iterar novamente as linhas desta variavel e fazer alguma outra coisa Utilize cursor [1]. Não traga os velhos hábitos de linguagens de programação para PLs. [1] http://www.postgresql.org/docs/current/static/plpgsql-cursors.html Legal! E para eu saber se este cursor retornou algum registro? tipo, usando array eu usaria (array_length(..)), mas eu preciso apenas saber se existe algum registro no cursor, tipo isto: IF ( CURSOR NAO VAZIO ) THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; Abraços! -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Select into variavel tipo tabela temporaria para iterar depois - sem array
Em 14 de fevereiro de 2012 14:32, Matheus de Oliveira matioli.math...@gmail.com escreveu: Após o FETCH ou o MOVE você pode usar a variável especial FOUND: (...) FETCH seu_cursor INTO sua_var; IF FOUND THEN RAISE NOTICE 'Existem registros'; ELSE RAISE NOTICE 'Nenhum registro encontrado' END IF; (...) Fncionou perfeitamente! Obrigado a todos!! Abraços, -- Moisés P. Sena (Analista e desenvolvedor de sistemas WEB e mobile) http://www.moisespsena.com http://linux.moisespsena.com ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Pgbouncer
-bash-3.2$ psql -p 6432 meudb leandro Password for user leandro: psql: ERROR: password authentication failed for user leandro O PgBouncer não reconheceu o usuário. Na segunda tentativa de conexão em sequencia -bash-3.2$ psql -p 6432 meudb leandro psql: ERROR: pgbouncer cannot connect to server *** Parece que algo fica travado. minha conffiguração do pgbouncer /etc/pgboucer.ini: [databases] ; redirect bardb to bazdb on localhost meudb = host=127.0.0.1 port=5432 dbname=meubanco Usuário e senha do banco, deveria estar acima, exceto se usando trust ou com arquivo .pgpass. auth_type = md5 ;auth_file = /var/lib/pgsql/data/global/pg_auth auth_file = /etc/userlist.txt ; ** Minha ideia é acessar utilizando o pg_auth do postgres mas como deu erro tentei assim para ver se ia mas tive o mesmo problema. Qual versão do PostgreSQL? A partir de 8.4 não tem esse arquivo de forma que o PgBouncer entenda. Talvez você tenha que criar o auth_file na mão. A estrutura dele é simples, duas colunas: usuário,senha em MD5 pool_mode = session Se sua aplicação não usa tabelas temporárias ou prepared statements, use o modo transaction. É muiiito mais eficiente. # IPv4 local connections: host all all 127.0.0.1/32 password Então você precisa passar usuário e senha na string de conexão lá de cima, onde citei. []s Flavio Gurgel ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Medium Trust
Estou com problemas para rodar projetos em C#/Asp.Net com .NET 4 usando a política de segurança em Medium Trust. Não consigo rodar nem no servidor virtual do Visual Studio 2010 e nem no IIS 7.5 do Windows 7 x64. Sempre dah o erro de System.Security.Permissions.FileIOPermission, mscorlib... Estou usando o Npgsql 2.0.11.92, tendo registrado no GAC. -- View this message in context: http://postgresql.1045698.n5.nabble.com/Medium-Trust-tp5483773p5483773.html Sent from the PostgreSQL - Brasil mailing list archive at Nabble.com. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Medium Trust
2012/2/14 Claudio Hirakawa c...@ig.com.br: Estou com problemas para rodar projetos em C#/Asp.Net com .NET 4 usando a política de segurança em Medium Trust. Não consigo rodar nem no servidor virtual do Visual Studio 2010 e nem no IIS 7.5 do Windows 7 x64. Sempre dah o erro de System.Security.Permissions.FileIOPermission, mscorlib... Estou usando o Npgsql 2.0.11.92, tendo registrado no GAC. Rapaz, não entendi a sopa de letrinhas… tem a ver com PostgreSQL. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Definir ordenação
Pessoal, Tenho a seguinte select: SELECT codigo, nome FROM tabela WHERE (codigo IN (4,6,1,3)) Existe a possibilidade de ordenar pelo codigo, de forma que o resultado seja ordenado pela mesma ordem que foi passado no IN? ou seja, o 1º resultado seria o código 4, o 2º seria o codigo 6 e assim por diante? Obrigado a todos Danilo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Definir ordenação
Boas, não sei se existe forma mais elegante, mas já usei uma coluna com case, tipo: Select case when codigo = 4 then 1 When codigo = 6 then 2 When codigo = 1 then 3 End as ordem, Coluna1, coluna2 from tabela Order by 1 Ps: não testei o código acima agora, mas dá pra ter uma idéia. Gde. Abraço Ed Em 2 15, 2012 2:45 AM, Danilo Silva danilo.dsg.go...@gmail.comescreveu: Pessoal, Tenho a seguinte select: SELECT codigo, nome FROM tabela WHERE (codigo IN (4,6,1,3)) Existe a possibilidade de ordenar pelo codigo, de forma que o resultado seja ordenado pela mesma ordem que foi passado no IN? ou seja, o 1º resultado seria o código 4, o 2º seria o codigo 6 e assim por diante? Obrigado a todos Danilo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral