none
Ejecutar Función de Oracle con Parámetros desde SQL server RRS feed

  • Pregunta

  • Mi consulta es la siguiente , necesito ejecutar una función de Oracle pero los parámetros pasarlos desde SQL server a través de un LinkServer 

    algo así 

    select *  from openquery(DB_ORA,'select paquete.funcion(p1,p2) from dual')

    p1 y p2 quiero pasarlos desde SQL server , lo anterior es posible , he tratado de concatenar los dato,  pero o lo estoy haciendo mal o no se puede.

    Muchas gracias por la colaboración o sugerencias.

    jueves, 4 de mayo de 2017 22:46

Respuestas

  • Hola Fredy, es un tema que puede resultar complicado. Yo personalmente estas cosas las hago con SSIS, pero entiendo que necesites que sea un linked server. No se puede pasar como parámetro a openquery una variable, sin embargo se puede usar un truco.

    En este caso yo he creado un servidor vinculado a mi mismo (es SQL Server pero es lo mismo) y lo que he hecho es construir dinámicamente toda la sentencia de esta forma

    select * from openquery([127.0.0.1],'select * from information_schema.tables')
    go
    declare @query varchar(4000)='select * from information_schema.tables' + ' where table_type=''base table''';
    select * from openquery([127.0.0.1],@query) -- No se puede!!
    go
    declare @query varchar(4000) =' select * from openquery([127.0.0.1],''select * from information_schema.tables where table_type=''''base table'''' '')';
    select @query
    exec(@query)

    fíjate que el select ultimo me ayuda a ir comprobando que lo que he generado es correcto.

    Espero que te sirva


    Comparte lo que sepas, aprende lo que no sepas (FGG)
    portalSQL
    El rincón del DBA

    viernes, 5 de mayo de 2017 7:37
    Moderador