我知道存在与不一致的数据类型相关的问题,但这来自于一个查询。当我们试图访问用其他模式编写的模式上的用户定义的数据类型时,我在数据库端得到了这个错误。例如,我们有xxxtype模式,我们在那里定义了几个UDT。现在,在我们的数据库中,我们使用的是xxxtypes.employeeList,因此它从该行抛出了以下错误。
java.sql.SQLSyntaxErrorException: ORA-00932:不一致的数据类型:预期- got SYSTPzM8RTCHEUy/gQAB/AQBa6A==
编辑:问:为什么会出现这个错误?以及如何克服这一问题?
示例:
create or replace
TYPE InstalmentList IS TABLE OF InstalmentEntry;
create or replace
TYPE InstalmentEntry IS OBJECT
(
reservationinstalment_id NUMBER,
value NUMBER
);我们在xxxtype模式中创建了上面的类型,用于多个客户端。现在,对于客户端的数据库,我们将它用作:
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正在抛出错误,表示它得到了一些不一致的数据类型。
发布于 2013-01-31 14:03:09
类型InstalmentList是InstalmentEntry的嵌套表,因此需要构建一组InstalmentEntry对象来获取列表。
以下查询可用于11.2:
SELECT column_value AS list, rownum AS rownumber
FROM TABLE(powermultiset(
CAST(MULTISET (SELECT InstalmentEntry(1, 1) /*Entry "constructor"*/
FROM dual)
AS InstalmentList)
));https://dba.stackexchange.com/questions/33888
复制相似问题