[PHP-users 12758] OCIBindByNameで -1 の指定について
Yuki Endo
php-users@php.gr.jp
Thu, 23 Jan 2003 14:59:58 +0900
はじめまして、遠藤と申します。
OCIBindByNameで -1 の指定について教えて頂きたくメールしました。
以下のようなPHP文を実行し、OCIBindByName で -1 を指定すると $w_IDSEIKN 変数の内容が表示さ
れません。
OUTパラメータ outIDSEIKN に格納されている値が1文字だった場合は $w_IDSEIKN 変数の内容が表
示されます。
また、OCIBindByName でOUTパラメータの文字数を直接指定しても正常に表示されるのですが、
OCIBindByName
で -1 を指定し、:w_IDSEIKN の現在の長さを 最大長として設定したいです。
何か分かる方がございましたら、アドバイスをお願いします。
・環境
Apache 1.2.27
Redhat 7.3
PHP 4.2.4-dev
Oracle Client 8.1.7
Oracle8 8.0.5.0.0
・PHP(一部)
$lstrSql = "BEGIN ";
$lstrSql .= "ESTGETUIDINFO($lctl_UserId, $lctl_Password, '$w_SysCD', :w_IDSEIKN); ";
$lstrSql .= "END;";
$stmt = OCIParse($lobjCon, $lstrSql);
OCIBindByName ( $stmt, ":w_IDSEIKN", &$w_IDSEIKN, -1 );
OCIExecute ( $stmt );
// 変数内容表示
echo $w_IDSEIKN;
・プロシージャ(一部省略)
CREATE OR REPLACE PROCEDURE ESTGETUIDINFO
(
inUserID in VARCHAR2,
inPassword in VARCHAR2,
inSysCD in VARCHAR2,
outIDSEIKN out VARCHAR2
)
IS
CURSOR CUR_PU IS
SELECT
ID,
PASS,
SYSCD,
IDSEIKN
FROM
PLAN_USER
WHERE
ID = inUserID ;
BEGIN
FOR REC IN CUR_PU LOOP
v_UserID := REC.ID ;
v_Pass := REC.PASS ;
outIDSEIKN := REC.IDSEIKN ;
END LOOP;
・DB(PLAN_USER)(一部)
名前 NULL? 型
------------- -------- -----------------
IDSEIKN VARCHAR2(50)
以上、宜しくお願い致します。
-------------------------
yuki endo
Mail : endo@quest.co.jp
-------------------------