1. 程式人生 > >造成ORA-01843 無效的月份的一些原因

造成ORA-01843 無效的月份的一些原因

1) 當我們在一箇中文環境的客戶端使用如下sql語句
INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') )
Runtime error occurred: 1843 (ORA-01843: 無效的月份)
資料庫會報告一個ORA-01843的錯誤,這是因為客戶端是中文環境,格式mon就不能用英文的月份寫法,必須用中文的“六月”
如果不想修改sql語句執行的話,就需要在執行該語句之前,使用alter session 命令將nls_date_language修改為american,如下:
alter session set nls_date_language='american'     --以英語顯示日期
2)
今天出現了ORA-01843的錯誤.這個錯誤代表無效的月份一般在日期轉化的時候會提示。
解決方法
alter session set NLS_DATE_FORMAT='DD-MON-YY';

可是今天我這樣做還是不管用。實際上問題出在這裡:

Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
O:/>sqlplus greatfinish/finish
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 6月 21 19:18:00 2006
Copyright (c) 1982, 2002, Oracle Corporation.   All rights reserved.

連線到:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

[email protected]> select to_date('JAN 01 1988','MON DD YYYY') from dual;
select to_date('JAN 01 1988','MON DD YYYY') from dual
                *
ERROR 位於第 1 行:
ORA-01843: 無效的月份

[email protected]> alter session set NLS_DATE_FORMAT='MON DD YYYY';
會話已更改。
--修改了NLS_DATE_FORMAT問題依然存在
[email protected]
> select to_date('JAN 01 1988','MON DD YYYY') from dual;
select to_date('JAN 01 1988','MON DD YYYY') from dual
                *
ERROR 位於第 1 行:
ORA-01843: 無效的月份
--查了一下sysdate發現原因了是客戶端字符集問題
[email protected]> select sysdate from dual;
SYSDATE
------------
6月   21 2006
[email protected]
> exit
從Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中斷開
O:/>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
O:/>sqlplus greatfinish/finish
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Jun 21 19:20:22 2006
Copyright (c) 1982, 2002, Oracle Corporation.   All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
--修改完畢成功select
[email protected]> select to_date('JAN 01 1988','MON DD YYYY') from dual;
TO_DATE('
---------
01-JAN-88
[email protected]>

相關推薦

造成ORA-01843 無效月份一些原因

1) 當我們在一箇中文環境的客戶端使用如下sql語句 INSERT INTO "temptable" ( DELIVER_DATE ) VALUES (TO_DATE('27-Jun-2007 15:57:30', 'DD-MON-YYYY HH24:MI:SS') ) R

Oracle錯誤:ORA-01843:無效月份的問題

在建立了表EMP如下後:CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7,

oracle ORA-01843 無效月份

values can class 圖片 Language to_date ima span ssi 插入以下數據時,報錯ORA-01843 無效的月份,如下 INSERT INTO EMP VALUES (7499, ‘ALLEN‘, ‘SALESMAN‘, 76

Oracle插入日期資料時報錯ORA-01843無效月份

當在sqlplus或者在plsql上執行插入月份的語句時,比如:insert into emp_test values(1002 , '劉蒼松' , 'Analyst' ,8000 , 1000 , '01-APR-11' , 1001, 10) ;如果報ORA-01843無

PLSQL中改日期時報錯ORA-01843無效月份

個人覺得只需要執行完這一句就OK啦 2) 今天出現了ORA-01843的錯誤.這個錯誤代表無效的月份一般在日期轉化的時候會提示。 解決方法 alter session set NLS_DATE_FORMAT='DD-MON-YY'; 可是今天我這樣做還是不管用。實際上問題出在這裡: Microsoft

oracle字元型別時間轉換 ORA-01843 無效月份

