php - 在 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 ...
解决方案
推荐阅读
- python - SQLAlchemy:在回滚无效事务之前无法重新连接
- visual-studio-2019 - Visual Studio 2019 Blazor 客户端选项不可见
- excel - Excel中的中值IF
- python - Ansible:为 jinja2 转义双花括号(在引用的表达式中)
- python-3.x - groupby 的 cython 实现因 NameError 失败
- jquery - 缓和不起作用。它等待持续时间并运行动画
- python - 如何修复“TypeError:不能在类似字节的对象上使用字符串模式”?
- outlook - 在 python 3 中更改发件人帐户 ms Outlook
- git - 执行 git diff -- ':(exclude)package-lock.json' 时没有效果
- apache-spark - 在哪些情况下会跳过 DAG 的阶段?