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

 
当插入日期型的项目时,会出现英文缩写月份插入错误的问题
 
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);
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值