--oracle中在轉換 字元型別的時間資料有時會報錯  ORA-01843: 無效的月份 如: SQL> select to_date('07-SEP-2017','dd-mon-yy') from dual;   select to_date('07-SEP-20

解決ORA-01843:無效月份的方法

(1)多加一個引數NLS_DATE_LANGUAGE = AMERICAN select to_date( '01-Oct-2014' ,'DD-MON-YYYY','NLS_DATE_LANGUAGE = AMERICAN') from dual (2)修改登錄檔,修改N

SQL []; ORA-01843: 無效月份

利用Spring +Mybatis時候 出錯了    String check_time;    import java.sql.Date; public class HardTerminal

造成記憶體位置訪問無效的一個原因

                作者:朱金燦        今天編一個程式,release版編譯連結均成功,執行時出錯,使用GetLastError獲取錯誤,錯誤資訊為記憶體位置訪問無效。經過上網搜尋及自己分析,發現是release版連結了debug版本的第三方庫造成的。一般來說,debug版程式連結rele

ORA-00900: 無效 SQL 語句(錯誤原因之一)

剛試了下joffice的安裝,SQL報錯: ORA-00900: 無效 SQL 語句 SQL語句如下,查了半天,發現錯誤原因是由於換行引起的,標記下! CREATE TABLE OUT_MAIL  (    MAILID               NUMBER(18)  

分針網——每日分享:網頁布局時CSS無效的常見原因

css 無效 http://www.f-z.cn/id/186 1、不要擔心驗證程序的警告:如果驗證程序說發現12處錯誤以及83處警告,不要理它,繼續進行下一步。

造成機床鑄件表面粗糙的原因

機床鑄件 機床床身鑄件 鑄鐵平板 機床鑄件表面粗糙1、熔模表面粗糙度2、型殼表面粗糙度的因素3、金屬液精確復型4其它表面粗糙度1、影響熔模表面粗糙度的因素:熔模表面粗糙度與所有壓型表面粗糙度、壓制方式(糊狀模料壓制或液態模料壓制)和壓制工藝參數選擇有關。糊狀模料壓制 液態模料壓制壓型表面粗糙度R

Oracle命令行中顯示:ORA-04076: 無效的 NEW 或 OLD 說明

說明 style new 錯誤 com ont AR 16px 如果 Oracle命令行進行操作時可能出現"ORA-04076: 無效的 NEW 或 OLD 說明" 需要在條件語句中JOB前面添加“old.”即可(因為是在when條件裏面,所以不用“:”。 如果用if代

使用Hibarnate: 出現 java.sql.SQLException: ORA-00911: 無效字符, 解決思路

sele ber 解決 perm 地方 查詢 rmi which style 1. 查看到: Hibernat自動生成的sql查詢語句 Hibernate: select * from ( select module0_.MODULE_ID as MODULE_ID1_1

造成MySQL全表掃描的原因

記錄 添加 its 工程師 review 全表掃描 字段 count 查詢條件 全表掃描是數據庫搜尋表的每一條記錄的過程,直到所有符合給定條件的記錄返回為止。通常在數據庫中,對無索引的表進行查詢一般稱為全表掃描;然而有時候我們即便添加了索引,但當我們的SQL語句寫的不合理的

ORA-01722:無效數字

SELECT * FROM (select a.nursing_unit_code, b.name nursingName, a.ward_code, c.name warName, c.parent_id, a.hospital_area_code from pts.pts_dept_wa

gbrank排序為什麼會造成預測值為負的原因

1:說到gbrank,做推薦演算法的人都很熟悉,這是一種learning to rank的經典方式,在現有的大公司中依然會充當線上的排序模型,博主在使用這個模型在做排序的時候,遇到一種情況,也就是這篇文章的題目,查閱了一些原理部落格和原始碼後,搞清了這個原因,現做下分享。 2:首先gbrank他

myeclipse 2013在Tomcat釋出專案時出現404問題的一些原因及解決方法

Myeclipse在開發的過程中,有時要重新修改專案名稱,但是部署在Tomcat上的webapps下面的專案名稱卻一直是上一個的專案名稱。可能的原因及解決方法: 1、mymatadata 檔案丟失 (找一個原來的新增上就ok) 2、mymatadata 檔案確實沒有在mymatadata

ORA-01843: not a valid month 錯誤

insert into ......的場合發生ORA-01843: not a valid month  錯誤 原因是timestamp型別不一致。timestamp的日期格式為YYYY-MM-DD HH24:MI:SS.FF6 解決方法: alter session set

使用Mybatis時報錯Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 無效字元

首先保證sql語句在oracle中的編寫是正確的,然後在配置檔案中插入時就報這樣的錯誤。有可能是因為sql語句後面多了“;”分號,在標籤中寫分號是錯的。如果我寫成了 insert into employees(employee_id,last_name,email,gender) values(emp