ORACLE常用脚本


--批量授予权限,授予用户chenmh拥有zhang下所有表的增删改查权限。生产批量执行sql
SELECT 'GRANT SELECT,DELETE,UPDATE,INSERT ON '||OWNER||'.'||TABLE_NAME||' TO CHENMH;' FROM dba_tables WHERE OWNER='ZHANG';

--批量收回系统权限,收回用户chenmh的所有系统权限
SELECT 'REVOKE '||PRIVILEGE||' FROM CHENMH;'  FROM DBA_SYS_PRIVS WHERE GRANTEE='CHENMH';


SELECT * from user_source a
 where upper(text) like '%TT_SCHEDULE_STANDARD%';


---含有xx表的存储过程
 select * from dba_source 
where text like '%TT_OUTSTOCK_SOURCE%' 
and type='PROCEDURE'
;

----查找含有xxx语句的存储过程,函数
select OWNER
from all_source
where OWNER = 'PLVSDB'
and TEXT like '%insert into%d values(%'


--查询当前时间创建的表
select * from dba_objects where OBJECT_TYPE = 'TABLE' AND OWNER = 'WMS_GA' AND TO_CHAR(created,'YYYY-MM-DD') ='2023-03-01'

------------------一行拆分为多行 按,号拆分

SELECT ID,
       substr(test1 /*替换拆分的列*/,
              instr(test1 /*替换拆分的列*/, ',', 1, levels.lvl) + 1,
              instr(test1 /*替换拆分的列*/, ',', 1, levels.lvl + 1) -
              (instr(test1 /*替换拆分的列*/, ',', 1, levels.lvl) + 1)) as test1 /*替换拆分的列*/
  FROM (SELECT id,
               ',' || test1 /*替换拆分的列*/
               || ',' AS test1 /*替换拆分的列*/,
               length(test1 /*替换拆分的列*/) -
               nvl(length(REPLACE(test1 /*替换拆分的列*/, ',')), 0) + 1 AS cnt
          FROM table /*替换表*/
        ) a,
       (SELECT rownum AS lvl
          FROM (SELECT MAX(length(test1 /*替换拆分的列*/
                                  || ',') -
                           nvl(length(REPLACE(test1 /*替换拆分的列*/, ',')),
                               0)) max_len
                  FROM table /*替换表*/
                )
        CONNECT BY LEVEL <= max_len) levels
 WHERE levels.lvl <= a.cnt
 order by ID
 


 select distinct name from USER_SOURCE where type = 'PROCEDURE' and upper(text) like '%TT_BALEPACK_DATA%';


SELECT T.OBJECT_NAME,(SELECT BYTES FROM USER_SEGMENTS TS WHERE TS.SEGMENT_TYPE = 'TABLE' AND TS.segment_name = T.OBJECT_NAME ) BYTES
FROM USER_OBJECTS T WHERE OBJECT_TYPE = 'TABLE' ORDER BY CREATED DESC;

SELECT SEGMENT_NAME,SUM(BYTES)/1024/1024 FROM USER_EXTENTS T WHERE T.segment_type = 'TABLE' GROUP BY SEGMENT_NAME;

-----oracle 密码设置永不过期(默认180天)

select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED ;


------------------检索死锁语句
select b.username,b.sid,b.serial#,c.* from v$locked_object a,v$session b,v$sql c where a.session_id = b.sid
and b.SQL_ID = c.sql_id 
--and c.sql_id = ''
AND SQL_TEXT LIKE '%TT_BALEPACK_DATA%'
order by b.logon_time; 


alter system kill session '761,3990';


-------------------查出是哪些进程锁住了指定的对象
Select b.SID,b.SERIAL# From dba_ddl_locks a, v$session b Where a.session_id = b.SID And a.name = ' RE_ANALYSISMODEIMAGE_PKG ';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值