程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> ORACLE數據庫記錄輸出到文本文件的實現

ORACLE數據庫記錄輸出到文本文件的實現

編輯:Oracle數據庫基礎

Oracle數據庫記錄應該如何才能輸出到文本文件呢?下面就教您一個Oracle數據庫記錄輸出到文本文件的實現方法啊,希望對您學習Oracle數據庫記錄方面能有所幫助。

在某些情況下,比如說為了與其他數據庫進行數據交換,我們需要把ORACLE數據庫裡的數據輸出來,保存到一個中間文件,然後再作處理。那麼如何輸出Oracle數據庫裡的數據呢?

假設這些數據是文本類型的數據(字符、數字、日期),我們至少有兩種辦法輸出,一種是利用制表功能,把所有數據以表格形式輸出,並把表格保存到一個文本文件。另一種辦法更簡單,就是利用UTL_FILE包,直接把數據輸入到文本文件。

在使用UTL_FILE包前需要在Oracle數據庫的初始化文件(initsid.ora)定義UTL_FILE的可寫目錄,例如

  1. UTL_FILE=/eXPort/home/Oracle/output 

另外,還要注重的是輸出記錄中字段最大大小是1023字節,假如有字段超過這個限制,就需要把它截斷成幾部分,就如下面的例子一樣。
這裡給出一個實例,朋友們可以先照搬,然後根據自己數據庫的實際情況,修改後使用。

  1. DECLARE  
  2. OutputFile UTL_FILE.FILE_TYPE;  
  3. vart_title perd11.ART_TITLE%TYPE;  
  4. vart_author perd11.ART_AUTHOR%TYPE;  
  5. vart_keyWord perd11.ART_KEYWord%TYPE;  
  6. vart_abstract perd11.ART_ABSTRACT%TYPE;  
  7. vart_abs1 perd11.ART_ABSTRACT%TYPE;  
  8. vart_abs2 perd11.ART_ABSTRACT%TYPE;  
  9. vart_authorinstitute perd11.ART_AUTHORINSTITUTE%TYPE;  
  10. vperd_volume perd11.PERD_VOLUME%TYPE;  
  11. vperd_issue perd11.PERD_ISSUE%TYPE;  
  12. vperd_date perd11.PERD_DATE%TYPE;  
  13. vpub_name perd11.PUB_NAME%TYPE;  
  14. vpub_issn perd11.PUB_ISSN%TYPE;  
  15. vclass_name perd11.CLASS_NAME%TYPE;  
  16.  
  17. CURSOR cperd11 IS  
  18. select * from perd11;  
  19.  
  20. BEGIN  
  21. OutputFile :UTL_FILE.FOPEN  
  22. (’/export/home/Oracle/output’,'perd11.out’,'a’);  
  23. open cperd11;  
  24. LOOP  
  25. fetch cperd11 into vart_no,vart_title,  
  26. vart_author,vart_keyWord,vart_abstract,  
  27. vart_authorinstitute,vperd_volume,  
  28. vperd_issue,vperd_date,vpub_name,  
  29. vpub_issn,vclass_name;  
  30. IF length(vart_abstract)>1000 THEN  
  31. vart_abs1:=substr(vart_abstract,0,1000);  
  32. vart_abs2:=substr(vart_abstract,1001);  
  33. ELSE  
  34. vart_abs1:=vart_abstract;  
  35. vart_abs2:=”;  
  36. END IF;  
  37. UTL_FILE.PUTF(OutputFile,’  
  38. 【期刊類別】\n%s\n’,vclass_name);  
  39. UTL_FILE.PUTF(OutputFile,’  
  40. 【期刊刊號】\n%s\n’,vpub_issn);  
  41. UTL_FILE.PUTF(OutputFile,’  
  42. 【期刊名稱】\n%s\n’,vpub_name);  
  43. UTL_FILE.PUTF(OutputFile,’  
  44. 【期刊卷號】\n%s\n’,vperd_volume);  
  45. UTL_FILE.PUTF(OutputFile,’  
  46. 【期刊期號】\n%s\n’,vperd_issue);  
  47. UTL_FILE.PUTF(OutputFile,’  
  48. 【出版日期】\n%s\n’,vperd_date);  
  49. UTL_FILE.PUTF(OutputFile,’  
  50. 【中文標題】\n%s\n’,vart_chntitle);  
  51. UTL_FILE.PUTF(OutputFile,’  
  52. 【中文作者】\n%s\n’,vart_chnauthor);  
  53.  
  54. UTL_FILE.PUTF(OutputFile,’  
  55. 【作者單位】\n%s\n’,vart_authorinstitute);  
  56. UTL_FILE.PUTF(OutputFile,’  
  57. 【中文要害詞】\n%s\n’,vart_chnkeyWord);  
  58. UTL_FILE.PUTF(OutputFile,’  
  59. 【中文文摘】\n%s\n’,vart_engabs1);  
  60. UTL_FILE.PUTF(OutputFile,’  
  61. 【中文文摘2】\n%s\n’,vart_engabs2);  
  62. UTL_FILE.FFLUSH(OutputFile);  
  63. exit when cperd11%NOTFOUND;  
  64. END LOOP;  
  65. close cperd11;  
  66.  
  67. END;   
  68.  
  69. -  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved