我面临将sql查询转换为oracle的问题。实际上我是oracle db的新手。
SELECT TI1.FOLDERRSN, DBO.F_OPENTAX_PROPERTYROLL_FOLDER(TI1.FOLDERRSN) ROLL,
TI1.DUEDATE DUEDATE, TI1.YEARFORBILLING,(TI1.SUMDUETAX + TI1.SUMPAIDTAX + TI1.SUMDUEPENALTY + TI1.SUMPAIDPENALTY) OUTSTANDING
FROM TAXINSTALLMENT TI1 WHERE (TI1.SUMDUETAX + TI1.SUMPAIDTAX + TI1.SUMDUEPENALTY + TI1.SUMPAIDPENALTY) > 0
AND EXISTS (SELECT * FROM TAXINSTALLMENT TI2 WHERE YEAR(TI2.DUEDATE) BETWEEN 1980 AND YEAR(GETDATE()) - 5 AND (TI2.SUMDUETAX + TI2.SUMPAIDTAX + TI2.SUMDUEPENALTY + TI2.SUMPAIDPENALTY) > 0
AND TI2.FOLDERRSN = TI1.FOLDERRSN ) ORDER BY TI1.FOLDERRSN, DUEDATE DESC
任何人都允许我改变oracle的想法。
由于
答案 0 :(得分:1)
该语句在Schema DBO中使用函数F_OPENTAX_PROPERTYROLL_FOLDER(TI1.FOLDERRSN)。确保您已在该数据库架构中安装该功能,并已向相关用户或PUBLIC授予执行权。
编辑:此外,Oracle中没有YEAR功能。您必须将其替换为EXTRACT:EXTRACT(YEAR FROM TI2.DUEDATE)
和GetDate():EXTRACT(YEAR FROM SYSDATE)
。