我知道存在与不一致的数据类型相关的问题,但它来自查询。当我们尝试访问以其他模式编写的模式上的用户定义数据类型时,我在数据库端收到此错误。例如,我们有 xxxtypes 模式,我们在那里定义了几个 UDT。现在在我们的数据库中,我们正在使用 xxxtypes.employeeList,因此它从该行抛出以下错误。
java.sql.SQLSyntaxErrorException: ORA-00932: 数据类型不一致:预期 - 得到 SYSTPzM8RTCHEUy/gQAB/AQBa6A==
编辑:问:为什么会出现这个错误?以及如何克服这个?
例子:
create or replace
TYPE InstalmentList IS TABLE OF InstalmentEntry;
create or replace
TYPE InstalmentEntry IS OBJECT
(
reservationinstalment_id NUMBER,
value NUMBER
);
我们在 xxxtypes 模式中创建了上面的类型,用于多个客户端。现在对于客户的数据库,我们将其用作:
SELECT
column_value AS list,
rownum AS rownumber
FROM
TABLE(
CAST(
powermultiset(
CAST(
MULTISET(
SELECT
rsv_int.reservationinstalment_id,
rsv_int.value
FROM reservationinstalment rsv_int
WHERE
rsv_int.reservation_id = p_reservation_id
AND
rsv_int.payer_type = p_payer_type
AND
rsv_int.type <> 'r'
)
AS
**xxxtypes.InstalmentList**
)
)
AS
InstalmentListList
)
)
) combinations
现在 xxxtypes.InstalmentList 抛出错误,说它得到了一些不一致的数据类型。
该类型
InstalmentList
是 的嵌套表InstalmentEntry
,因此需要构建一组InstalmentEntry
对象来获取列表。以下查询适用于 11.2: