【问题标题】:Oracle: ORA-00932 when using cast multisetOracle:使用强制转换多集时出现 ORA-00932
【发布时间】:2015-11-24 12:09:50
【问题描述】:

我有以下单独可以正常工作的查询:

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() 返回一个数字,而我将multiset 指定为数字,为什么会出现这个错误?

【问题讨论】:

    标签: oracle oracle10g multiset


    【解决方案1】:

    子查询不返回集合类型而是标量,只使用

    SELECT
        (SELECT count(u.id) FROM users u) AS nr_users,
        (SELECT count(s.id) FROM servers s) AS nr_servers
    FROM dual;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多