Olá,

2009/11/30 Tiago Valério <[email protected]>

> Fiz da seguinte forma
>
> CREATE OR REPLACE VIEW vw_tabela as
> select id,nmcliente,endereco,tel from esquema.tabela
> order by id
> limit 1;
>
> Então fiz o seguinte consulta na view
>
> select * from vw_tabela
> where id=1234;
>
> Na situacao acima o resultado gerado é zero.
>

Você não pode fazer o limit 1 na chamada da view?

Ao fazer dentro da view quando você faz limit 1 você vai trazer apenas o
primeiro registro, se você fizer teste com o primeiro registro da tabela
você verá que vai funcionar, se fizer com qualquer outro não.

Recomendaria você usar o limit na chamada da view.

PS: Não sei se minha explicação ficou clara.

>
> Porem se faço  a consulta direto na tabela conforme abaixo, o registro é
> retornado.
>
>
> select * from esquema.tabela
> where id=1234;
>
> Será alguma restrição do limit isto?
>
> Desde obrigado pela força.
>
>
>
>
>
>
> 2009/11/30 JotaComm <[email protected]>
>
> Opa,
>>
>> 2009/11/30 Tiago Valério <[email protected]>
>>
>>>  Leo
>>>
>>> Obrigado pela ajuda e aproveitando, para colocar em pratica os
>>> conhecimentos adquiridos.
>>>
>>> Tentei com a criação da view e definindo limit 1.Porem quando uso o where
>>> junto com a view  a consulta retorna zerada, e o registro está na
>>> tabela.Pode haver restrição do limit neste caso?
>>>
>>>
>>> Você pode mandar a definição da view e um exemplo dos dados, podem ser
>>> ficticios.
>>>
>>>
>>>
>>>
>>>
>>> 2009/11/30 Leonardo Cezar <[email protected]>
>>>
>>> 2009/11/30 Tiago Valério <[email protected]>:
>>>> <corte>
>>>>
>>>> > Porem não  gostaria de dar o grant de select para o usuario em
>>>> "tabela",
>>>> > pois somente assim a function funcionaria.
>>>> >
>>>> > Neste caso teria como resolver esta questão sem o grant de select em
>>>> > "tabela"?
>>>>
>>>> CREATE FUNCTION seleciona_tabela(...)
>>>> RETURNS tabela
>>>> LANGUAGE PLPGSQL
>>>> AS $selection_tabela$
>>>>
>>>> [....]
>>>>
>>>> END;
>>>> $selecion_tabela$
>>>> EXTERNAL SECURITY DEFINER;
>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>> Utilize a opção SECURITY na definição da procedure.
>>>>
>>>> Por outro lado, uma visão resolveria seu problema de forma mais simples.
>>>>
>>>> -Leo
>>>> --
>>>> Leonardo Cezar
>>>> http://www.aslid.org.br
>>>> http://postgreslogia.wordpress.com
>>>> http://www.dextra.com.br/postgres
>>>> _______________________________________________
>>>> pgbr-geral mailing list
>>>> [email protected]
>>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>>
>>>
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>> []s
>> --
>> JotaComm
>> http://jotacomm.wordpress.com
>>
>> _______________________________________________
>> pgbr-geral mailing list
>> [email protected]
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a