zoukankan      html  css  js  c++  java
  • oracle常用sql语句

    1、快速备份表:

    create table p_purchase_order_bak as select * from p_purchase_order

    2、查询db_link详细信息

    select * from dba_db_links

    3、oracle 中如何查看某个表所涉及的存储过程

    SELECT DISTINCT * FROM user_source
    WHERE TYPE = 'PROCEDURE'
    AND upper(text) LIKE '%PS_KL_ABS_002_DATA%';

    4、oracle数据库查看和解除死锁

    select sess.sid, 
    sess.serial#,
    lo.oracle_username, 
    lo.os_user_name, 
    ao.object_name, 
    lo.locked_mode,
    SESS.machine
    from v$locked_object lo, 
    dba_objects ao, 
    v$session sess 
    where ao.object_id = lo.object_id and lo.session_id = sess.sid;

    5、杀死对应的进程

    alter system kill session '738,1429';

    7、ORACLE的闪回功能

    1)查询该时间段这个表的状态

    select * from 表名
    as of timestamp to_timestamp('2018-10-12 9:30:00', 'yyyy-mm-dd hh24:mi:ss');

    2)开启闪回

    alter table 表名 enable row movement;

    3)把表的状态闪回到这个时间段

    flashback table 表名 ?to timestamp TO_TIMESTAMP('2018-10-12 9:30:00', 'yyyy-mm-dd hh24:mi:ss');

    4)用完记得关闭闪回

    alter table 表名 disable row movement

    5)快照频率和保留时间都可以由用户修改。要查看当前的设置,可以使用下面的语句:

    select snap_interval, retention
    from dba_hist_wr_control;

    这些 SQL 语句显示快照每小时采集一次,采集的数据保留 7 天。要修改设置-例如,快照时间间隔为 20 分钟,保留时间为两天-您可以发出以下命令。参数以分钟为单位。

    begin
    dbms_workload_repository.modify_snapshot_settings (
    interval => 20,
    retention => 2*24*60
    );end;

    8、oracle数据库查询当前库中有多少张表

    select table_name from user_tables

    9、索引相关

    1)根据表名,查询一张表的索引

    select * from user_indexes where table_name=upper('表名');

    2)根据索引号,查询表索引字段

    select * from user_ind_columns where index_name=('索引名');

    3)根据索引名,查询创建索引的语句

    select dbms_metadata.get_ddl('INDEX','索引名', ['用户名']) from dual ;
    --['用户名']可省,默认为登录用户

    PS:dbms_metadata.get_ddl还可以得到建表语句,如:

    SELECT DBMS_METADATA.GET_DDL('TABLE','表名', ['用户名']) FROM DUAL ; //取单个表的建表语句,['用户名']可不输入,默认为登录用户
    SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u; //取用户下所有表的建表语句

    10、存储空间可以用如下语句查

    select * from user_segments s where s.BYTES is not null order by s.BYTES desc

    11、查记录条数可以用如下语句

    select *  from user_tables t where t.NUM_ROWS is not null order by t.NUM_ROWS desc

    12、获取当天是当年的第几周

    select to_char(sysdate,'iw') from dual;

    13、获取当天是当月的第几周

    sql语句写法有两种:
    1、SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual; 
    2、SELECT TO_CHAR(SYSDATE,'W') AS "weekOfMon" from dual;

     14、删除用户及其数据

    drop user user_name cascade;
    如果没有删除用户的权限,则可以执行:
    select 'drop table '||table_name||';' from cat where table_type='TABLE'
    将得到的结果全部复制粘贴到另一个sql窗口,执行。

     15、本地oracle数据库快速导出,直接在dos窗口执行如下命令:

    exp username/passward@XE file=d:daochu.dmp full=y
  • 相关阅读:
    MySQL—2、B-Tree,B+Tree,聚集索引,非聚集索引
    transient关键字的作用及使用方法
    通过Executors创建线程池和注意小点
    @Validated校验
    Elasticsearch-head插件的安装与配置
    bayaim_java_入门到精通_听课笔记bayaim_20181120
    bayaim_hadoop2_hdfs_20181107
    bayaim_hadoop1_2.2.0伪分布式搭建
    bayaim_hadoop 开篇 0.0
    bayaim_linux_configure_oracle
  • 原文地址:https://www.cnblogs.com/nietzsche2019/p/11053193.html
Copyright © 2011-2022 走看看