Em 14 de outubro de 2010 02:46, Eduardo Az - EMBRASIS Informática e
O&M <[email protected]> escreveu:
> Pessoal, estou com um problema para resolver, verifiquem os comandos de
> exemplo abaixo:
>
> 1)
> SELECT cep, logr_t, logr, logr_compl, bairro, cidade, uf
> FROM dblink('hostaddr=192.168.0.10 dbname=cep user=xxxxxxx password=xxxx',
> 'select cep, logr_t, logr, logr_compl, bairro, cidade, uf from cep WHERE cep
> = ‘03129110’ ')
> AS cep(cep character(8), logr_t character varying(5), logr character
> varying(60), logr_compl character varying(30), bairro character varying(30),
> cidade character varying(30), uf character(2))
>
> 2)
> SELECT cep, logr_t, logr, logr_compl, bairro, cidade, uf
> FROM dblink('hostaddr=192.168.0.10 dbname=cep user=xxxxxxx password=xxxx',
> 'select cep, logr_t, logr, logr_compl, bairro, cidade, uf from cep  ')
> AS cep(cep character(8), logr_t character varying(5), logr character
> varying(60), logr_compl character varying(30), bairro character varying(30),
> cidade character varying(30), uf character(2))
> WHERE cep = ‘03129110’
>
> A única diferença entre os 2 está na clausula WHERE que no primento fica
> dentro do dblink e no segundo fica fora.
> Pois bem, o primeiro, teoricamente seria mais rápido (usei como teste, em
> vez de procurar string, procurar um valor integer ou usar LIMIT), porém, ele
> dá erro devido as ‘ ‘ que conflitam com as ‘ ‘  usadas no dblink (WHERE cep
> = ‘03129110’ ).
>
> Ambiente:
> Windows 7 Professional 64 bits
> PostgreSQL 9.0 64 bits
> Linguagem: xHarbour
>
> Antes de usar esta forma, que acredito ser a mais correta e elegante, na
> correria, criava outra instancia de conecxão e fazia a busca por ela. A
> forma 1, seria mais rápida que a “quebra galho”, porem, a forma 2 é muito
> mais lenta. Existira uma forma de usar outros delimitadores ao inves do ‘ ‘?
>


Para facilitar as coisas utilize cadeia de caracteres delimitadas por
cifrão (Dollar-Quoted String Constants) [1].
Por ex.:
'.... WHERE cep = $$03129110$$ '

Se desejar continuar usando apenas ' veja uma explicação de quando
usar 2, 4 ou mais em [2].

Osvaldo
[1] 
http://www.postgresql.org/docs/current/interactive/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS
[2] 
http://www.postgresql.org/docs/current/interactive/plpgsql-development-tips.html#PLPGSQL-QUOTE-TIPS
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a