sql >> データベース >  >> RDS >> Oracle

オープンクエリ関数を使用して、SQLサーバーからOracleストアドプロシージャを実行しました

    最後に、いくつかの解決策を突き止めました。問題の鍵は(私たちにとって)、デフォルトでリンクサーバーのRPCが無効になっていることです。 Rpc、Rpc Out、およびUseRemoteCollat​​ionのパラメーターをtrueに設定する必要があります。詳細:

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

    使用するソリューションは、プロシージャの出力要件によって異なります。最初の例は出力値を返します。 2番目の例では、出力値は返されません(データは後続のクエリで収集されます)。

    例1

    プロシージャT2T_collect_allには、2つの入力パラメータ(開始日と終了日)と1つの出力パラメータ(行数)があります。

    DECLARE @ l_i_parameter1 varchar(10)

    DECLARE @ l_i_parameter2 varchar(10)

    DECLARE @ l_i_parameter3 varchar(10)

    DECLARE @ l_i_parameter4 varchar(10)

    DECLARE @ l_o_parameter1 integer

    SET @ l_i_parameter1 ='2009/10/01'

    SET @ l_i_parameter2 ='yyyy / mm / dd'

    SET @ l_i_parameter3 ='2009/12/31'

    SET @ l_i_parameter4 ='yyyy / mm / dd'

    SET @ l_o_parameter1 =0

    EXECUTE('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
    

    )AT ORA_DB;

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

    例2a

    プロシージャT2T_collect_allxには、2つの入力パラメータ(開始日と終了日)しかありません。

    EXECUTE('begin T2T_collect_allx(SYSDATE-40、SYSDATE); end;')ORA_DB;

    例2b

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



    1. rake db:postgresqlでエンコーディングエラーを作成する

    2. MySQLCAPIの使用-プリペアドステートメントを使用して行の挿入が成功したかどうかを確認します

    3. MySQL:rootアカウントにアクセスできません

    4. グループごとにN個のランダムレコードを選択します