Oracle:使用强制转换多重集时出现 ORA-00932
Oracle: ORA-00932 when using cast multiset
我有以下单独使用的查询:
SELECT COUNT(u.id) FROM users u);
SELECT COUNT(s.id) FROM servers s);
我想在同一个查询中使用它们,所以我创建了这个:
SELECT CAST( MULTISET( SELECT count(u.id) FROM users u)
AS NUMBER) AS nr_users,
CAST( MULTISET( SELECT count(s.id) FROM servers s)
AS NUMBER) AS nr_servers
FROM dual;
返回错误:
ORA-00932: inconsistent datatypes: expected NUMBER got -00932.
count()
returns 一个数字,我将 multiset
指定为数字,为什么会给我这个错误?
子查询不是return集合类型而是标量,只需使用
SELECT
(SELECT count(u.id) FROM users u) AS nr_users,
(SELECT count(s.id) FROM servers s) AS nr_servers
FROM dual;
我有以下单独使用的查询:
SELECT COUNT(u.id) FROM users u);
SELECT COUNT(s.id) FROM servers s);
我想在同一个查询中使用它们,所以我创建了这个:
SELECT CAST( MULTISET( SELECT count(u.id) FROM users u)
AS NUMBER) AS nr_users,
CAST( MULTISET( SELECT count(s.id) FROM servers s)
AS NUMBER) AS nr_servers
FROM dual;
返回错误:
ORA-00932: inconsistent datatypes: expected NUMBER got -00932.
count()
returns 一个数字,我将 multiset
指定为数字,为什么会给我这个错误?
子查询不是return集合类型而是标量,只需使用
SELECT
(SELECT count(u.id) FROM users u) AS nr_users,
(SELECT count(s.id) FROM servers s) AS nr_servers
FROM dual;