2015-04-08 129 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')' –