2017-09-22 11 views
0

以下の選択クエリに基づいてDelete文を準備する方法を知りたいと思います。Oracle DatabaseのSelectでWrite文を削除する

select TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') jdedate from testdta.F5847036 WHERE TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') < (sysdate-30); 

私は、識別子jdedateがSELECTクエリ内の別名として使用されている

DELETE from TESTDTA.F5847036 where jdedate in (select TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') jdedate from testdta.F5847036 WHERE TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') < (sysdate-30)); 

または

DELETE from TESTDTA.F5847036 where TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') jdedate in (select TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') jdedate from testdta.F5847036 WHERE TO_DATE(TO_CHAR(OGUPMJ+1900000),'YYYYDDD') < (sysdate-30)); 
+0

「使用できない」とは、パーサーエラーまたはランタイムエラーが発生したことを意味します。それは構文の問題なのか、クエリプランの選択問題なのでしょうか? – dlatikay

答えて

1

ことができ、使用していません。結果セットの列名を定義します。列名のエイリアスは、(復帰する列がないため)削除には役立ちません。したがって、delete文の構文では許可されません。

削除ステートメントのjdedateエイリアスの2つの発生を削除します。

+0

ありがとう@dlatikay。それはうまくいった。 – dunantsm