0

この質問には些細な答えがあるかもしれないことを理解しています。特定の条件が満たされたときに、巨大なテーブルから特定の行を削除したいと考えています。条件は on drdate(varchar フィールド) で、日付情報を保持するため、変換する必要があります。テーブルは巨大で、理想的には、クエリの実行にあまり時間をかけたくない.

delete from products 
where (to_date('drdate','mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))

これは以下を返します:

SQL エラー: ORA-01858: 数値が必要な場所に非数値文字が見つかりました 01858.00000

4

1 に答える 1

2

これを試して:

delete from products 
where (to_date(drdate,'mm/dd/yyyy')) > (to_date('01/01/2011','mm/dd/yyyy'))

コメントで述べられているように、引用符により、関数は列の値ではなく文字列値'drdate'drdateを評価します。

于 2012-10-30T15:07:01.837 に答える