首页 > 数据库技术 > 详细

oracle常用sql语句

时间:2019-06-19 18:53:25      阅读:120      评论:0      收藏:0      [点我收藏+]

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;

 

oracle常用sql语句

原文:https://www.cnblogs.com/nietzsche2019/p/11053193.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!