+ -
当前位置:首页 → 问答吧 → 一个oracle 修改语句 一直报错 ORA-00927 大家帮忙看下

一个oracle 修改语句 一直报错 ORA-00927 大家帮忙看下

时间:2011-12-21

来源:互联网

SQL code

update tableType 
set to_date(holiday_end,'yyyy-MM-dd') = to_date(to_char('2011-12-21','yyyy-MM-dd'),'yyyy-MM-dd')
where worker_id='10589'  
and HOLIDAY_TYPE='旷 工'  
and holiday_state='0' 



大家帮忙看下 该怎么修改 sql,谢谢

作者: l245382052   发布时间: 2011-12-21

SQL code

update tableType 
set holiday_end = to_date('2011-12-21','yyyy-MM-dd')
where worker_id='10589'  
and HOLIDAY_TYPE='旷 工'  
and holiday_state='0' 

作者: funfenffun   发布时间: 2011-12-21

引用 1 楼 funfenffun 的回复:

SQL code

update tableType
set holiday_end = to_date('2011-12-21','yyyy-MM-dd')
where worker_id='10589'
and HOLIDAY_TYPE='旷 工'
and holiday_state='0'


我刚开始也是这样写的但是还是报错,我才改成现在这样的

作者: l245382052   发布时间: 2011-12-21

holiday_end 是什么类型 如果是yyyy-MM-dd时间类型 在通过to_date函数就会报错了
SQL code

--如果是date类型
update tableType 
set holiday_end = to_date('2011-12-21','yyyy-MM-dd')
where worker_id='10589'  
and HOLIDAY_TYPE='旷 工'  
and holiday_state='0' 


--如果是字符串类型
update tableType 
set to_date(holiday_end,'yyyy-MM-dd') = to_date('2011-12-21','yyyy-MM-dd')
where worker_id='10589'  
and HOLIDAY_TYPE='旷 工'  
and holiday_state='0'

作者: HJ_daxian   发布时间: 2011-12-21

holiday_end 的类型是?

作者: xpingping   发布时间: 2011-12-21

报的什么错?

作者: funfenffun   发布时间: 2011-12-21

LZ这么写的话 应该是to_char('2011-12-21','yyyy-MM-dd')这个报错了 to_char函数不能将非时间类型字符串转换成yyyy-MM-dd格式 会报错'无效数字'

作者: HJ_daxian   发布时间: 2011-12-21

SQL code

--如果是varchar2,这样写吧,不过应该是date吧,用varchar2很奇怪
update tableType 
set holiday_end,'yyyy-MM-dd' = '2011-12-21'
where worker_id='10589'  
and HOLIDAY_TYPE='旷 工'  
and holiday_state='0'

作者: funfenffun   发布时间: 2011-12-21