- select * from v$version
- select * from product_component_version
Amazon Ads
2009年8月28日 星期五
2009年3月23日 星期一
修改Oracle資料表的Constraint和Index的效用
在寫入大量資料時,若資料表設有Constraint或Index,在寫入時會很費時間。因此在寫入前先把Constraint或Index改成無效,寫入後再改回來,可增加速度。
1.將primary key設成無效。
alter table table_name disable constraint PK_name;
2.將primary key回覆效用。
alter table table_name enable constraint PK_name;
3.將Index設成無效。
alter index IDX_NAME unusable;
4.回覆Index的效用。
alter index IDX_NAME rebuild online;
1.將primary key設成無效。
alter table table_name disable constraint PK_name;
2.將primary key回覆效用。
alter table table_name enable constraint PK_name;
3.將Index設成無效。
alter index IDX_NAME unusable;
4.回覆Index的效用。
alter index IDX_NAME rebuild online;
Labels:
Oracle
2009年2月18日 星期三
修改欄位名稱和長度的語法
alter table 資料表名稱 rename column 欄位名稱 to 新的欄位名稱;
alter table 資料表名稱 modify 欄位名稱 資料型態;
alter table 資料表名稱 modify 欄位名稱 資料型態;
Labels:
Oracle
2008年6月30日 星期一
在oracle建table時,因為不同username建的table需要在table name前再加一個username.tablename才能做select動作,因此需加一段,但此時需用Sys Admin的帳號登入:
CREATE SYNONYM username1.tableName FOR username2.tableName;
用username1登入時就能直接接用select * from tablename來做查詢。
CREATE SYNONYM username1.tableName FOR username2.tableName;
用username1登入時就能直接接用select * from tablename來做查詢。
Labels:
Oracle
2008年6月27日 星期五
SQL *Loader的錯誤訊息-出現ORA-00947值不夠
當欄位數都對時,若出現
例如:
ORA-00947
值不夠的訊息時,表示可能在使用Oracle中的function時,少或多了小括號,或其中錯誤。例如:
"decode(:aaa, null, 'aaa', :aaa))"可能會因為多了一個小括號,SQL *Loader就會辨別錯誤。
Labels:
Oracle
2008年6月7日 星期六
Oracle 的特殊 Table DUAL
Oracle 的特殊 Table DUAL
前陣子有同事問我,dual這個table是要幹嘛的,先看看它的schema,
前陣子有同事問我,dual這個table是要幹嘛的,先看看它的schema,
Name Type Nullable Default Comments
----- ----------- -------- ------- --------
DUMMY VARCHAR2(1) Y
當我們下select 'XXXXX' from dual;
回傳結果為:
xxxxx
那有什麼用呢?因為dual裡面永遠只有一筆資料,所以用這樣的方法,可以得只有一筆的字串等資料,它的好處用過才知道。
當我們下select 'XXXXX' from dual;
回傳結果為:
xxxxx
那有什麼用呢?因為dual裡面永遠只有一筆資料,所以用這樣的方法,可以得只有一筆的字串等資料,它的好處用過才知道。
Labels:
Oracle
換環境時複製資料表的小撇步
換環境時, 要COPY資料表, 先利用pl/sql developer連到舊環境中, 選擇到匯出的TABLE, 點VIEW, 再點右下角的VIEW SQL, 會出現CREATE TABLE的語法, 再登出連到到匯入的DB去, 點選APPLY, 再CLOSE, 便完成匯出
Labels:
Oracle
如何連接 Oracle
為了連接oracle,你要先知道組態檔的位置
oracle 組態檔位置: # TNSNAMES.ORA Network Configuration File: 安裝根目錄\oracle\ora92\NETWORK\ADMIN\tnsnames.ora,然後打開編輯,加入:
當然也有工具可以設定,點選[開始]-[所有程式]找到下面的選項:
點選進去後就可以按步設定連線。
oracle 組態檔位置: # TNSNAMES.ORA Network Configuration File: 安裝根目錄\oracle\ora92\NETWORK\ADMIN\tnsnames.ora,然後打開編輯,加入:
連線名稱 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 連接埠號))
)
(CONNECT_DATA =
(SERVICE_NAME = 服務名稱)
)
)

Labels:
Oracle
2008年5月6日 星期二
在oracle中使用to_char函式對數字轉型
函式使用方式為to_char(var1, var2),若var2的格式不同時,會有不同的結果:
1.使用'99999',9的個數依所需位數而定:
ex.
select to_char(12345, '999999999') from dual;
所得結果為:
12345
2.使用'099999',9的個數依所需位數而定:
ex.
select to_char(12345, '0999999999') from dual;
所得結果為:
0000012345
3.使用'000000',0的個數依所需位數而定:
ex.
select to_char(12345, '0000000000') from dual;
所得結果為:
0000012345
4.使用'000000',再加一個s,0的個數依所需位數而定:
ex.
select to_char(12345, 's0000000000') from dual;
所得結果為:
+0000012345
5.使用'999999',再加一個s,9的個數依所需位數而定:
ex.
select to_char(12345, 's99999999999') from dual;
所得結果為:
+12345
1.使用'99999',9的個數依所需位數而定:
ex.
select to_char(12345, '999999999') from dual;
所得結果為:
12345
2.使用'099999',9的個數依所需位數而定:
ex.
select to_char(12345, '0999999999') from dual;
所得結果為:
0000012345
3.使用'000000',0的個數依所需位數而定:
ex.
select to_char(12345, '0000000000') from dual;
所得結果為:
0000012345
4.使用'000000',再加一個s,0的個數依所需位數而定:
ex.
select to_char(12345, 's0000000000') from dual;
所得結果為:
+0000012345
5.使用'999999',再加一個s,9的個數依所需位數而定:
ex.
select to_char(12345, 's99999999999') from dual;
所得結果為:
+12345
Labels:
Oracle
2008年5月5日 星期一
在oracle要查index的狀態
可以從user_indexes (或是 all_indexes或 dba_indexes)這幾個 data dictionary view去查如下:
SELECT index_name, status FROM user_indexes;
就會跑出如下的結果:
INDEX_NAME STATUS
------------------------------ --------
IDX_INDEX1 VALID
IDX_INDEX2 VALID
SELECT index_name, status FROM user_indexes;
就會跑出如下的結果:
INDEX_NAME STATUS
------------------------------ --------
IDX_INDEX1 VALID
IDX_INDEX2 VALID
Labels:
Oracle
2008年5月2日 星期五
【筆記】Oracle中的left join
在oracle 9i之前,在oracle使用left outer join是要在where條件中,在被join的table之欄位後面, 加一個
下面範例中可以看出兩種join的語法的差異: 在Oracle8i中的
(+)
要做這件事。但從oracle 9i以後,就用iso99的SQL語法,使用left [outer] join來進行。下面範例中可以看出兩種join的語法的差異: 在Oracle8i中的
left outer join
:
select last_name, department_name from employees e, departments d where e.department_id = d.department_id(+);在Oracle9i中的
left outer join
:
select last_name, department_name from employees e left outer join departments d on e.department_id = d.department_id;參考網址
Labels:
Oracle
訂閱:
文章 (Atom)