Oracle

ALTER SESSION SET CURRENT_SCHEMA=CBX;
--To check all schema in DB
select username from sys.dba_users;

--check DB links
select * from all_db_links

--disable password verification
alter profile default limit password_verify_function null;

--enable password verification
alter profile default limit password_verify_function verify_function_11g;

--update user password
alter user CBX_CONNECT identified by p;

--check constraints
SELECT * user_constraints where table_name='CNT_PROJECT' and CONSTRAINT_NAME='PROJECT_UNIQUE';

--check column
SELECT * from cols where table_name = 'CNT_ITEM'  and column_name = 'LDL_LICENSE_FEE';

--To check table size

SELECT segment_name AS TABLENAME,BYTES/1024/1024||'MB' FROM user_segments WHERE segment_name='CNT_RFQ';

--after delete statement, need run below statement firstly, and then check size again
alter table my_objects enable row movement;
alter table my_objects shrink space;

--To check DB lock

SELECT A.OWNER, A.OBJECT_NAME, B.XIDUSN, B.XIDSLOT, B.XIDSQN,
         B.SESSION_ID, B.ORACLE_USERNAME, B.OS_USER_NAME, B.PROCESS,
         B.LOCKED_MODE, C.MACHINE, C.STATUS, C.SERVER, C.SID,
         C.SERIAL#, C.PROGRAM
    FROM ALL_OBJECTS A, V$LOCKED_OBJECT B, SYS.GV_$SESSION C
   WHERE (A.OBJECT_ID = B.OBJECT_ID) AND (B.PROCESS = C.PROCESS)
ORDER BY 1, 2;

--To kill session
alter system kill session '426, 4887';

--To check current DB SQL running status

SELECT c.STATUS,
         time_remaining / 60,
         sql_text SQL,
         machine,
         MESSAGE
    FROM V$SESSION_LONGOPS a
         INNER JOIN v$sql b ON a.sql_hash_value = b.hash_value
         INNER JOIN v$session c ON a.sid = c.sid
   WHERE sofar < totalwork
ORDER BY time_remaining DESC;

--To delete huge data table

set SERVEROUTPUT ON;
DECLARE
    I_COMMIT PLS_INTEGER := 100000;
    I_DELETED_ROW_COUNT PLS_INTEGER := 0;
    I_ITERATION PLS_INTEGER := 0;
BEGIN
    DBMS_OUTPUT.PUT_LINE('Start delete of LDL_ITEM_REQUIREMENT_AND_STYLE');
LOOP
    DELETE FROM LDL_ITEM_REQUIREMENT_AND_STYLE
    WHERE ROWNUM <= I_COMMIT;
    I_DELETED_ROW_COUNT := I_DELETED_ROW_COUNT + SQL%ROWCOUNT;
    I_ITERATION := I_ITERATION + 1;
    DBMS_OUTPUT.PUT_LINE(to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') || ' Iteration ' || I_ITERATION || ': ' || TRIM(TO_CHAR(I_DELETED_ROW_COUNT, '999999999999')) || ' rows deleted');
    IF SQL%ROWCOUNT = 0 THEN
        COMMIT;
        EXIT;
    END IF;
    COMMIT;
END LOOP;
DBMS_OUTPUT.PUT_LINE('Total: ' || TRIM(TO_CHAR(I_DELETED_ROW_COUNT, '999999999999')) || ' rows deleted');
DBMS_OUTPUT.PUT_LINE('End delete of LDL_ITEM_REQUIREMENT_AND_STYLE');
END;
/

About date

--gap of minuite ceil((date1 - date2) * 24 * 60 )

select ceil((To_date('2015-05-11 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2015-04-11 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60  )  FROM DUAL;

--gap of hour ceil((date1 - date2) * 24 )

select ceil((To_date('2015-05-11 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2015-04-11 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 )  FROM DUAL;

select sysdate,add_months(sysdate,12) from dual;  --add one year

select sysdate,TO_CHAR(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual;  --add 1 day

select sysdate,TO_CHAR(sysdate+1/24/60,'yyyy-mm-dd HH23:MI:SS') from dual;  --add 1 min

select * from cnt_item where item.updated_on > TO_DATE('2018-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')
--for loop usage--
set serveroutput on
DECLARE
    type id_list is varray(4) of char(32);
    ids id_list := id_list('522a4150aa6f4405ae84a8b3634cda2b','eb40271eb7654462a6b55a085186c483','97dfdc4693794cb3b48d79b87ae55f26','28738287907c435ca8f8156532bbae7d');
BEGIN
    FOR i IN 1..ids.count 
    LOOP
         dbms_output.put_line(ids(i));
    END LOOP;
    
    --CASE 2
    FOR T IN (SELECT ID,BASE_VIEW_ID FROM CNT_VIEW WHERE BASE_VIEW_ID IS NOT NULL)
    LOOP
       SELECT * FROM CNT_ITEM WHERE ID = T.ID;
    END LOOP;
END;
/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值