Zapomenuté / expirované heslo na Oracle (linux)

Je třeba se přihlásit jako root.

Poté se přepnout na oracle usera : su oracle

Připojit se na sqlplus* : sqlplus / as sysdba

a zmenit heslo : alter user sys identified by new_password;

Pro kontrolu seznam useru : select username, account_status, EXPIRY_DATE from dba_users

Pokud je user locknutý stačí odemknout : alter user username account unlock;

Rubriky: Oracle SQL | Komentáře nejsou povolené u textu s názvem Zapomenuté / expirované heslo na Oracle (linux)

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