• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle 数据库特殊查询总结

    1. 查询本节点及本节点以下的所有节点:

    select * from table1 c start with c.p_id='0000000' connect by prior c.id=c.p_id and c.use_yn='Y' order by id ; 

    2. 查询节点中所有的层级关系

    SELECT RPAD( ' ', 2*(LEVEL-1), '-' ) || DEPNAME "DEPNAME",CONNECT_BY_ROOT DEPNAME "ROOT",CONNECT_BY_ISLEAF "ISLEAF",LEVEL ,SYS_CONNECT_BY_PATH(DEPNAME, '/') "PATH" FROM DEP START WITH UPPERDEPID IS NULL CONNECT BY PRIOR DEPID = UPPERDEPID;
    1> CONNECT_BY_ROOT 返回当前节点的最顶端节点 
    2> CONNECT_BY_ISLEAF 判断是否为叶子节点,如果这个节点下面有子节点,则不为叶子节点 
    3> LEVEL 伪列表示节点深度 
    4> SYS_CONNECT_BY_PATH函数显示详细路径,并用“/”分隔

    3. 对数据库表结构的操作

    alter table taxasset add (NEXTDATE varchar2(30));
    alter table tax_dep_manager modify FDDBRXM varchar2(120);
    alter table test1 drop column name;

    4. 其他查询

    /*用户被占用的查询*/
    select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username = 'USERS';
    /* 系统数据库相关查询 */
    select * from user_tablespaces;
    select username,default_tablespace from dba_users where username='ZZS'
    select count(*) from user_views; --yb53 zzs 53
    select count(*) from user_tables; --yb413 zzs 413
    --查询表空间使用情况
    SELECT Upper(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
    To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')|| '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",
    F.MAX_BYTES "最大块(M)" FROM (SELECT TABLESPACE_NAME,Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE 
    GROUP BY TABLESPACE_NAME) F,
    (SELECT DD.TABLESPACE_NAME,
    Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
    FROM SYS.DBA_DATA_FILES DD
    GROUP BY DD.TABLESPACE_NAME) D
    WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
    ORDER BY 1
    --查询表空间的free space
    select tablespace_name,
    count(*) AS extends,
    round(sum(bytes) / 1024 / 1024, 2) AS MB,
    sum(blocks) AS blocks
    from dba_free_space
    group BY tablespace_name;
    --查询表空间的总容量
    select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
    --表空间容量查询
    SELECT TABLESPACE_NAME "表空间",
    To_char(Round(BYTES / 1024, 2), '99990.00')
    || '' "实有",
    To_char(Round(FREE / 1024, 2), '99990.00')
    || 'G' "现有",
    To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')
    || 'G' "使用",
    To_char(Round(10000 * USED / BYTES) / 100, '99990.00')
    || '%' "比例"
    FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
    Floor(A.BYTES / ( 1024 * 1024 )) BYTES,
    Floor(B.FREE / ( 1024 * 1024 )) FREE,
    Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED
    FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,
    Sum(BYTES) BYTES
    FROM DBA_DATA_FILES
    GROUP BY TABLESPACE_NAME) A,
    (SELECT TABLESPACE_NAME TABLESPACE_NAME,
    Sum(BYTES) FREE
    FROM DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME) B
    WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)
    ORDER BY Floor(10000 * USED / BYTES) DESC;

    6. loop 的使用

    DECLARE
    con number;
    BEGIN
    con :=1;
    LOOP
    DBMS_OUTPUT.PUT_LINE(con);
    con:=con+1;
    EXIT WHEN con>100;
    END LOOP;
    DBMS_OUTPUT.PUT_LINE('完了');
    END;

    7. 存储过程的书写

    create or replace procedure InsertBranch(tablename in varchar2) as
    counts number;
    num number;
    begin
    create table tempdata (column1 nvarchar2,column2 nvarchar2,column3 nvarchar2);
    insert tempdata 
    num := 1;
    select count(*) into counts from tablename;
    dbms_output.put_line('数据总数'+counts);
    while num = counts loop
    dbms_output.put_line('循环开始:');
    dbms_output.put_line('第'+num+'条数据');
    select column1
    into column1
    from (select tablename.*, rownum as con from tablename)
    where con = num;
    select column2
    into column2
    from (select tablename.*, rownum as con from tablename)
    where con = num;
    select column3
    into column3
    from (select tablename.*, rownum as con from tablename)
    where con = num;
    insert into COM_DEPARTMENT
    values
    (brno,
    brname,
    upbrno,
    upbrno,
    'N',
    null,
    null,
    null,
    '1',
    null,
    'Y',
    '2',
    null,
    null,
    null,
    2,
    'N',
    null,
    null,
    null,
    'N',
    brno,
    upbrno,
    null,
    null,
    null,
    'A',
    'N',
    'N',
    0,
    0,
    3,
    null,
    null,
    null,
    '0',
    '0',
    0,
    null,
    null,
    null,
    null,
    null,
    null,
    null);
    num := num + 1;
    end loop;
    end;

    以上所述是小编给大家介绍的Oracle 数据库特殊查询总结,希望对大家有所帮助!

    您可能感兴趣的文章:
    • Oracle SQL树形结构查询
    • Oracle数据库中的级联查询、级联删除、级联更新操作教程
    • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
    • 讲解Oracle数据库中的数据字典及相关SQL查询用法
    • 一些Oracle数据库中的查询优化建议综合
    • ORACLE错误一览表 方便查询
    • ORACLE 查询被锁住的对象,并结束其会话的方法
    • oracle跨库查询dblink的用法实例详解
    • Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出
    • Oracle中scott表结构与简单查询实例分析
    • mysql、mssql及oracle分页查询方法详解
    上一篇:使用geotools导入shp文件到Oracle数据库时表名带下划线问题的解决方法
    下一篇:Oracle客户端版本及位数(Windows系统)查看方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle 数据库特殊查询总结 Oracle,数据库,特殊,查询,