mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-18 13:57:03 +08:00
68 lines
20 KiB
HTML
68 lines
20 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||
<html>
|
||
<head>
|
||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
||
<title>初始化一个新的空 LOB 或 FILE 描述符</title>
|
||
</head>
|
||
<body class="docs"><div id="layout">
|
||
<div id="layout-content"><div id="function.oci-new-descriptor" class="refentry">
|
||
<div class="refnamediv">
|
||
<h1 class="refname">oci_new_descriptor</h1>
|
||
<p class="verinfo">(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)</p><p class="refpurpose"><span class="refname">oci_new_descriptor</span> — <span class="dc-title">初始化一个新的空 LOB 或 FILE 描述符</span></p>
|
||
|
||
</div>
|
||
<div class="refsect1 unknown-unknown-seealsq" id="refsect1-function.oci-new-descriptor-unknown-unknown-seealsq">
|
||
<h3 class="title">说明</h3>
|
||
<div class="methodsynopsis dc-description">
|
||
<span class="methodname"><strong>oci_new_descriptor</strong></span>
|
||
( <span class="methodparam"><span class="type">resource</span> <code class="parameter">$connection</code></span>
|
||
[, <span class="methodparam"><span class="type">int</span> <code class="parameter">$type</code></span>
|
||
] ) : <span class="type"><span class="type OCI-Lob">OCI-Lob</span></span></div>
|
||
|
||
<p class="para rdfs-comment">
|
||
<span class="function"><strong>oci_new_descriptor()</strong></span> 分配资源以保存描述符或
|
||
LOB 定位器。有效的 <code class="parameter">type</code> 值是:<strong><code>OCI_D_FILE</code></strong>,<strong><code>OCI_D_LOB</code></strong>
|
||
以及 <strong><code>OCI_D_ROWID</code></strong>。
|
||
</p>
|
||
<p class="para">
|
||
<div class="example" id="example-2447">
|
||
<p><strong>Example #1 <span class="function"><strong>oci_new_descriptor()</strong></span> 例子</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">/* This script is designed to be called from a HTML form.<br /> * It expects $user, $password, $table, $where, and $commitsize<br /> * to be passed in from the form. The script then deletes<br /> * the selected rows using the ROWID and commits after each<br /> * set of $commitsize rows. (Use with care, there is no rollback)<br /> */<br /> </span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"select rowid from </span><span style="color: #0000BB">$table</span><span style="color: #DD0000"> </span><span style="color: #0000BB">$where</span><span style="color: #DD0000">"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$rowid </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_new_descriptor</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_D_ROWID</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_define_by_name</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #DD0000">"ROWID"</span><span style="color: #007700">, </span><span style="color: #0000BB">$rowid</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /> while (</span><span style="color: #0000BB">oci_fetch</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">)) {<br /> </span><span style="color: #0000BB">$nrows </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_num_rows</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$delete </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"delete from </span><span style="color: #0000BB">$table</span><span style="color: #DD0000"> where ROWID = :rid"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_bind_by_name</span><span style="color: #007700">(</span><span style="color: #0000BB">$delete</span><span style="color: #007700">, </span><span style="color: #DD0000">":rid"</span><span style="color: #007700">, </span><span style="color: #0000BB">$rowid</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_B_ROWID</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$delete</span><span style="color: #007700">);<br /> echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$nrows</span><span style="color: #DD0000">\n"</span><span style="color: #007700">;<br /> if ((</span><span style="color: #0000BB">$nrows </span><span style="color: #007700">% </span><span style="color: #0000BB">$commitsize</span><span style="color: #007700">) == </span><span style="color: #0000BB">0</span><span style="color: #007700">) {<br /> </span><span style="color: #0000BB">oci_commit</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /> }<br /> }<br /> </span><span style="color: #0000BB">$nrows </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_num_rows</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /> echo </span><span style="color: #DD0000">"</span><span style="color: #0000BB">$nrows</span><span style="color: #DD0000"> deleted...\n"</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">oci_free_statement</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">/* This script demonstrates file upload to LOB columns<br /> * The formfield used for this example looks like this<br /> * <form action="upload.php" method="post" enctype="multipart/form-data"><br /> * <input type="file" name="lob_upload" /><br /> * ...<br /> */<br /> </span><span style="color: #007700">if (!isset(</span><span style="color: #0000BB">$lob_upload</span><span style="color: #007700">) || </span><span style="color: #0000BB">$lob_upload </span><span style="color: #007700">== </span><span style="color: #DD0000">'none'</span><span style="color: #007700">){<br /></span><span style="color: #0000BB">?><br /></span><form action="upload.php" method="post" enctype="multipart/form-data"><br />Upload file: <input type="file" name="lob_upload" /><br /><br /><input type="submit" value="Upload" /> - <input type="reset" value="Reset" /><br /></form><br /><span style="color: #0000BB"><?php<br /> </span><span style="color: #007700">} else {<br /><br /> </span><span style="color: #FF8000">// $lob_upload contains the temporary filename of the uploaded file<br /><br /> // see also the features section on file upload,<br /> // if you would like to use secure uploads<br /><br /> </span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$lob </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_new_descriptor</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_D_LOB</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"insert into </span><span style="color: #0000BB">$table</span><span style="color: #DD0000"> (id, the_blob)<br /> values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_bind_by_name</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #DD0000">':the_blob'</span><span style="color: #007700">, </span><span style="color: #0000BB">$lob</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_B_BLOB</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_DEFAULT</span><span style="color: #007700">);<br /> if (</span><span style="color: #0000BB">$lob</span><span style="color: #007700">-></span><span style="color: #0000BB">savefile</span><span style="color: #007700">(</span><span style="color: #0000BB">$lob_upload</span><span style="color: #007700">)){<br /> </span><span style="color: #0000BB">oci_commit</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /> echo </span><span style="color: #DD0000">"Blob successfully uploaded\n"</span><span style="color: #007700">;<br /> }else{<br /> echo </span><span style="color: #DD0000">"Couldn't upload Blob\n"</span><span style="color: #007700">;<br /> }<br /> </span><span style="color: #0000BB">oci_free_descriptor</span><span style="color: #007700">(</span><span style="color: #0000BB">$lob</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_free_statement</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_close</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /> }<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="example" id="example-2448">
|
||
<p><strong>Example #2 <span class="function"><strong>oci_new_descriptor()</strong></span> 例子</strong></p>
|
||
<div class="example-contents">
|
||
<div class="phpcode"><pre><span style="color: #000000">
|
||
<span style="color: #0000BB"><?php<br /> </span><span style="color: #FF8000">/* Calling PL/SQL stored procedures which contain clobs as input<br /> * parameters (PHP 4 >= 4.0.6).<br /> * Example PL/SQL stored procedure signature is:<br /> *<br /> * PROCEDURE save_data<br /> * Argument Name Type In/Out Default?<br /> * ------------------------------ ----------------------- ------ --------<br /> * KEY NUMBER(38) IN<br /> * DATA CLOB IN<br /> *<br /> */<br /><br /> </span><span style="color: #0000BB">$conn </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_connect</span><span style="color: #007700">(</span><span style="color: #0000BB">$user</span><span style="color: #007700">, </span><span style="color: #0000BB">$password</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$stmt </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_parse</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #DD0000">"begin save_data(:key, :data); end;"</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$clob </span><span style="color: #007700">= </span><span style="color: #0000BB">oci_new_descriptor</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_D_LOB</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_bind_by_name</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #DD0000">':key'</span><span style="color: #007700">, </span><span style="color: #0000BB">$key</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_bind_by_name</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #DD0000">':data'</span><span style="color: #007700">, </span><span style="color: #0000BB">$clob</span><span style="color: #007700">, -</span><span style="color: #0000BB">1</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_B_CLOB</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$clob</span><span style="color: #007700">-></span><span style="color: #0000BB">write</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_execute</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">, </span><span style="color: #0000BB">OCI_DEFAULT</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">oci_commit</span><span style="color: #007700">(</span><span style="color: #0000BB">$conn</span><span style="color: #007700">);<br /> </span><span style="color: #0000BB">$clob</span><span style="color: #007700">-></span><span style="color: #0000BB">free</span><span style="color: #007700">();<br /> </span><span style="color: #0000BB">oci_free_statement</span><span style="color: #007700">(</span><span style="color: #0000BB">$stmt</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span>
|
||
</span>
|
||
</pre></div>
|
||
</div>
|
||
|
||
</div>
|
||
</p>
|
||
<p class="para">
|
||
<span class="function"><strong>oci_new_descriptor()</strong></span> 如果出错返回 <strong><code>FALSE</code></strong>。
|
||
</p>
|
||
<blockquote class="note"><p><strong class="note">Note</strong>:
|
||
<p class="para">
|
||
在 PHP 5.0.0 之前的版本必须使用 <span class="function"><a href="ocinewdescriptor.html" class="function">ocinewdescriptor()</a></span>
|
||
替代本函数。该函数名仍然可用,为向下兼容作为
|
||
<span class="function"><strong>oci_new_descriptor()</strong></span> 的别名。不过其已被废弃,不推荐使用。
|
||
</p>
|
||
</p></blockquote>
|
||
</div>
|
||
|
||
</div></div></div></body></html> |