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