Script pro oříznutí textu dle opakovaného znaku (_)

select substr('RAZ_DVA_TRI_CTYRI_PET_SEST_SEDM_OSM',1,instr('RAZ_DVA_TRI_CTYRI_PET_SEST_SEDM_OSM','_',1,4)-1) AS orez from dual
Rubriky: Oracle SQL, User scripts | Komentáře nejsou povolené u textu s názvem Script pro oříznutí textu dle opakovaného znaku (_)

Scripty pro práci s datumem a časem

— Poslední den předchozího měsíce

 select to_char( ADD_MONTHS((LAST_DAY(SYSDATE)),-1),'yyyymmdd') as last_day_before from dual

– Výpis dnů od 1.1.2017 do 24.1.2017

SELECT   to_date('1.1.2017','dd.mm.yyyy')+(LEVEL-1) DATUM
FROM DUAL
CONNECT BY LEVEL <= to_date('24.1.2017','dd.mm.yyyy') - to_date('1.1.2017','dd.mm.yyyy') + 1

— Výpis dnů v aktuálním měsíci

SELECT   TO_CHAR (TRUNC (SYSDATE, 'MM'), 'YYYYMMDD')+(LEVEL-1) DATUM
FROM DUAL
CONNECT BY LEVEL < to_char(trunc(last_day(sysdate)),'dd')+1

— Převod vteřin na formát hh:mm:ss

select to_char(to_date(3661,'sssss'),'hh24:mi:ss') as time from dual

— Zjištění datumu poslední neděle

select to_char(next_day(trunc(sysdate,'IW'),'NEDĚLE')-7,'yyyymmdd') as last_sunday from dual

— Zjištění počátku roku dle uběhlého celého měsíce – pro měsíční souhrn (reportů)

select trunc((TRUNC(to_date('sysdate'),'month')-1),'year') as rok from dual /* 1.1.-31.1. hodi lonsky rok, 1.2.+ hodi aktualni rok */
Rubriky: Oracle SQL, User scripts | Komentáře nejsou povolené u textu s názvem Scripty pro práci s datumem a časem

Script pro vymazání duplikací v tabulce dle zadaných podmínek

delete FROM tabulka_jedna a
WHERE EXISTS( SELECT 1
FROM tabulka_jedna b
WHERE a.cislo = b.cislo
AND a.login_name = b.login_name
and a.datum=b.datum
and a.platba=b.platba
AND a.rowid < b.rowid )
Rubriky: Oracle SQL, User scripts | Komentáře nejsou povolené u textu s názvem Script pro vymazání duplikací v tabulce dle zadaných podmínek

Script pro výpis aktuálního přístupu k objektům

select owner,object,type,con_id from V$ACCESS 
where owner not in ('SYS','DBSNMP','GSMADMIN_INTERNAL','PUBLIC','SYSTEM','XDB')
group by owner,object,type,con_id
order by owner, object
Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro výpis aktuálního přístupu k objektům

Script pro zjištění struktury tabulky (clob)

SELECT dbms_metadata.get_ddl( 'TABLE', 'TABLE_NAME' ) FROM DUAL
Rubriky: Oracle SQL, User scripts | Komentáře nejsou povolené u textu s názvem Script pro zjištění struktury tabulky (clob)

Script pro zjištění počtu aktuálních sessions

select 
COUNT(*)AS POCET, sss.sid, blk.used_ublk, s.OSUSER, s.MACHINE, s.USERNAME, s.MODULE, s.ACTION, s.SQL_ID, MIN(s.LOGON_TIME), MAX(s.LOGON_TIME)
from v$session s
LEFT JOIN
(
SELECT ss.SID, ss.SQL_ID
from v$session SS
where ss.username IS not NULL
AND ss.STATUS = 'ACTIVE'
AND ss.PROGRAM IN ('osh.exe', 'uvsh.exe') -- win_server
) sss
ON s.SQL_ID = sss.sql_id
LEFT JOIN (select p.sid, s.used_ublk from v$transaction s, v$session p where s.addr=p.taddr) blk
ON blk.sid = sss.sid

