下面的SQL报告ORA-00932
SELECT V.USERNAME,
       V.TABLESPACE_NAME,
       CASE V.MAX_BYTES
          WHEN -1 THEN
           -1
          ELSE
           TO_CHAR(MAX_BYTES / 1024 / 1024 )
       END as "Q"
FROM   DBA_TS_QUOTAS V;下面的就没问题
SELECT V.USERNAME,
       V.TABLESPACE_NAME,
       CASE V.MAX_BYTES
          WHEN -1 THEN
           -1
          ELSE
           MAX_BYTES / 1024 / 1024 
       END as "Q"
FROM   DBA_TS_QUOTAS V;

解决方案 »

  1.   

    你 case when 两个分支类型不一致一个是 -1 数值型,一个 to_char 你可以选择把 -1 改成 '-1' 应该就没问题了
      

  2.   

    把-1也to_char一下
    SELECT V.USERNAME,
      V.TABLESPACE_NAME,
      CASE V.MAX_BYTES
      when -1 then
      to_char(-1)
      else
      to_char(MAX_BYTES / 1024 / 1024 )
      END as "Q"
    FROM DBA_TS_QUOTAS V;