Oracle 数据库具有以下形式的集合:
TYPE error_list_t IS TABLE OF SYS.ODCIVarchar2List INDEX BY varchar2(30)
填写过程如下:
procedure set(name varchar2, value varchar2)
error_list error_list_t;
begin
if not error_list.exists(name) then
error_list(name) := SYS.ODCIVarchar2List();
end if;
error_list(name).extend;
error_list(name)(error_list(name).count) := value;
end set;
有必要从 PHP 中获取这个集合,保存name.
此外,该项目使用Doctrine2 ORM。如果有机会使用它,那将是完美的。
oci_bind_array_by_name函数的文档没有提到数组的替换,既不是二维的,也不是与字符键相关的。所以获取这样的数组作为参数或返回值是行不通的。
最简单的解决方案是将此数组作为常规查询的ResultSet。您将需要添加一个管道函数及其相应的数据类型。这是一个工作示例:
调用和结果将如下所示: