| 導購 | 订阅 | 在线投稿
分享
 
 
 

Oracle 常見問答

來源:互聯網  2008-05-31 22:07:15  評論

1、如何使用SQL*Loader?

dragon2 sqlldr userid=c/c control=lc2.ctl log=lc2.log bad=lc2.bad

SQL*Loader: Release 9.2.0.1.0 - ProdUCtion on Wed Jun 4 18:03:53 2003

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Commit point reached - logical record count 50

dragon2

其中lc2.ctl內容爲:

#--------------------------------------------

LOAD DATA

INFILE *

REPLACE

INTO TABLE lc2

FIELDS TERMINATED BY ","

(LCSH,LCZT,LCRQ,LCSJ,LCGH)

BEGINDATA

673969,1,20010205,174948,0000

673969,3,20010205,174709,0000

...

#--------------------------------------------

2、如何知道安裝了哪些Oracle選項?

col PARAMETER for a35

col VALUE for a35

select * from v$option;

[06.04]:如何增加表空間的大小?

(1)、加大表空間中數據文件的大小:

ALTER DATABASE DATAFILE 'filename' RESIZE nn M;

(2)、給表空間添加新的數據文件:

ALTER TABLESPACE tablespacename

ADD DATAFILE 'filename' SIZE nn M;

假如你沒有使用OMF,filename需要包含具體路徑。

3、如何類似創建一個空表?

CREATE TABLE NEW_TABLE_NAME AS

SELECT * FROM OLD_TABLE_NAME WHERE 1=2;

[06.02]:9i eXP blob ORA-01555錯誤?

導致9i exp blob時出現

ORA-01555: snapshot too old: rollback segment number with name "" too small

錯誤的原因是9i blob的bug。

一般來說exp ORA-01555可以通過下面方法來解決:

1)加大所有回滾段且不答應自動收縮(因爲我們無法控制EXP具體會使用哪個回滾段);

2)EXP使用consistent = n(只保證一個表內數據是同一時刻的)和direct = y參數;

3)安排在數據庫任務最少的時候做EXP;

4)對于特大表可采用query子句分批EXP該表。

[05.30]:ORA-02049 via db_link?

hawk1:/oracle/oracle9$oerr ora 2049

02049, 00000, "timeout: distributed transaction waiting for lock"

// *Cause: exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock.

// *Action: treat as a deadlock

很多時候DISTRIBUTED_LOCK_TIMEOUT參數是不設的,這個錯誤很多時候是程序引起的。當然有人建議使用DBMS_DEFFR.CALL和DBMS_DEFFR_SYS.PUSH來代替直接的兩段式提交。

4、爲何導致連接關閉?

昨天在做一項測試時,我在本地PC設置了NLS_DATE_FORMAT,但手誤寫錯了,把hh24寫成了24hh,當時因爲SQL*PLUS有現成的連接在數據庫上,所以也沒發現有什麽影響。此後重起PC後無論如何都連不上數據庫了,每次SQL*PLUS都是一閃而過就消失了,我根本看不到它提示的是什麽錯誤,弄的我一頭霧水,查遍了我可以想到的原因就是沒發現問題所在,後來嘗試tnsping(因爲我一直確信網絡沒有問題)告知日期格式錯誤,才猛然想起。

5、817 EXP 815報錯EXP-00037?

直接使用817的EXP來導出815的數據會報EXP-00037錯誤。

我們可以先使用815 EXP,然後使用817 IMP即可。

6、網上下載的oracle9i是正式版嗎?假如是這樣,oracle通過什麽賺錢?

http://otn.oracle.com/software/content.Html 上下載的是正版的,oracle賺錢的方式分兩種:

1)、賣軟件,下載的雖然和正版沒有區別,但他有申明,不得用于商業用途,你假如用下載的軟件來做商業用途,oracle保留告你侵權的權利。所以一般下載的都只是作爲測試,或用戶個人學習,真正的商業應用,肯定是會買的。

2)、賣服務,這個才是oracle最賺錢的來源,用的起oracle的公司一般都會考慮買服務的,因爲很多問題也只有oracle才能給你解決,再牛的oracle技術高手,沒有oracle這個後台,都很難完成工作的。

7、如何取得一列中第N大的值?

select * from

