2014年4月28日 星期一

查ARCHIVE檔案位置

ARCHIVE檔案把磁碟塞滿的時候,
會因為無法寫入ARCHIVE而無法進入資料庫。
這時候要找到ARCHIVE檔案,將過久的檔案刪除就可以解決這個問題。

進入資料庫

sqlplus /nolog@資料庫SID
connect / as sysdba

show pararmeter archive  
使用這個指令可以找出archive存放的位址
然後進去將過舊的ARCHIVE刪除,問題就解決了

2014年4月8日 星期二

[EBS]抓出GL_CODE_COMBINATIONS的中文摘要

在EBS開發中,輸入的科目在資料庫中被一堆代碼取代,無法辨識。
要透過一個Package才能將正確的中文摘要抓出來,否則要抓到正確的非常困難。

語法如下:
select distinct code_combination_id, gl_flexfields_pkg.get_concat_description 
(chart_of_accounts_id,
code_combination_id
) description from gl_code_combinations;

ORA-12514: TNS: 監聽程序當前無法識別連接描述符中請求的服務解决

將資料庫重啟時,發生ORA-12514問題。

在網路上找到解決方法,並記錄如下:

監聽程序找不到服務的原因,在於LISTENER沒有確切的指定到要求服務的資料庫。
因此LISTENER設定中加入服務的SID,就能夠正確抓到指定的服務。

打開%Oracle_Home%/network/admin/listener.ora
會看到內容如下,
SID_LIST_LISTENER=    (SID_DESC =      (SID_NAME = CLRExtProc)      (ORACLE_HOME = H:\Oracle\product\11.2.0\dbhome_1)      (PROGRAM = extproc)      (ENVS ="EXTPROC_DLLS=ONLY:D:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")    )  )

將內容更改如下,

SID_LIST_LISTENER=
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = H:\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS ="EXTPROC_DLLS=ONLY:H:\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
  (SID_LIST =
         (SID_DESC =
      (GLOBAL_DBNAME = Your_DB_SID)
      (ORACLE_HOME =D:\Oracle\product\11.2.0\dbhome_1)
      (SID_NAME = Your_DB_SID)
    )
    )
  )

接著就能順利開啟資料庫了。