1.使用sys登陆,如何查看哪个用户下的对象占用的磁盘空间最大?
2.执行查询时报错:ORA-01652:无法通过128(在表空间TEMP中)扩展temp段,不知是什么原因?
3.输入:一个字符串“35,36,380”
  要求生成3行数据,如下:
            35
            36
            380
   用sql怎么写?
4.使用select * from dba_users; 得到password值全为空,不知原因?

解决方案 »

  1.   

    3.
    select substr(regexp_substr(',' || '35,36,380', ',([^,]+)', 1, level), 2) as "item"
    from dual
    connect by level <= length(regexp_replace('35,36,380', '[^,]', '')) + 1
      

  2.   

    4.
    SQL> select password from dba_users;PASSWORD
    ------------------------------
    9CC0ECDD8721C8E3
    C89E957D620BC4ED
    3FB8EF9DB538647C
    84B8CBCA4D477FA3
    5AC67B98FA46369E
    88A2B2C183431F00
    B97545C4DD2ABE54
    88D8364765FCE6AF
    4AA37D1393FD7BB5
    4C6D73C3E8B0F0DA
    CE4A36B8E06CA59C
      

  3.   

    ORA-01652这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展;
      

  4.   

    3.
    select replace('35,36,37',',',chr(10)) from dual
      

  5.   

    SQL> select replace('35,36,37',',',chr(10)) from dual;REPLACE(
    --------
    35
    36
    37
    已用时间:  00: 00: 00.01
      

  6.   

    1.
    select O.OWNER, sum(S.BYTES)
    from dba_objects o, dba_segments s
    where O.OBJECT_NAME = S.SEGMENT_NAME
    and O.OWNER = S.OWNER
    group by O.OWNER
    order by 2 desc
      

  7.   

    1.使用sys登陆,如何查看哪个用户下的对象占用的磁盘空间最大?
    select segment_name,sum(bytes)/1024/1024 a from dba_extents
    group by segment_name
    order by a desc2.执行查询时报错:ORA-01652:无法通过128(在表空间TEMP中)扩展temp段,不知是什么原因?
    应该是你的TEMP空间不够了,试着扩大一下容量,再实施看。
      

  8.   


    --chr(10)为换行符号类似<br>(php)
    3.
    SQL> select replace('35,36,380',',',chr(10)) from dual;REPLACE('
    ---------
    35
    36
    3804.
    SQL> select username,password from dba_users;USERNAME                       PASSWORD
    ------------------------------ ------------------
    MDDATA                         DF02A496267DEE66
    DIP                            CE4A36B8E06CA59C
    SCOTT                          F894844C34402B67
    TSMSYS                         3DF26A8B17D0F29F
    DBSNMP                         9CF003410A739C6E
      

  9.   

    4.使用select * from dba_users; 得到password值全为空,不知原因?
    你可能是用的11g,11g提高了安全性,已经不在dba_users视图中显示密码,
    但是你可以直接查询底层字典表来显示密码
    SELECT NAME, password FROM sys.user$;
      

  10.   

     select replace('35,36,37',',',chr(10)) from dual;REPLACE(
    --------
    35
    36
    37
    用逗号来分隔文本,这个思路很强~~~赞一个