gpt4 book ai didi

php - 如何在 php 中使用 oci_new_collection?

转载 作者:可可西里 更新时间:2023-10-31 23:30:32 26 4
gpt4 key购买 nike

我正在尝试使用 php 5 调用存储过程,我的问题是如何正确使用“oci_new_collection”函数?我在 php 站点上找不到任何示例。对于需要传递给存储过程的变量之一,它使用此自定义用户定义表类型...

SQL> desc parameter_table
parameter_table TABLE OF PARAMETER_TYPE
Name Null? Type
---------------------- -------- ----------------------------
NAME VARCHAR2(200)
VALUE VARCHAR2(4000)

所以我的猜测是我需要使用 oci_new_collection 来使用这种表类型。我的代码如下...

    $conn = DBConnect::getConnection();
$parameter_table = oci_new_collection($conn, "PARAMETER_TABLE");
//need to do something here....
$parameter_table->append(:name => "owner_id", :value => "3945073");
//

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin reporting.execute_report(:name, :plist, :out); end;");
oci_bind_by_name($stid, ':name', "TRAFFIC_ANALYSIS_CALL_SUMMARY");
oci_bind_by_name($stid, ':plist', $parameter_table);
oci_bind_by_name($stid, ":out", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs); // Execute the REF CURSOR like a normal statement id
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
echo $row[0] . " " . $row[1] . "<br>\n";
}

如何填充 $parameter_table 变量的名称/值字段?

最佳答案

四处搜索 oci_new_collection 的结果并不多,PHP 网站上的文档也没有。

不过,我确实发现在 PHP 源代码附带的 phpt 测试中有一些使用示例。您可以在 PHP 源代码分发的 ext/oci8/tests 目录中找到它们。大约有十几个文件调用了 oci_new_collection

您可以通过逆向工程找到答案。

关于php - 如何在 php 中使用 oci_new_collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490231/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com