SQL Server - Ejecutar SP en sybase desde SQL2005

   
Vista:

Ejecutar SP en sybase desde SQL2005

Publicado por Ivan Leon (5 intervenciones) el 23/08/2011 14:10:33
Saludos, necesito ejecutar un SP en sybase desde SQL2005, tengo creado y funcionando el linkedserver (insert,update,select,delete), pero no he encontrado forma de que un sp retorne resultados.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 23/08/2011 17:26:43
¿Y retorna resultados?, Digo, si lo ejecutas desde Sybase, ¿funciona?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar SP en sybase desde SQL2005

Publicado por Ivan Leon (5 intervenciones) el 23/08/2011 17:29:31
En sybase retorna resultado, he intentato ejecutando un sp_who y tampoco lo ejecuta (y siempre retorna resultados). Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 24/08/2011 21:27:48
Veamos, ¿como ejecutas tu SP_WHO y desde donde lo estas ejecutando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar SP en sybase desde SQL2005

Publicado por Ivan Leon (5 intervenciones) el 24/08/2011 22:14:56
Ejecuto desde SQL server


*************************************************************************
******************Retorna el select correctamente********************
*************************************************************************

declare @sql_str varchar(1000)


Select @sql_str = 'Select *
From ope_contenedor
Where ano_operacion ='+rtrim(convert(varchar(4),2011))+'
And cor_operacion ='+rtrim(convert(varchar(6),100))+'
And cod_movimiento ="EE"'

Select @sql_str = ' Select * from Openquery(Arpasybope, ''' + Replace(@sql_str, '''', '''''') + ''')'

Exec (@sql_str)

*************************************************************************
******************NO Retorna ejecucion de SP***********************
*************************************************************************


declare @sql_str varchar(1000)


Select @sql_str = 'dbo.sp_test'

Select @sql_str = ' Select * from Openquery(Arpasybope, ''' + Replace(@sql_str, '''', '''''') + ''')'

Exec (@sql_str)

*************************************************************************
Error:

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not process object 'dbo.sp_test'. The OLE DB provider 'Sybase ASE OLE DB Provider' indicates that the object has no columns.(42000,7357)

El sp si lo ejecuto en sybase retorna registros, no asi cuando lo ejecuto con openquery desde SQL Server.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 24/08/2011 23:09:09
1.- Debes utilizar UNC para el nombrado de tus objetos: linkedserver.base.owner.tabla
2.- Antes de ejecutar tu cadena, debes validar que trae: SELECT @sql_str
3.- Cambia EXEC (String), por EXEC sp_executesql @MyNVarchar

En este caso @sql_str debes declararla como NVARCHAR
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar SP en sybase desde SQL2005

Publicado por Ivan Leon (5 intervenciones) el 25/08/2011 19:20:08
No hay caso, probe de todas formas. Tu has ejecutado desde sql server un procedimiento en sybase?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 26/08/2011 02:03:49
El administrador (DBA) de Sybase, deberia darte permisos de conexion y ejecucion, ya probaste con un simple select desde SQL Server.

SELECT * FROM myLinkedServerSybase.myBase.owner.MyTabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 26/08/2011 02:05:30
Ya vi que tienes implementado INSERT, UPDATE, DELETE, SELECT para Sybase, ahora la duda que tengo, ¿Sybase maneja objetos como STORE PROCEDURE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ejecutar SP en sybase desde SQL2005

Publicado por Ivan Leon (5 intervenciones) el 26/08/2011 13:39:06
SELECT * FROM myLinkedServerSybase.myBase.owner.MyTabla retorna error

The multi-part identifier "Arpasybope.opera.dbo.ope_contenedor" could not be bound.

No estoy claro si se puede ejecutar de esa manera un servidor linkeado que no sea sql server.


Sybase maneja SP
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Ejecutar SP en sybase desde SQL2005

Publicado por Isaias (3186 intervenciones) el 26/08/2011 18:16:01
Intentalo asi:

SELECT * FROM Arpasybope.opera..ope_contenedor

Arpasybope = Servidor Linked
opera = base
ope_contenedor = tabla

¿Y los procedimientos en Sybase, se ejecutan asi?

EXECE myProcedimiento <parametros>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar