目前分類:Oracle (119)
- Apr 08 Wed 2015 14:22
Solaris 10 限制記憶體使用大小之測試(Oracle DB)
- Apr 07 Tue 2015 16:25
Oracle用SQL找出Procedure、Tigger、Function的內容
select obj.object_name,obj.object_type,sou.line,sou.source
from sys.source$ sou,
dba_objects obj
where sou.obj# = obj.object_id
and obj.object_name like 'TEST3%'
from sys.source$ sou,
dba_objects obj
where sou.obj# = obj.object_id
and obj.object_name like 'TEST3%'
- Mar 03 Tue 2015 10:34
Oracle 11gR2 關閉archivelog模式
昨天發生了一件整體ERP效能緩慢的事件,主機上有正式區與測試區ERP,
共用一台Storage,正式區上的Redo Wait非常高,整個效能非常慢,
但是Redo File並沒有損毀,也可以正常切換。
而測試區ERP直接就掛點,連不上去,於是用SSH直接連上主機查看,
共用一台Storage,正式區上的Redo Wait非常高,整個效能非常慢,
但是Redo File並沒有損毀,也可以正常切換。
而測試區ERP直接就掛點,連不上去,於是用SSH直接連上主機查看,
- Dec 31 Wed 2014 10:49
Oracle 執行Create Table很慢的一次案例
同事今天要建立一個新的table時,sql大致如下:
create table temp_01_200 as (
select we.WIP_ENTITY_NAME,msi.SEGMENT1 item_no,msi.DESCRIPTION,wdj.SCHEDULED_COMPLETION_DATE start_date,
wdj.START_QUANTITY,wdj.QUANTITY_COMPLETED qty
from wip_discrete_jobs wdj,
create table temp_01_200 as (
select we.WIP_ENTITY_NAME,msi.SEGMENT1 item_no,msi.DESCRIPTION,wdj.SCHEDULED_COMPLETION_DATE start_date,
wdj.START_QUANTITY,wdj.QUANTITY_COMPLETED qty
from wip_discrete_jobs wdj,
- Dec 24 Wed 2014 13:38
Oracle 11g 使用shrink來自動縮小Temporary Tablespace的空間
在Oracle 9i時,要縮小Temporary Tablespace的空間時,都是新增一個新的Temporary Datafile,
再將原有的Temporary Datafile離線後刪除,但是現在資料庫已經更新到11gR2的版本。
藉著這次RMAN異機還原的測試,順便測試shrink的功能。
再將原有的Temporary Datafile離線後刪除,但是現在資料庫已經更新到11gR2的版本。
藉著這次RMAN異機還原的測試,順便測試shrink的功能。
- Sep 25 Thu 2014 10:07
Oracle PL/SQL 讓多筆資料合併成一筆資料
- Aug 18 Mon 2014 14:53
Oracle 計算標準差、變異數的Function
--樣本標準差,只有一筆資料時傳回0
select stddev(a) from tmp_ccc;
--樣本標準差,只有一筆資料時傳回null
select STDDEV_SAMP(a) from tmp_ccc;
select stddev(a) from tmp_ccc;
--樣本標準差,只有一筆資料時傳回null
select STDDEV_SAMP(a) from tmp_ccc;
- Aug 18 Mon 2014 14:10
Oracle SQL計算平方根、立方根、次方
- Jul 18 Fri 2014 13:39
Oracle 11g RMAN - catalog start with
透過使用catalog start with指令,可以將備份集的資訊重新導入到目前的Control file。
適用Control fi已經太舊或是手動建立(可能沒有最新備份集的資訊),或是備份集的路徑不一樣時。
例如:利用RMAN在測試機實行還原時,將備份檔案複製到測試機的/backup底下,
但是control file或是catalog database備份路徑是設定在/rman底下,就可以透過指令重新導入資訊。
適用Control fi已經太舊或是手動建立(可能沒有最新備份集的資訊),或是備份集的路徑不一樣時。
例如:利用RMAN在測試機實行還原時,將備份檔案複製到測試機的/backup底下,
但是control file或是catalog database備份路徑是設定在/rman底下,就可以透過指令重新導入資訊。
- Jul 17 Thu 2014 15:39
EBS 自訂Mail HTML格式的簡單範例
- Jul 17 Thu 2014 14:07
Oracle 11g RMAN異機還原出現RMAN-06172,結果是NFS掛載的問題
- Jun 27 Fri 2014 11:00
Oracle 11g 利用Flashback找回被刪除的Procedure
昨天用Flashback救回一個不小心覆蓋到舊資料的Procedure,今天再度測試。
建立一個測試用的Procedure
SQL> CREATE OR REPLACE PROCEDURE APPS.TEST_PROC
2 IS
建立一個測試用的Procedure
SQL> CREATE OR REPLACE PROCEDURE APPS.TEST_PROC
2 IS
- Jun 13 Fri 2014 11:16
Oracle 11g 查詢 recyclebin(回收箱)內表格的資料
- Jun 13 Fri 2014 10:57
Oracle 11g Recyclebin(回收)的使用與範例
- May 29 Thu 2014 14:32
9i與11g在SQL中有使用disticnt的處理方式不同
因為Database的版本由9i升級為11g,在測試的過程中發現某些報表在9i與11g顯示出來的排序不一樣。
但是報表使用的SQL及程式都是一樣的,在回報顧問之後,得知SQL中有使用distinct後,但是9i與11g在處理上有不一樣的地方。
而11g有一個參數optimizer_features_enable可以改為9i的處理方式,但是多少會影響效能,測試步驟如下:
11g預設的值
但是報表使用的SQL及程式都是一樣的,在回報顧問之後,得知SQL中有使用distinct後,但是9i與11g在處理上有不一樣的地方。
而11g有一個參數optimizer_features_enable可以改為9i的處理方式,但是多少會影響效能,測試步驟如下:
11g預設的值
- May 14 Wed 2014 17:09
Oracle 9i export某一個TABLE的資料,再import到11g
有一個在9i的tmp_ccc表格,想要移轉到11g,當然可以用DB_LINK將兩台DB連接後再insert資料過去。
但是我想先把tmp_ccc的資料備份出來,等有需要時再匯入11g。
在9i的OS下,執行exp匯出資料檔
$ exp test01/XXXXX file=/home/oraprod/exp_test.dmp buffer=65400 feedback=100 tables=tmp_ccc
但是我想先把tmp_ccc的資料備份出來,等有需要時再匯入11g。
在9i的OS下,執行exp匯出資料檔
$ exp test01/XXXXX file=/home/oraprod/exp_test.dmp buffer=65400 feedback=100 tables=tmp_ccc
- May 14 Wed 2014 14:29
ORACLE 11g 資料壓縮測試
- May 12 Mon 2014 15:44
Oralce 11g 在啟動資料庫時,出現ORA-01113: file 3 needs media recovery
今天嘗試在UNDO Datafile刪除之後(只是把檔案更名而已)的還原方式,
試了幾種不用隱藏的參數*._offline_rollback_segments的方法都失敗,
在恢後UNDO Datafile之後開啟資料庫,卻出現了needs media recovery的訊息。
SQL> startup
試了幾種不用隱藏的參數*._offline_rollback_segments的方法都失敗,
在恢後UNDO Datafile之後開啟資料庫,卻出現了needs media recovery的訊息。
SQL> startup
- May 12 Mon 2014 11:46
Oracle 11g--測試temporary datafile被刪除
找出TEMPORARY的Datafile位置
select a.file#,a.ts#,a.status,b.name,a.name
from v$tempfile a,
v$tablespace b
where a.ts#=b.ts#
select a.file#,a.ts#,a.status,b.name,a.name
from v$tempfile a,
v$tablespace b
where a.ts#=b.ts#
- May 09 Fri 2014 16:43
Oracle SQL找出上/下一筆某個欄位值來計算
有時候希望以上/下一筆的某個欄位值來計算,例如想知道今天與昨天交易量的差異數時,
通常是以編寫PL/SQL來達成目的。
但是今天在網路上看到原來有lead()和lag()兩個function可以直接以SQL完成。
例如:
通常是以編寫PL/SQL來達成目的。
但是今天在網路上看到原來有lead()和lag()兩個function可以直接以SQL完成。
例如: