Oracle
 sql >> база данни >  >> RDS >> Oracle

изпълни съхранена процедура на oracle от sql сървър, използвайки функцията за отворена заявка

Най-накрая открихме няколко решения – ключът към проблема (за нас) е, че RPC по подразбиране са деактивирани за свързани сървъри. Параметрите за Rpc, Rpc Out и Use Remote Collation трябва да бъдат зададени на true. Повече информация:

http://blog.sqlauthority.com/2007/10/18/sql-server-2005-fix-error-msg-7411-level-16-state- 1-сървърът-не-конфигуриран-за-rpc/

Решението, което използвате, ще зависи от изискванията за изход на процедурата. Първият пример връща изходна стойност. Във втория пример не се връщат изходни стойности (данните се събират в следваща заявка).

Пример 1

Процедурата T2T_collect_all има два входни параметъра (начална и крайна дата) и един изходен параметър (брой редове).

ДЕКЛАРИРАЙТЕ @l_i_parameter1 varchar(10)

ДЕКЛАРИРАЙТЕ @l_i_parameter2 varchar(10)

ДЕКЛАРИРАЙТЕ @l_i_parameter3 varchar(10)

ДЕКЛАРИРАЙТЕ @l_i_parameter4 varchar(10)

DECLARE @l_o_parameter1 цяло число

SET @l_i_parameter1 ='2009/10/01'

SET @l_i_parameter2 ='гггг/мм/дд'

SET @l_i_parameter3 ='2009/12/31'

SET @l_i_parameter4 ='гггг/мм/дд'

SET @l_o_parameter1 =0

EXECUTE ( 'begin T2T_collect_all(to_date(?, ?), to_date(?, ?), ?); край;',

      @l_i_parameter1, 

      @l_i_parameter2,

      @l_i_parameter3, 

      @l_i_parameter4,

      @l_o_parameter1 OUTPUT

) В ORA_DB;

Повече информация:http://blogs.msdn.com/joaquinv/archive/2008/10/23/execute-oracle-stored-procedure-in-sql-server.aspx

Пример 2а

Процедурата T2T_collect_allx има само два входни параметъра (начална и крайна дата).

EXECUTE ('begin T2T_collect_allx (SYSDATE - 40, SYSDATE); край;') ORA_DB;

Пример 2b

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Subsonic поддръжка за Oracle ODP.NET?

  2. Как да форматирате дата от Oracle до валидна дата и час в c#

  3. Apex 5.0:Показване на лента за напредък, докато се извършва действие с базата данни

  4. преминаване през масив за условието where pl/sql

  5. Проверка на sid на oracle и име на база данни