Re: Postgres como linked server en Ms. SQL server 2005

From: Pere Rodríguez <pere(dot)rodriguez(dot)rodriguez(at)gmail(dot)com>
To: "Gabriel Colina" <colina_movil(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Postgres como linked server en Ms. SQL server 2005
Date: 2007-03-15 13:41:06
Message-ID: e1b2e97f0703150641y596cf6a4h43454c9129d0e14@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

2007/3/15, Gabriel Colina <colina_movil(at)yahoo(dot)com>:
>
> --- Pere Rodríguez
> <pere(dot)rodriguez(dot)rodriguez(at)gmail(dot)com> escribió:
>
> > Hola,
> >
> > por motivos que no vienen al caso necesito acceder a
> > PostgreSQL 8.1.4
> > desde Ms. SQL server 2005.
>
> Mejor rendimiento vas a obtener actualizando a
> postgresql 8.2.3

Trabajamos con Debian Etch y de momento esa versión aun no está
disponible en el repositorio.

>
> > A tal propósito he creado un servidor vinculado en
> > el SQL Server para
> > acceder a Postgres. El driver utilizado es OleDb
> > sobre ODBC. Con esta
> > configuración he encontrado dos problemas:
>
> > 1/ Yo utilizo el esquema public y para SQL Server
> > "public" es una
> > palabra reservada.
> Te contesto con mis conocimientos hasta la version
> 2003 por que desde que conoci PostgreSQL, le he dado
> las gracias a SQL Server y lo retire con honores, y
> despues de 8.2.3, ya es un camino sin retorno, admito
> que hay situaciones en las que uno tenga que convivir.
> Y lo voy a instalar solo para poder responderles
> teniendo en cuenta las diferencias que pueda tener
> esta version con la 2003, igual te pido que consultes
> MSDN, ahi hay una estupenda documentacion muy bien
> organizada, para ver si existe hoy otro metodo para
> vincular tablas externas que el que estas usuando.
>
> Pero si el MSDN y lo que te menciono abajo no te
> sirve. Tengo una alternativa muy desprolija pero
> funciona. Me la reservo para otro momento por que si
> no voy a resivir pedradas.
>
> el public en M$Sql es llamado dbo
>
> Esto me impide hacer cualquier
> > consulta ya que sql
> > server pide el esquema. Por ejemplo:
> >
> > select * from linked_server..public.tabla
> >
> > ¿Alguna solución?
> >
>
> Proba select * from linked_server."public"."tabla"
> con comillas simples tambien o "."public.tabla"

Perfecto :). Funciona, un problema menos!!.

>
> > Yo he pensado en crear un nuevo esquema con vistas a
> > las tablas que me
> > interesan.
> Eso a mi me gusta, yo trabajo muy poco en los esquemas
> publicos.
> >
> > 2/ El problema mas grave es que SQL Server, al hacer
> > las consulta,
> > omite la clave "as" para los alias y Postgres no me
> > resuelve la
> > consulta. Por ejemplo, la consulta:
> >
> > select id from linked_server..public1.foo
> >
> > el sql server la traduce a:
> >
> > SELECT "Tbl1002"."id" "Col1004" FROM "public1"."foo"
> > "Tbl1002"
> >
> Y donde esta la clave as que no la estoy viendo en el
> ejemplo que presentas.

O no me he explicado o no me entiendes ...
El problema está en que la clave "as" no está, el SQL Server no la
pone y en consecuencia Postgres dispara un error.

Un ejemplo:

- Yo escribo esta consulta en SQL Server 2005:

select id from linked_server..public1.foo

- SQL Server le pide a Postgres esta otra:

SELECT "Tbl1002"."id" "Col1004" FROM "public1"."foo" "Tbl1002"

y es en esta en la que SQL Server no pone el "as" (que de hecho en
SQL92 es opcional). Al no estar el "as" Postgres dispara un error.

¿Que puedo hacer?
¿Puedo configurar Postgres para que soporte alias sin la palabra clave "as"?

>
> > y Postgres, al no existir el "as" para el alias,
> > dispara un error.
> >
> Algo me perdi por que yo uso el "as" en postgresql
>
> > Este es para mi el gran problema. ¿Alguna idea?
> >
> Una alternativa que hasta aqui no habia considerado
> existe en Postgresql, segun se hablo la semana pasada
> no me consustance con el, una contrib o algo que se
> llama dblink o algo asi, por que no vinculas las
> tablas de SQL que te interesan a PostgreSQL y te
> conectas al PostgreSQL para realizar las transacciones
> que te interesan.
> > 3/ También he provado directamente con el driver
> > OleDb de Postgres
> > pero no he conseguido conectarme.
> >
> > Gracias,
> >
> > pere
> >
> > ---------------------------(fin del
> > mensaje)---------------------------
> > TIP 6: ¿Has buscado en los archivos de nuestra lista
> > de correo?
> >
> >
> > http://archives.postgresql.org/pgsql-es-ayuda
> >
>
> En ultima instancia nos queda la forma horrorosa que
> te voy a mencionar mas adelante o en privado para que
> no me tiren piedras desde aqui. jeje
>
> En el campo, en mi pais, dicen que el que se quemo con
> leche, ve la vaca y llora.

¿Argentino?

>
> Atte.
> Gabriel Colina
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.espanol.yahoo.com/
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jeferson alvarez 2007-03-15 13:41:38 Re: pasar DBF's a Postgresql
Previous Message Mario Cassanelli 2007-03-15 13:28:19 Re: pasar DBF's a Postgresql