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

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


--- 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

> 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"

> 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.

> 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.

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 Ricardo Martin Gomez 2007-03-15 12:17:34 RE: administracion
Previous Message Vidal Toboso 2007-03-15 12:11:42 Lectura de objetos oid