sql >> Database >  >> RDS >> Oracle

een in orakel opgeslagen procedure uitgevoerd vanaf de sql-server met behulp van de open query-functie

Eindelijk een paar oplossingen gevonden - de sleutel tot het probleem (voor ons) is dat RPC's standaard zijn uitgeschakeld voor gekoppelde servers. De parameters voor Rpc, Rpc Out en Use Remote Collation moeten worden ingesteld op true. Meer info:

http://blog.sqlauthority.com/2007/10/18/sql-server-2005-fix-error-msg-7411-level-16-state- 1-server-is-niet-geconfigureerd-voor-rpc/

De oplossing die u gebruikt, hangt af van de uitvoervereisten van de procedure. Het eerste voorbeeld retourneert een uitvoerwaarde. In het tweede voorbeeld worden geen uitvoerwaarden geretourneerd (gegevens worden verzameld in een volgende query).

Voorbeeld 1

De procedure T2T_collect_all heeft twee invoerparameters (start- en einddatum) en één uitvoerparameter (aantal rijen).

VERKLAREN @l_i_parameter1 varchar(10)

VERKLAREN @l_i_parameter2 varchar(10)

VERKLAREN @l_i_parameter3 varchar(10)

VERKLAREN @l_i_parameter4 varchar(10)

DECLARE @l_o_parameter1 geheel getal

SET @l_i_parameter1 ='2009/10/01'

SET @l_i_parameter2 ='jjjj/mm/dd'

SET @l_i_parameter3 ='2009/12/31'

SET @l_i_parameter4 ='jjjj/mm/dd'

SET @l_o_parameter1 =0

UITVOEREN ('begin T2T_collect_all(to_date(?, ?), to_date(?, ?), ? ); end;', ​​

      @l_i_parameter1, 

      @l_i_parameter2,

      @l_i_parameter3, 

      @l_i_parameter4,

      @l_o_parameter1 OUTPUT

) BIJ ORA_DB;

Meer informatie:http://blogs.msdn.com/joaquinv/archive/2008/10/23/execute-oracle-stored-procedure-in-sql-server.aspx

Voorbeeld 2a

De procedure T2T_collect_allx heeft slechts twee invoerparameters (start- en einddatum).

UITVOEREN ('begin T2T_collect_allx (SYSDATE - 40, SYSDATE); einde;') ORA_DB;

Voorbeeld 2b

SELECT * FROM OPENQUERY(ORA_DB, 'begin T2T_collect_allx (SYSDATE - 40, SYSDATE ); einde;')



  1. Opgeslagen Oracle-functie - geef tabelnaam door als parameter

  2. Behoud en toon tekst precies zoals het is getypt en ingediend

  3. Hoe een Rest API te bouwen met Spring Boot met behulp van MySQL en JPA

  4. Er is een DBConcurrency-uitzondering opgetreden tijdens het bijwerken met behulp van Dataadapter