0

ORACLE 11g - COLDFUSION 9 - REF CURSOR - 変数が少なくとも1つあります。ColdFusionで変数を使用すると、値を返すためにOracleストアドプロシージャを取得する方法はありますか?

変数を使用するColdFusionでは、値を返すためにOracleストアドプロシージャを取得する方法はありますか。

私たちはいくつかのことを試みました。変数を渡すのではなく、変数を渡すときに結果セットを返すストアドプロシージャを取得できます。

MS SQLを呼び出す方法はわかっています。

ありがとうございました

P.S.私たちはこれが現在のOracleドライバでは不可能かもしれないと聞いてきましたが、そこには異なるOracleドライバがありますか?

私がオンラインで読んできたことから、これは単なるコーディングの問題ではないと思っています。私はそれが間違っていることを願っています。これは私が概念の証明として取り組んでいた単なる例であるため、それらのすべてを作成することができます。私はref cusorを使用していない場合、私はそれを働かせることができます。

エラーデータベースクエリを実行しています。
[Macromedia] [Oracle JDBC Driver]指定されたSQL型は、このドライバでサポートされていません。

エラーがDで発生しました:\ apacheの\ htdocsに\テスト\のindex.cfmに:ライン86

84: 85: 86: 87: 88:

CFコール手順に

<cfstoredproc procedure="BWNGDBADEV.PACK_REFCURSOR.GETALL" datasource="mydatasourcename" returncode="no"> 
    <cfprocparam type="InOut" cfsqltype="CF_SQL_INTEGER" variable="pPERSONNELID" value="4" null="No"> 
    <cfprocparam type="Out" cfsqltype="CF_SQL_REFCURSOR" variable="AnyVarName"> 
    <!--- *** This name ties StoredProc results to the query below *** ---> 
    <cfprocresult name="myvar"> 
</cfstoredproc> 

のOracleパッケージ

CREATE OR REPLACE 
PACKAGE PACK_REFCURSOR 
AS 
TYPE EMP_TableRows 
IS 
    REF 
    CURSOR 
    RETURN BWNGDBADEV.PER_PERSONNEL%ROWTYPE; 
PROCEDURE GETALL(
     pPERSONNELID IN OUT BWNGDBADEV.PER_PERSONNEL.PERSONNELID%type, 
     OUTTABLE OUT EMP_TableRows); 
END PACK_REFCURSOR ; 
/


CREATE OR REPLACE 
PACKAGE BODY PACK_REFCURSOR 
AS 
PROCEDURE GETALL(
     pPERSONNELID IN OUT BWNGDBADEV.PER_PERSONNEL.PERSONNELID%type, 
     OUTTABLE OUT EMP_TableRows) 
IS 
BEGIN 
-- implicit cursor is opened - no close needed ***  
OPEN OUTTABLE FOR 
SELECT * 
FROM BWNGDBADEV.PER_PERSONNEL 
WHERE PERSONNELID = pPERSONNELID; 

END GETALL ; 

END PACK_REFCURSOR ; 
/
+0

SPまたはSPの一部を完全に表示できますか?それなら、私はそれを辿ることができます。 – ppshein

+0

私が間違っていない場合、私はOracleが結果セット全体をサポートできるとは思わない。 – ppshein

答えて

0

あなたは、最新のDataDirect JDBCドライバを持っています

V 3.5のドライバとリリースはこちらノート? :http://kb2.adobe.com/cps/000/42dcb10a.html

リリースノートは、あなたの正確な問題を修正することを示唆しています

0

ドキュメントには、「Oracle 8および9参照カーソルにcfprocparamタグを使用することはできません。代わりに、cfprocresultタグを使用「

http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7d52.html

これらの線に沿って何かを試してみてください:。

<cfstoredproc 
    procedure = "BWNGDBADEV.PACK_REFCURSOR.GETALL" 
    dataSource = "mydatasourcename" 
    returnCode = "Yes"> 

    <!--- cfprocparam tags ---> 
    <cfprocparam type="InOut" cfsqltype="CF_SQL_INTEGER" variable="pPERSONNELID" value="4" null="No"> 
    <cfprocparam type="Out" cfsqltype="CF_SQL_REFCURSOR" variable="AnyVarName"> 

    <!--- cfprocresult tags ---> 
    <cfprocresult name="RS1" resultSet="1"> 
    <cfprocresult name="RS2" resultSet="2"> 

</cfstoredproc> 
関連する問題