where username is not NULL
AND s.STATUS = 'ACTIVE'
GROUP BY sss.sid, blk.used_ublk, s.USERNAME, s.OSUSER, s.MACHINE,s.MODULE, s.ACTION, s.SQL_ID
order by COUNT(*) DESC, MAX(s.LOGON_TIME)
Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro zjištění počtu aktuálních sessions

Script pro historii spuštěných statistik nad tabulkou

select * from ALL_TAB_STATS_HISTORY where table_name='TABLE_NAME'
order by stats_update_time desc
Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro historii spuštěných statistik nad tabulkou

Script pro zjištění obsazení TEMP space

SELECT b.tablespace,
ROUND(((b.blocks*p.value)/1024/1024),2)||'M' AS temp_size,
a.inst_id as Instance,
a.sid||','||a.serial# AS sid_serial,
NVL(a.username, '(oracle)') AS username,
a.OSUSER,
a.program,
a.status,
a.sql_id
FROM gv$session a,
gv$sort_usage b,
gv$parameter p
WHERE p.name = 'db_block_size'
AND a.saddr = b.session_addr
AND a.inst_id=b.inst_id
AND a.inst_id=p.inst_id
ORDER BY a.sid||','||a.serial#,b.tablespace, b.blocks
Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro zjištění obsazení TEMP space

Script pro zjištění informací o waiting sessions

select  nvl(s.username,s.program) username
,s.OSUSER
, s.sid sid
, s.serial# serial
, s.sql_hash_value sql_hash_value
, substr(decode(w.wait_time, 0, w.event, 'ON CPU'),1,40) event
, w.P1TEXT,w.p1 p1
, w.P2TEXT,w.p2 p2
, w.P3TEXT,w.p3 p3
, w.WAIT_CLASS
, w.STATE
from v$session s
, v$session_wait w
where w.sid=s.sid
and s.status='ACTIVE'
and s.type='USER'
Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro zjištění informací o waiting sessions

Script pro zjistění aktuálně locknutých objektů/tabulek

select
substr(a.os_user_name,1,15) "OS User",
substr(a.oracle_username,1,8) "DB User",
substr(b.owner,1,8) "Schema",
substr(b.object_name,1,20) "Object Name",
substr(b.object_type,1,10) "Type",
substr(c.segment_name,1,15) "RBS",
substr(d.used_urec,1,12) "# of Records",
e.sid,
e.serial#,
case when a.locked_mode='1' then 'Null'
when a.locked_mode='2' then 'Concurrent Read'
when a.locked_mode='3' then 'Concurrent Write'
when a.locked_mode='4' then 'Protected Read'
when a.locked_mode='5' then 'Protected Write'
when a.locked_mode='6' then 'Exclusive'
else ' '
end as locked_desc
,v.type ,vt.DESCRIPTION as LOCK_INFO /* pro lock info */
from v$locked_object a, dba_objects b, dba_rollback_segs c, v$transaction d, v$session e ,v$lock v, V$LOCK_TYPE vt /* pro lock info */
where
a.object_id = b.object_id
and
a.xidusn = c.segment_id
and
a.xidusn = d.xidusn
and
a.xidslot = d.xidslot
and
d.addr = e.taddr
and v.sid=e.sid and v.type=vt.type /* pro lock info */
group by a.os_user_name,a.oracle_username,b.owner,b.object_name,b.object_type,c.segment_name,d.used_urec,e.sid,
e.serial#,a.locked_mode,v.type ,vt.DESCRIPTION
order by object_name

Rubriky: Admin scripts, Oracle SQL | Komentáře nejsou povolené u textu s názvem Script pro zjistění aktuálně locknutých objektů/tabulek