資源描述:
《Oracle數據庫常見問題答疑.doc》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、Oracle數據庫常見問題答疑Oracle數據庫以其強大的功能和穩(wěn)定性而著稱,但同時,在開發(fā)和管理方面也存在很多困難,筆者在此總結了一些Oracle數據庫開發(fā)和管理的常見問題,希望能對大家有所幫助。問:如果發(fā)現表中有壞塊,如何檢索其它未壞的數據?答:首先需要找到壞塊的ID(可以運行dbverify實現),假設為1234。運行下面的查詢查找段名:selectsegment_name,segment_type,block_id,blocksfromdba_extentswhere(1234betweenblock_idand(b
2、lock_id+blocks-1));一旦找到壞段名稱,若段是一個表,則最好建立一個臨時表,存放好的數據。若段是索引,則刪除它,再重建。createtablegood_tableasselectfrombad_tablewhererowidnotin(select/+index(bad_table,any_index)/rowidfrombad_tablewheresubstr(rowid,1,8)=1234)問:如請問如何關閉FORM調用REPORT時的小窗口?答:在利用Oracle數據庫的Develop2000設計
3、開發(fā)界面的過程中,當FORM調用REPORT時,會顯示一個背景窗口REPORTBACKGROUDENGINE,等待FORM對REPORT的調用,當FORM調用其它REPORT時,也使用這個后臺服務器,不論調用多少個REPORT,這個后臺服務器存在且只有一個。但當FORM與REPORT全部退出后,該窗口仍處于等待狀態(tài),不會關閉,這時,我們需要手工將其關閉。我們可以使用以下參數在FORM調用REPORT時不顯示這個小窗口:Add_Parameter(pl_id,'ORACLE_SHUTDOWN',TEXT_Parameter,'
4、Yes');需要注意的是,該參數必須加在所有參數的前面,即它必須為第一個參數。問:請問如何根據查詢條件在REPORT中動態(tài)顯示記錄?答:1.在REPORT的“數據模型”下面的“用戶參數”中,創(chuàng)建用戶自定義參數W_CLAUSE,W_CLAUSE為從FORM傳遞過來的查詢條件,數據類型為字符型,缺省值為NULL。2.修改查詢Q_1,將SQL查詢語句修改為selectfromdept&&w_clause。3.在運行報表時,報表會自動將符合&&w_clause的查詢條件記錄顯示出來。如果從FORM傳遞過來的w_clause為whe
5、redept=1,本報表的SQL查詢自動轉換為selectfromdeptwheredept=1,并在報表運行結果中顯示符合該查詢條件的記錄,如果從FORM傳遞過來的w_cluase為whereto_char(年度,'YYYY.MM')='2000.03',則在報表運行結果中自動顯示2000年3月份的記錄。問:在Oracle中,我們如何查看某表上的約束?答:我們可以使用下面語句從all_constraints視圖中查看某表上的約束:SELECTconstraint_name,table_name,r_owner,r_con
6、straint_nameFROMall_constraintsWHEREtable_name='table_name'andowner='owner_name';另一個視圖ALL_CONS_COLUMNS也包括組成表上約束列的信息。問:如何將數據庫從noarchivelog方式改變?yōu)閍rchivelog方式?答:首先打開Init.ora文件,確保存檔日志目標指向一有效目錄。然后啟動ServerManagersvrmgrl〉shutdownimmediatesvrmgrl〉startupmountsvrmgrl〉alterda
7、tabasearchivelog;svrmgrl〉alterdatabaseopen;svrmgrl〉archiveloglist;在init.ora中設置參數archive_log_start=TRUE,它設置存檔日志為自動啟動。在Oracle8i中支持多個存檔日志的目標,因此參數修改為log_archive_dest[n],其中n為1到5。問:在Oracle數據庫中,我們如何增加表空間的大???答:在開發(fā)Oracle數據庫中,我們有兩種方法增加表空間的大?。?.增加額外的數據文件到表空間中例如:altertablespac
8、eusersadddatafile'/u01/oradata/orcl/users02.dbf'size25m;2.修改表空間當前的數據文件例如:alterdatabasedatafile'/u01/oradata/orcl/users01.dbf'resize50M;問:請問如何在REP