首页 > 解决方案 > 在 PHP (Yii2) 中显示 Oracle 抽象数据类型 (ADT)

问题描述

我需要在我的应用程序中使用抽象数据类型(对象、VARRAY)。我设法在我的视图中实现它,但是当我尝试在 PHP(Yii2)中获取数据库数据时,我得到了如下错误:

oci_fetch_all(): ORA-00932: inconsistent datatypes: expected CHAR got ADT inconsistent datatypes: expected CHAR got ADT

ORA-22950: cannot ORDER objects without MAP or ORDER method

有什么方法可以在 PHP 中将数据存储为 ADT(对象、VARRAY、..)?

更新:

我通过查询从数据库中获取数据:

$result = (new Query)
    ->select('p.*')->from('MY_VIEW p')->all();

我的 SQL 文件包含:

CREATE OR REPLACE TYPE my_object AS OBJECT (
    fiedl1 VARCHAR2(255),
    fiedl2 VARCHAR2(255)
);

CREATE OR REPLACE FUNCTION my_function
    RETURN my_object 
    IS
    BEGIN
        RETURN(my_object(FIELD1','FIELD2'));
    END;



create or replace view MY_VIEW as
    SELECT *, my_function() as adt_field FROM ...

标签: phporacleyii2

解决方案


推荐阅读