SQL Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
RMAN> recover database until time ‘2012-02-29:21:30:00‘; Starting recover at 2012-02-29:22:47:33 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=159 devtype=DISK RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of recover command at 02/29/2012 22:47:34 ORA-01861: literal does not match format string 解决方法: Oracle的日期格式默认设置是DD-MON-YY,很多时候我们需要修改这种格式以满足我们的需求。 可以通过设置NLS_DATE_FORMAT来改变日期格式,为了让这种改变永久生效,介绍下面的几种方法: 1、修改glogin.sql文件,这个文件的路径: Windows下,%ORACLE_HOME%\sqlplus\admin UNIX下,$ORACLE_HOME/sqlplus/admin 在文件中加上:alter session set nls_date_format=‘yyyy-mm-dd hh24:mi:ss‘; 2、修改注册表(Windows平台下) 开始 =》运行=》regedit=》HKEY_LOCAL_MACHINE=》SOFTWARE=》ORACLE=》HOME0 =》新建 字符串值NLS_DATE_FORMAT ,并设置其值为:YYYY-MM-DD:HH24:MI:SS 如果是windows: set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1 set NLS_DATE_FORMAT=YYYY_MM_DD:HH24:MI:SS 3、修改用户环境变量配置文件(UNIX平台下),加上 export NLS_LANG=AMERICAN export NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS‘ 有时候只设置了NLS_DATE_FORMAT,而不设置NLS_LANG可能日期格式不会改变(参考RollingPig的文章),这个可能跟平台及Shell类型有关系。 rman会话中设置nls_date_format和nls_lang run { ...... sql ‘alter session set NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"‘; sql ‘alter session set NLS_LANGUAGE="AMERICAN"‘; ...... } |
时间: 2024-10-13 16:16:06