none
Passaggio parametri in openquery sql -oracle RRS feed

  • Domanda

  • Ciao a tutti ...

    Avrei la necessità di eseguire una select utilizzando una store procedure in sql server 2005 che legge i dati direttamente da ORACLE.

    Riesco a eseguire perfettamente la select ma non conosco il metoto per passare un parametro all OPENQUERY .

    select

    * from openquery(ORACLE_OLEDB,'SELECT cast(SDKCOO as varchar(5)) as SDKCOO,SDDOCO FROM PRODDTA.F4211 where SDDOCO= @ordnum  '

    )

    Cioè come  passare @ordnum!!!!??

    Qualcuno mi può aiutare?

    Grazie in anticipo

    G.Carlo Antonioli

     

    lunedì 4 aprile 2011 10:26

Risposte

Tutte le risposte

  • Ciao Giancarlo,

    prova a utiliziare Dynamic SQl  like this

    declare @query varchar(MAX)
    set @query= 'select * from openquery(ORACLE_OLEDB,''SELECT cast(SDKCOO as varchar(5)) as SDKCOO,SDDOCO FROM PRODDTA.F4211 where SDDOCO=' +@ordnum +''''
    exec (@query)
     
     
     

    Best regards

    lunedì 4 aprile 2011 10:55
  • Ciao Badii..

    Arithmetic overflow error converting varchar to data type numeric.

    sembrerebbe ci sia un problema di conversione ....

     

    declare

     

    @ordnum numeric(8,0)

    declare @query varchar(MAX)

    BEGIN

    SET NOCOUNT ON;

    set

     

    @ordnum=

    11004867

    set @query= 'select SDDOCO from openquery(ORACLE_OLEDB,''SELECT SDDOCO FROM PRODDTA.F4211 where SDDOCO='+ @ordnum + ''''

    exec

     

    (@query

    )

    lunedì 4 aprile 2011 12:15
  • tipo di campo SDDOCO ?

    prova con :

    set @query= 'select SDDOCO from openquery(ORACLE_OLEDB,''SELECT SDDOCO FROM PRODDTA.F4211 where SDDOCO='+ cast(@ordnum as varchar(20)) +''')'
     

    Best regards


    lunedì 4 aprile 2011 12:19
  • Grazie Badii..

    Perfetto ora Funziona!!!

    G.C.

    lunedì 4 aprile 2011 15:59