ORACLE實際生產中小工具總結,oracle實際
在日常的生產中,資料來源往往多種多樣,今天就說說excel中的額資料吧,因為現在好多開發語言支援將資料匯出到excel,但是有些不標準的做法會導致產生無法識別的特殊字元,在資料庫中以?的形式存在,為我們資料的清洗帶來了一定的麻煩,當特殊字元出現在字串中,對實際音響不大,但是當特殊字元出現在數字類型的欄位後,便會影響到實際的生產了,此時如何找出特殊字元就會很困難,因為無法識別具體是什麼字元,所以我們就需要轉換一下思路,將標準的資料找出來,然後用總得資料集出去標準的資料集,剩下的就是包含特殊字元的資料集了,那麼如何找出標準的呢,好像也很難,那麼好像有一個函數,Regex能解決問題,哈哈,真的可以,果斷使用,具體的使用方法如下:select * from value_data p where p.line_num not in (select t.line_num from value_data t where REGEXP_LIKE(t.sale_num,'(^[+-]?\d{0,}\.?\d{0,}$)'))
在日常的生產中,也有時候因為設計不當或者操作不當,會導致資料庫的sessions死結,這時候資料庫就會等待,這時候資料庫session之間的爭用會嚴重影響實際的業務處理,所以必須快速準確的關閉死結的session,
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid;
alter system kill session '46,53';
通過以上兩個操作,就可以快速準確的將死結session關閉。
資料庫的分頁,這個不用說,大家應該都會用到的,記錄一下吧select * from(select rownum no ,t.line_num,t.ven_cust from value_data t) where no>1 and no <11