[PHP-users 24000] PHP→ORACLEへの配列受渡
八木 智弘
Yagi.Tomohiro @ toshiba-sol.co.jp
2004年 12月 27日 (月) 18:42:47 JST
いつも利用させて頂いております。八木と申します。
現在、あるプロジェクトで
「画面からEXCELをアップロードし
取得したデータをORACLEにINSERTする
処理」を作成しております。
EXCELからデータを取得する部分は
Spreadsheet_excel_readerといった
ライブラリを使用し、できたのですが
取得した配列データをORACLEに
渡せません。
「SQLの発行は1回にしたい。」
という要望があり、
配列を直接ORACLEに渡したいのですが
どうもうまくいきません。
なにかよい知恵がありましたら、
教えていただけないでしょうか。
・環境
Solaris 5.8
Oracle 8.1.7
PHP 4.3.3
・データ(test.xls)
1 八木
2 智弘
3 TEST
PL/SQL:
TYPE v_array is TABLE OF varchar2(8000) INDEX BY BINARY_INTEGER;
CREATE OR REPLACE procedure proc_place
(P_ID in out v_array,
P_NAME in out v_array)
is
begin
for i in 1..P_ID.count loop
DBMS_OUTPUT.PUT_LINE(P_ID(i));
DBMS_OUTPUT.PUT_LINE(P_NAME(i));
END LOOP;
end;
PHP:
<?php
//oracleログイン(excelaryにデータは格納)
for($i=0;$i<=$row-1;$i++){
$WK_ID[$i+1] =$excelary[$i][1];
$WK_NAME[$i+1] =$excelary[$i][2];
}
$conn1=ora_logon(ユーザ@SID,パスワード);
$sql="BEGIN proc_place(:WK_ID,:WK_NAME);END;";
$cur1= ora_open($conn1);
$ret1= ora_parse($cur1,$sql);
ora_bind($cur1,"WK_ID",":WK_ID",1000);
ora_bind($cur1,"WK_NAME",":WK_NAME",1000);
ora_exec($cur1);
//oracleログアウト
Ora_Close($cur1);
Ora_Logoff($conn1);
?>
八木 智弘
----
八木 智弘 Yagi.Tomohiro @ toshiba-sol.co.jp
*--------------------------------------------*
株式会社システムエグゼ
SI推進部 八木 智弘
◆◆住所と電話番号が変わりました◆◆
〒104-0033 東京都中央区新川2-3-1
セントラルスクエア2F
TEL:03-5542-5591 FAX:03-5542-5594
*--------------------------------------------*
----
八木 智弘 Yagi.Tomohiro @ toshiba-sol.co.jp
*--------------------------------------------*
株式会社システムエグゼ
SI推進部 八木 智弘
◆◆住所と電話番号が変わりました◆◆
〒104-0033 東京都中央区新川2-3-1
セントラルスクエア2F
TEL:03-5542-5591 FAX:03-5542-5594
*--------------------------------------------*
----
八木 智弘 Yagi.Tomohiro @ toshiba-sol.co.jp
*--------------------------------------------*
株式会社システムエグゼ
SI推進部 八木 智弘
◆◆住所と電話番号が変わりました◆◆
〒104-0033 東京都中央区新川2-3-1
セントラルスクエア2F
TEL:03-5542-5591 FAX:03-5542-5594
*--------------------------------------------*
PHP-users メーリングリストの案内