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
