Sql 在Oracle数据库中的Select上写入Delete语句
我想知道如何根据下面的select查询准备Delete语句Sql 在Oracle数据库中的Select上写入Delete语句,sql,oracle,Sql,Oracle,我想知道如何根据下面的select查询准备Delete语句 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 jdedate in (select TO_DATE(TO_C
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 jdedate in (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不有用,因为没有可返回的列,因此delete语句的语法不允许使用列名别名
删除delete语句中出现的两个jdedate别名。请向我们提供更多关于“无法使用”意味着什么的背景信息:您会遇到解析器错误还是运行时错误?这是一个语法问题还是一个查询计划选择问题?
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));