我的上下文:我正在开发和支持一些php应用程序,通过Oracle函数/过程和视图使用Billing APP API。 由于计费API的变化,我有时会更新我的代码。 但上次更新结算api更新已全部打破= \
API开发人员已将所有视图添加到table-type列中。这是它的定义:
CREATE OR REPLACE FORCE VIEW "AIS_NET"."SI_V_SUBJECTS" ... AS
SELECT N_SUBJECT_ID,
.....
CAST(
MULTISET(
SELECT VC_CODE
FROM SI_V_ENTITIES_TAGS
WHERE N_ENTITY_ID = S.N_SUBJECT_ID
AND N_ENTITY_TYPE_ID = SYS_CONTEXT('CONST', 'ENTITY_TYPE_Subject')
ORDER BY N_LINE_NO) AS TAGS) T_TAGS,
.....
当我想要获取
时select * from SI_V_SUBJECTS
我收到了一个错误:
oci_fetch_assoc(): ORA-00932: inconsistent datatypes: expected CHAR got TABLE
如果我定义没有T_TAGS的列,例如“选择N_SUBJECT_ID,VC_CODE FROM SI_V_SUBJECTS”,那么一切都很好。
但我不想查看我的所有代码并定义要选择的字段。
也许有一些使用php / oci8获取表类型列的提示/技巧?
谢谢你,抱歉我的英文不好!