2015-04-08 123 views
0

我面临的问题是在Oracle 9i中早些时候使用的更新语句,但现在它不更新Oracle 11G中的任何行。这是我正在使用的声明。更新声明适用于Oracle 9i,但不适用于Oracle 11G

update account 
set 
    days_to_validate = validated_date - val_requested_Date 
where 
    validated_date >= val_requested_date 

validated_dateval_requested_date格式中的两个日期字段:dd-mmm-yyyy(18-MAR-2015)。在我们进行升级之前,这在Oracle 9i的早期工作。

请咨询我们如何解决这个问题。

感谢 普拉香特

+1

他们是日期字段?或者他们的varchar字段存储日期? –

+0

请提供“帐户”表的定义,例如'create table'语句。 – ThinkJet

+0

你好,你可以解决这个问题。我试过包括“to_date”函数,它在Oracle 11G中工作。这是我对查询所做的更改。 –

回答

1

我能解决这个问题。我试过包括“to_date”函数,它在Oracle 11G中工作。这是我对查询所做的更改。

update account 
    set days_to_validate = to_date(validated_date) - to_date(val_requested_Date) 
    where to_Date(validated_date) >= to_date(val_requested_date) 
+1

为了完全安全,您应该在'TO_DATE() '函数 - 例如'TO_DATE(validated_date,'dd-mmm-yyyy')' –