Next Page

1

Previous Page

スレッド: CF8からOracleのストアドプロシージャの実行について

作成日: 05/22/08 03:53 AM

返信: 2

juripon


新米


入会日: 05/21/08

投稿数: 4

CF8からOracleのストアドプロシージャの実行について
05/21/08 4:55 PM

はじめまして。
ColdfusionからOracleのストアドプロシージャの実行について質問させてください。


[環境]
Coldfusion8スタンダード版(Updater1済み)
Oracle10g

[目的]
oracleストアドプロシージャのoutputパラメータが
varray型の変数をcfで取得したい。

[テストスクリプト]

(oracle)
CREATE OR REPLACE TYPE MSG_ARRAY
AS VARRAY(20) OF VARCHAR2(60);
/

CREATE OR REPLACE procedure TEST_PROC
(ret_msg_array out msg_array)
is
begin
ret_msg_array := MSG_ARRAY();

ret_msg_array.extend;
ret_msg_array(1) := 'TEST1 --------------1';
ret_msg_array.extend;
ret_msg_array(2) := 'TEST2 --------------2';


END TEST_PROC;

(cfm)
<cfstoredproc procedure="TEST_PROC"
datasource="#XXX_DSN#"
username="#XXX_DUSR#"
password="#XXX_DPSS#"
returncode="yes">
<cfprocparam type="Out" cfsqltype= CF_SQL_VARCHAR variable="RET_MSG_ARRAY">
</cfstoredproc>

[現在発生している状況]

当初、以下のサイトを参考に
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_17212&sliceId=1

<CFPROCPARAM TYPE="out" CFSQLTYPE=CF_SQL_VARCHAR variable=RET_MSG_ARRAY maxrows=20>
と記述して実行しましたが、maxrowsパラメータでエラーが発生してしまいました。
CF8のリファレンスマニュアルを参照したところ、
MXよりmaxrows属性が廃止された記述があり、
maxrowsパラメータを削除しましたが、
cfstoredproc実行行でPLS-00306: 'TEST_PROC'の呼出しで、引数の数または型が正しくありません。のエラーが発生してしまいます。
マニュアルに記載のありましたCF_SQL_ARRAYも試してみましたが、状況は同じでした。

対応方法などご存知でしたら、ご教授いただけないでしょうか。
よろしくお願い致します。

Link | Top | Bottom

katz


一人前


入会日: 05/31/07

投稿数: 140

Re: CF8からOracleのストアドプロシージャの実行について
05/22/08 7:31 AM

手元にOracleが無いのでテストできていないのですが、cfprocresultタグが使えるのではないでしょうか。
http://livedocs.adobe.com/coldfusion/8_jp/htmldocs/help.html?content=Tags_p-q_15.html

Link | Top | Bottom

juripon


新米


入会日: 05/21/08

投稿数: 4

Re: CF8からOracleのストアドプロシージャの実行について
05/22/08 12:53 PM

katz様、返信ありがとうございます。

cfprocresultタグを試してみましたが、残念ながらvarray型の受取は出来ませんでした。
oracleの場合、cfprocresultで受け取れるのはReference Cursor型のみかもしれませんね。


Link | Top | Bottom

Next Page

1

Previous Page

新規投稿

ログイン して返信して下さい。