投稿

10月, 2013の投稿を表示しています

久々の挫折…

PHP5.3 と Oracle10g でコーディングをしていまして… PL/SQLでFunction(package)を作り、戻り値(またはOUT)で配列を取得したかった… でも出来なかった。 はぁ…もうダメ。誰か教えて… PHP側: // DBコネクションの作成 $db_conn = oci_connect($ORA_UID, $ORA_PWD, $ORA_CONSTR); $sql = BEGIN :ret := FIT_BOM_削除リストA.GET_LIST(:code, :kPattern, :message); END; A; $ret = oci_new_collection($db_conn, 'DBMS_SQL.VARCHAR2_TABLE'); $stmt = oci_parse($db_conn, $sql); oci_bind_array_by_name($stmt, ":ret", $ret, 99, -1, SQLT_CHR); oci_bind_by_name($stmt, ':code', $code, -1, SQLT_CHR); oci_bind_by_name($stmt, ':kPattern', $kPattern, -1, SQLT_NUM); oci_bind_by_name($stmt, ':message', $message, -1, SQLT_CHR); oci_execute($stmt); var_dump($ret); PL/SQL側:(削りすぎて無ければ…) CREATE OR REPLACE PACKAGE リスト作成 IS TYPE リスト IS VARRAY(999) OF VARCHAR2(42); FUNCTION GET_LIST( P_コード IN VARCHAR2, P_パターン IN NUMBER, P_メッセージ OUT VARCHAR2 )RETURN リスト; END リスト作成; / CREATE OR REPLACE PACK...