(select t.*,dense_rank() over (order by t2 desc) rank from t)

where rank = &N;

  1、如何使用SQL*Loader?      dragon2 sqlldr userid=c/c control=lc2.ctl log=lc2.log bad=lc2.bad      SQL*Loader: Release 9.2.0.1.0 - ProdUCtion on Wed Jun 4 18:03:53 2003      Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.      Commit point reached - logical record count 50      dragon2      其中lc2.ctl內容爲:      #--------------------------------------------    LOAD DATA    INFILE *    REPLACE    INTO TABLE lc2    FIELDS TERMINATED BY ","    (LCSH,LCZT,LCRQ,LCSJ,LCGH)    BEGINDATA    673969,1,20010205,174948,0000    673969,3,20010205,174709,0000    ...    #--------------------------------------------      2、如何知道安裝了哪些Oracle選項?      col PARAMETER for a35      col VALUE for a35      select * from v$option;      [06.04]:如何增加表空間的大小?      (1)、加大表空間中數據文件的大小:      ALTER DATABASE DATAFILE 'filename' RESIZE nn M;      (2)、給表空間添加新的數據文件:      ALTER TABLESPACE tablespacename      ADD DATAFILE 'filename' SIZE nn M;      假如你沒有使用OMF,filename需要包含具體路徑。      3、如何類似創建一個空表?      CREATE TABLE NEW_TABLE_NAME AS      SELECT * FROM OLD_TABLE_NAME WHERE 1=2;      [06.02]:9i eXP blob ORA-01555錯誤?      導致9i exp blob時出現      ORA-01555: snapshot too old: rollback segment number with name "" too small      錯誤的原因是9i blob的bug。      一般來說exp ORA-01555可以通過下面方法來解決:      1)加大所有回滾段且不答應自動收縮(因爲我們無法控制EXP具體會使用哪個回滾段);      2)EXP使用consistent = n(只保證一個表內數據是同一時刻的)和direct = y參數;      3)安排在數據庫任務最少的時候做EXP;      4)對于特大表可采用query子句分批EXP該表。      [05.30]:ORA-02049 via db_link?      hawk1:/oracle/oracle9$oerr ora 2049      02049, 00000, "timeout: distributed transaction waiting for lock"      // *Cause: exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock.      // *Action: treat as a deadlock      很多時候DISTRIBUTED_LOCK_TIMEOUT參數是不設的,這個錯誤很多時候是程序引起的。當然有人建議使用DBMS_DEFFR.CALL和DBMS_DEFFR_SYS.PUSH來代替直接的兩段式提交。      4、爲何導致連接關閉?      昨天在做一項測試時,我在本地PC設置了NLS_DATE_FORMAT,但手誤寫錯了,把hh24寫成了24hh,當時因爲SQL*PLUS有現成的連接在數據庫上,所以也沒發現有什麽影響。此後重起PC後無論如何都連不上數據庫了,每次SQL*PLUS都是一閃而過就消失了,我根本看不到它提示的是什麽錯誤,弄的我一頭霧水,查遍了我可以想到的原因就是沒發現問題所在,後來嘗試tnsping(因爲我一直確信網絡沒有問題)告知日期格式錯誤,才猛然想起。      5、817 EXP 815報錯EXP-00037?      直接使用817的EXP來導出815的數據會報EXP-00037錯誤。 我們可以先使用815 EXP,然後使用817 IMP即可。      6、網上下載的oracle9i是正式版嗎?假如是這樣,oracle通過什麽賺錢?      http://otn.oracle.com/software/content.Html 上下載的是正版的,oracle賺錢的方式分兩種:      1)、賣軟件,下載的雖然和正版沒有區別,但他有申明,不得用于商業用途,你假如用下載的軟件來做商業用途,oracle保留告你侵權的權利。所以一般下載的都只是作爲測試,或用戶個人學習,真正的商業應用,肯定是會買的。      2)、賣服務,這個才是oracle最賺錢的來源,用的起oracle的公司一般都會考慮買服務的,因爲很多問題也只有oracle才能給你解決,再牛的oracle技術高手,沒有oracle這個後台,都很難完成工作的。      7、如何取得一列中第N大的值?      select * from      (select t.*,dense_rank() over (order by t2 desc) rank from t)      where rank = &N;
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有