Consulta Hacia Oracle

25/01/2006 - 21:23 por jesusR | Informe spam
saludos.
se me presenta el siguiente problema:
Desde SQL Server Necesito acceder cierta data existente en una base de
datos Oracle.
Cree un linked Server y todo funciona bien.

Puedo hacer las consultas desde MSQL hacia oracle de las siguientes
maneras:
1.- Select from SERVIDOR_LINKEADO..ESQUEMA.TABLA
2.- Select * from openquery(SERVIDOR_LINKEADO,'select * from
ESQUEMA.TABLA')

He utilizado la segunda opcion por que es mucho mas rapida, es decir,
al ejecutar la opcion 2 tarda aprox 2 segundos en devolver los
registros, contra casi 90 segundos que tarda la primera.

Al momento se me esta presentado el problema de que necesito ejecutar
dichas consultas con filtros dinamicos es decir
declare @pepe int
@pepe"
Select from SERVIDOR_LINKEADO..ESQUEMA.TABLA where campo=@pepe

Evidentemente esto no lo puedo hacer con openquery.

Preguntas:

A que se debe la tardanza en responder en el caso de 1? Es normal que
esto suceda? existe alguna manera de jugar con parametros en los
openquery????


Gracias de antemano por sus respuestas
 

Leer las respuestas

#1 Isaias
25/01/2006 - 21:59 | Informe spam
Podrias hacerlo mediante QUERY DINAMICO, con sus pros y contras.

DECLARE @SQLTRING NVARCHAR(1000), @variable varchar(10)
SET @variable = '20'
SET @SQLTRING = 'SELECT * FROM MyTabla WHERE MyColumna = '+@variable
execute sp_executesql @SQLTRING
Saludos
IIslas


"jesusR" escribió:

saludos.
se me presenta el siguiente problema:
Desde SQL Server Necesito acceder cierta data existente en una base de
datos Oracle.
Cree un linked Server y todo funciona bien.

Puedo hacer las consultas desde MSQL hacia oracle de las siguientes
maneras:
1.- Select from SERVIDOR_LINKEADO..ESQUEMA.TABLA
2.- Select * from openquery(SERVIDOR_LINKEADO,'select * from
ESQUEMA.TABLA')

He utilizado la segunda opcion por que es mucho mas rapida, es decir,
al ejecutar la opcion 2 tarda aprox 2 segundos en devolver los
registros, contra casi 90 segundos que tarda la primera.

Al momento se me esta presentado el problema de que necesito ejecutar
dichas consultas con filtros dinamicos es decir
declare @pepe int
@pepe"
Select from SERVIDOR_LINKEADO..ESQUEMA.TABLA where campo=@pepe

Evidentemente esto no lo puedo hacer con openquery.

Preguntas:

A que se debe la tardanza en responder en el caso de 1? Es normal que
esto suceda? existe alguna manera de jugar con parametros en los
openquery????


Gracias de antemano por sus respuestas


Preguntas similares