2009-04-23 11 views
1

私は、入力パラメータとしてTABLE OF TYPE NUMBER(10)をとるPL/SQLプロシージャを使用しています。Oracle PL/SQLコールでのPHP配列バインド

今、phpから呼び出そうとしています。バインディングはエラーを発生させず、すべて正常です。しかし、私のバインディングの内容は、私が期待したものではありません!私は配列をバインドたとえば

:PL/SQL側では配列(19465,19467) は、私は、この値の種類を取得:-2.50000000000000000000000000000000E + 107

を何かが間違って精密に起こるように見えます/長さ/タイプ?私の縛りの中で、私は迷っています。

私のバインディングは次のとおりです。 oci_bind_array_by_name($ stmt、 ':name'、$ array、-1、SQLT_NUM);

+0

これはどれですか? 2015年には同じ問題が発生しています。 –

答えて

0

「SQLT_NUM」の代わりに「SQLT_INT」を使用してください。 INTEGERはNUMBER(38)の同義語ですが、SQLT_NUMは機能しません。 SQLT_INTへ [2006年10月27日8:37 UTC] [email protected] 変更SQLT_NUM、それが正常に動作します それら二つのバインドタイプ間OCI8のための違いはありません(彼らは、次のとおりです。

(PHPのバグレポートから。 も同じ方法で同じ関数で処理されるため)、 OCIライブラリ自体に若干の違いがあるはずです。)

+0

私はそれを試みたが、それは残念なことに何も変わらなかった。 –