前些天,把mysql的数据库导到oracle10g里面。遇到了一些报错的信息,没有拷贝错误信息,因为一看就知道是日期格式错误,原来看过,但是实际没有应用过,所以,这边贴出来,作为记录,大家也可以借鉴一下。
一、情况介绍
我的mysql数据库的日期格式是:YYYY-MM-DD HH24-MI-SS(也就是中文习惯的)。可是我的oracle默认的格式是:DD-MM-RR(英文格式的)。这样就出现格式错误的问题。
二、解决方法
其实修改2个NLS的参数就可以。
alter session set NLS_DATE_LANGUAGE = 'SIMPLIFIED CHINESE';
alter session set NLS_DATE_FORMAT = 'YYYY-MM-DD HH24-MI-SS';
三、总结(纯手工输入原创的)
方式修改简单,但是一定要搞清楚NLS的各种参数,因为oracle支持太多的语言版本。所以一定注意,下面提供些NLS参数。方法简单:select * from NLS_SESSION_PARAMETERS
PARAMETER VALUE
------------------------------ ----------------------------------------
1、NLS_LANGUAGE SIMPLIFIED CHINESE
2、NLS_TERRITORY CHINA
3、NLS_CURRENCY ¥
4、NLS_ISO_CURRENCY CHINA
5、NLS_NUMERIC_CHARACTERS .,
6、NLS_CALENDAR GREGORIAN
7、NLS_DATE_FORMAT DD-MON-RR
8、NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
9、NLS_SORT BINARY
10、NLS_TIME_FORMAT HH.MI.SSXFF AM
11、NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
12、NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
13、NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
14、NLS_DUAL_CURRENCY ¥
15、NLS_COMP BINARY
16、NLS_LENGTH_SEMANTICS BYTE
17、NLS_NCHAR_CONV_EXCP FALSE
17 rows selected
17个,哈哈,逐一写写,不知道今天能不能写完。—_—''
1、设置客户和服务器端的显示语言,以二进制存放在"ORACLE_HOME\product_name\mesg"下面了。这个是随着操作系统而定的。中文操作系统默认就是中文。
2、决定日期、时间、货币等显示格式。
6、设置日历
7、设置日期格式
8、设置表示日、月的名字
11、设置时间显示格式
12、设置时间\时区的显示格式