(PHP 5, PECL OCI8 >= 1.1.0)
oci_new_descriptor — カホソキオャ LOB 、「、�、、マ FILE ・ヌ・」・ケ・ッ・�ラ・ソ、魘�ス、ケ、�
・ヌ・」・ケ・ッ・�ラ・ソ、「、�、、マ LOB ・愠ア。シ・ソ、ンサ�、ケ、��ス。シ・ケ、ホハン、キ、゙、ケ。」
oci_connect() 、「、�、、マ oci_pconnect() 、ャハヨ、ケ Oracle タワツウ ID。」
type 、ネ、キ、ニヘュク妤ハテヘ、マ。「 OCI_DTYPE_FILE。「OCI_DTYPE_LOB 、ェ、隍モ OCI_DTYPE_ROWID 、ヌ、ケ。」
タョクキ、ソセ�遉ヒソキ、キ、、 LOB 、「、�、、マ FILE ・ヌ・」・ケ・ッ・�ラ・ソ。「 ・ィ・鬘シサ�、ヒ FALSE 、ヨ、キ、゙、ケ。」
ホ�1 oci_new_descriptor() 、ホホ�
<?php
/* 、ウ、ホ・ケ・ッ・�ラ・ネ、マ HTML ・ユ・ゥ。シ・爨ォ、鬣ウ。シ・�オ、��隍ヲタ゚キラ、オ、�ニ、、、゙、ケ。」
* 、゙、ソ。「$user, $passwor, $table, $where, $commitsize、ャ・ユ・ゥ。シ・爨ォ、�
* ナマ、オ、��ウ、ネ、ートヒ、キ、ニ、、、゙、ケ。」、ウ、ホ・ケ・ッ・�ラ・ネ、マ。「ROWID 、ム、、、ニ
* チェツオ、�ソケヤ、��キ。「$commitsize ケヤヒ隍ヒ・ウ・゚・テ・ネ、キ、゙、ケ。」
* (・悅シ・�ミ・テ・ッ、ャ、ハ、、、ホ、ヌ。「テ擎ユ、キ、ニサネヘム、キ、ニ、ッ、タ、オ、、。」)
*/
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_define_by_name($stmt, "ROWID", $rowid);
oci_execute($stmt);
while (oci_fetch($stmt)) {
$nrows = oci_num_rows($stmt);
$delete = oci_parse($conn, "delete from $table where ROWID = :rid");
oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
oci_execute($delete);
echo "$nrows\n";
if (($nrows % $commitsize) == 0) {
oci_commit($conn);
}
}
$nrows = oci_num_rows($stmt);
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
/* 、ウ、ホ・ケ・ッ・�ラ・ネ、マ LOB ・ォ・鬣爨ヒ・ユ・。・、・�「・テ・ラ・悅シ・ノ、ケ、�网ィ、キ、゙、ケ。」
* LOB・ォ・鬣爨ヒ・「・テ・ラ・悅シ・ノ、ヤ、ヲ、ウ、ホホ网ヒエリ、ケ、�ユ・ゥ。シ・爨マ。「
* <form action="upload.php3" method="post" enctype="multipart/form-data">
* <input type="file" name="lob_upload" />
* ... 、ホ、隍ヲ、ハ、筅ホ、ャサネヘム、オ、�゙、ケ。」
*/
if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
} else {
// $lob_upload 、ヒ、マ。「・「・テ・ラ・悅シ・ノ、オ、�ソ・ユ・。・、・�ホー��ナェ、ハ・ユ・。・、・�セ、ャエ゙、゙、�゙、ケ
// ーツチエ、ヒ・「・テ・ラ・悅シ・ノ、キ、ソ、、セ�遉マ。「・゙・ヒ・螂「・�ホ
// ・ユ・。・、・�「・テ・ラ・悅シ・ノ、ヒエリ、ケ、�皃イセネ、ッ、タ、オ、、
$conn = oci_connect($user, $password);
$lob = oci_new_descriptor($conn, OCI_D_LOB);
$stmt = oci_parse($conn, "insert into $table (id, the_blob)
values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
oci_execute($stmt, OCI_DEFAULT);
if ($lob->savefile($lob_upload)){
oci_commit($conn);
echo "Blob 、ホ・「・テ・ラ・悅シ・ノ、マタョクキ、゙、キ、ソ\n";
}else{
echo "Blob 、「・テ・ラ・悅シ・ノ、ヌ、ュ、゙、サ、ヌ、キ、ソ\n";
}
oci_free_descriptor($lob);
oci_free_statement($stmt);
oci_close($conn);
}
?>
ホ�2 oci_new_descriptor() 、ホホ�
<?php
/* ニ�ホマ・ム・鬣癸シ・ソ、ネ、キ、ニ clob 、゙、� PL/SQL・ケ・ネ・「・ノ・ラ・愠キ。シ・ク・网�
* ・ウ。シ・�ケ、� (PHP 4 >= 4.0.6) 。」
* PL/SQL ・ケ・ネ・「・ノ・ラ・愠キ。シ・ク・网ホ・キ・ー・ヘ・チ・网マシ。、ホトフ、遙」
*
* PROCEDURE save_data
* Argument Name Type In/Out Default?
* ------------------------------ ----------------------- ------ --------
* KEY NUMBER(38) IN
* DATA CLOB IN
*
*/
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>
テ擎ユ:
PHP ・ミ。シ・ク・逾� 5.0.0 ーハチー、ヌ、マ。「ツ螟�熙ヒ ocinewdescriptor() 、ネヘム、キ、ハ、ア、�ミ、ハ、熙゙、サ、」 、゙、タ、ウ、ホフセチー、ネヘム、ケ、�ウ、ネ、ャ、ヌ、ュ。「イシーフク゚エケタュ、ホ、ソ、� oci_new_descriptor() 、リ、ホハフフセ、ネ、キ、ニサト、オ、�ニ、、、゙、ケ、ャ。「 ソ萓ゥ、オ、�゙、サ、」