〖现象(Symptom) 〗
执行下面的脚本,提示日期格式不匹配。
RMAN> run
2> {
3> allocate channel c1 type disk;
4> SET UNTIL TIME '2006-11-2 14:20:00';
5> release channel c1;
6> }
allocated channel:c1
channel c1:sid=158 devtype=DISK
executing command:SET until clause
。。。
RMAN-03002:failure of set command at 11/02/2006 14:33:52
ORA-01861:literal does not match format string
〖原理(Cause) 〗
备份脚本中指定的日期格式不匹配。
〖方法(Action) 〗
u 方法一:使用TO_DATE()函数。
把上面的脚本改成:
run
{
allocate channel c1 type disk;
SET UNTIL TIME "TO_DATE('2006-11-2 14:20:00', 'YYYY-MM-DD HH24:MI:SS')";
release channel c1;
}
u 方法二:设置会话(session)的日期格式。
把上面的脚本改成:
run
{
allocate channel c1 type disk;
sql 'alter session set nls_date_format="yyyy-mm-dd:hh24:mi:ss"';
SET UNTIL TIME '2006-11-2 14:20:00';
release channel c1;
}
在执行SET UNTIL TIME以前,首先使用alter session set nls_date_format命令设置日期的格式。SET UNTIL TIME指定的日期格式必须与nls_date_format指定的格式相匹配。