[PHP-users 9392] Re: PEAR + Oracle でストアドプロシージャを実行できない

php-users@php.gr.jp php-users@php.gr.jp
20 Aug 2002 10:50:11 +0900


お世話になります。
福田と申します。

ご返答ありがとうございます。

> errorNative()メソッドでDBの元エラーが見れるので、
> 切り分けのためdieする前に表示してみてはいかがでしょうか?
> 
> >  if (DB::isError($rc)) {
> >    die("PEAR ERROR: " .$rc->getMessage()."[".$this->conn->errorNative()."]");
> 
> >  } else {

上記コードを追加させていただいたのですが、errorNativeからは
何も返ってきませんでした。
どうやらOracleにqueryが発行される前に、PEAR側で文法エラーと
判断しているようです。
Quoteの問題かと思って、事前にPEARのquote関数を呼んだり、
 exec TEST0001(123456) とやってみたりもしたのですが、相変わ
らずPEAR側に DB Error : syntax error というエラーを返されて
しまいます。
(上記の方法でもSQL*Plusでは実行できます)

何かお気づきの点がございましたら、ご指摘願えると幸いです。

あと一つ疑問に思っているのですが、皆さんはPEARでストアドプロ
シージャを呼ぶ場合、どのようにしてOUTで指定したパラメータを
取得されているのでしょうか。以下のマニュアルを読む限り、PEAR
内にはBind関数が存在しないように思えるのですが…。
http://www.1x1.jp/php/manual_pear/

やはりストアドを使う場合はPEARを用いてコーディングするのは
無理なのでしょうか…。だとすると残念です。

よろしくお願いいたします。