Oracle外部表學習及Ora-01846問題
create or replace directory data_dir as '/oracle/oracle9i/admin/boss/bdump/'
create table alert_log ( text_line varchar2(255))
organization external(
type oracle_loader
default directory data_dir
access parameters(
records delimited by newline
fields
reject rows with all null fields
)
location (
'alert_boss.log'
)
)reject limit unlimited
select to_char(last_time, 'yyyy-mm-dd hh24:mi:ss') shutdown,
to_char(start_time, 'yyyy-mm-dd hh24:mi:ss') startup,
round((start_time - last_time) * 24 * 60, 2) mins_down,
round((last_time - lag(start_time) over(order by r)), 2) days_up,
case when (lead(r) over(order by r) is null) then
round((sysdate - start_time), 2)
end days_still_up
from (select r,
to_date(last_time, 'Dy Mon DD HH24:MI:SS YYYY') last_time,
to_date(start_time, 'Dy Mon DD HH24:MI:SS YYYY') start_time --select *
from (select r,
text_line,
lag(text_line, 1) over(order by r) start_time,
lag(text_line, 2) over(order by r) last_time
from (select rownum r, text_line
from alert_log
where text_line like '___ ___ __ __:__:__ 20__'
or text_line like 'Starting ORACLE instance %'))
where text_line like 'Starting ORACLE instance %')
執行如上語句時出現:Ora-01846: not a valid day of the week 錯誤
從最內層開始檢查(綠色部分),沒有問題;
檢查第二層(黑色部分),沒有問題;
第三層(紅色部分),這個問題出現了。檢查具體的資料,發現“Mon Jan 21 13:25:47 2008”
是符合to_date()的格式轉換要求的,但是為什麼這裡就報錯了呢。
嘗試以單個轉換的方式來檢查:
select to_date('Mon Jan 21 13:25:47 2008', 'dy mon dd hh24:mi:ss yyyy') from dual
結果還是報錯,不大明白是什麼原因了。
於是檢查當前環境:
select to_date(sysdate, 'dy mon dd hh24:mi:ss yyyy') from dual
結果出現的是中文的字元日期,如下:星期五 12月 19 13:53:15 2008
難怪他老是報錯呢,原來是字符集的問題,於是:
alter session set nls_date_language = 'American'
再次執行前面的SQL語句,果然搞定。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-517455/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle外部表學習Oracle
- ORACLE學習之外部表Oracle
- oracle外部表的測試學習 (轉)Oracle
- CUUG 外部表學習筆記筆記
- Oracle外部表Oracle
- Oracle 外部表Oracle
- oracle分割槽表學習及應用Oracle
- 【轉】Oracle 外部表Oracle
- Oracle學習遇到的問題收集及解決 - 不斷更新Oracle
- Oracle學習系列—資料倉儲部分—目錄管理和外部表Oracle
- 解決問題oracle學習篇Oracle
- oracle 外部表 external tableOracle
- Oracle外部表 External TableOracle
- 介紹oracle外部表Oracle
- oracle sqlldr 與 外部表OracleSQL
- hive學習筆記之三:內部表和外部表Hive筆記
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- oracle鎖表問題Oracle
- postgres_fdw 無法通過域名 訪問外部表問題
- oracle學習(建立表)Oracle
- oracle IOT表學習Oracle
- Oracle Haip無法啟動問題學習OracleAI
- 【Mysql 學習】 MERGE表方面的問題(二)MySql
- sqlldr中使用條件裝載及作為外部表訪問SQL
- oracle外部表詳解以及使用Oracle
- oracle_datapump建立外部表案例Oracle
- oracle 外部表alert_orcl.oraOracle
- Oracle之外部表警告日誌Oracle
- Oracle常用問題及解答Oracle
- oracle 聚簇表學習Oracle
- Oracle SCN相關問題學習與測試Oracle
- 學習Oracle Objects的文件和問題記錄OracleObject
- Web 學習之跨域問題及解決方案Web跨域
- react 學習 問題React
- Oracle外部表的管理和應用Oracle
- Oracle之外部表監聽日誌Oracle
- ORACLE外部表的應用例項Oracle
- 使用外部表管理Oracle 告警日誌Oracle