您的位置:首页 > 其它

ORA-01843:插入带英文缩写月份的日期发生错误解决方法

2008-01-10 10:57 816 查看
当插入日期型的项目时,会出现英文缩写月份插入错误的问题

C:/Documents and Settings/yangxiujin>sqlplus system/xxxx@ora
SQL> desc sales_data;
名前 NULL? 型
----------------------------------------- -------- ---------------------------

TXN_ID NOT NULL NUMBER
PRODUCT_ID NUMBER
PROD_CATEGORY VARCHAR2(2)
CUSTOMER_ID VARCHAR2(10)
SALE_DATE DATE
SALE_QTY NUMBER
SALE_PRICE NUMBER

SQL> @c:/salse_date.sql
SP2-0310: ファイル"c:/salse_date.sql"をオープンできません。
SQL> @c:/sales_date.sql
4,413354981,'V','41',to_date('1117-Jan-02','YYYY-MON-DD'),1,12.95)
*
行3でエラーが発生しました。:
ORA-01843: not a valid month
1行が作成されました
-----------------------------------------------------------------------------------
ORA-01843错误发生。
SQL中,SQL语法:
INSERT INTO SALES_DATA
VALUES(
4,413354981,'V','41',to_date('1117-Jan-02','YYYY-MON-DD'),1,12.95);
INSERT INTO SALES_DATA
VALUES(
4,413354981,'V','41',to_date('1117-01-02','YYYY-MM-DD'),1,12.95);

语法没有问题。

是什么的问题呢?

C:/Documents and Settings/yangxiujin>set nls_lang
nls_lang=JAPANESE_JAPAN.JA16SJISTILDE

现在使用的字符集是日语字符集,对包含有月份‘Jan’的格式不支持。

需要做出如下修改才能插入带英语月份简写的日期

SQL> desc sales_data;
名前 NULL? 型
----------------------------------------- -------- ----------------------------

TXN_ID NOT NULL NUMBER
PRODUCT_ID NUMBER
PROD_CATEGORY VARCHAR2(2)
CUSTOMER_ID VARCHAR2(10)
SALE_DATE DATE
SALE_QTY NUMBER
SALE_PRICE NUMBER

SQL> @c:/salse_date.sql
SP2-0310: ファイル"c:/salse_date.sql"をオープンできません。
SQL> @c:/sales_date.sql
4,413354981,'V','41',to_date('1117-Jan-02','YYYY-MON-DD'),1,12.95)
*
行3でエラーが発生しました。:
ORA-01843: not a valid month

1行が作成されました。

SQL> exit
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining optionsとの接続が切断されました。

C:/Documents and Settings/yangxiujin>set nls_lang
環境変数 nls_lang が定義されていません

C:/Documents and Settings/yangxiujin>
set nls_lang=AMERICAN_AMERICA.US7ASCII

C:/Documents and Settings/yangxiujin>set nls_lang
nls_lang=AMERICAN_AMERICA.US7ASCII

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> @c:/sales_date.sql;

1 row created.

1 row created.

SQL>
成功!!!!


sales_date.sql
INSERT INTO SALES_DATA
VALUES(
4,413354981,'V','41',to_date('1117-Jan-02','YYYY-MON-DD'),1,12.95);
INSERT INTO SALES_DATA
VALUES(
4,413354981,'V','41',to_date('1117-01-02','YYYY-MM-DD'),1,12.95);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: