我正在编写一个使用 Oracle 数据库进行存储的 Java 软件。我可能最好将其描述为某种审计跟踪(?),记录我的测试观众做了什么,在什么日期,在什么电脑上。这些都是手动输入的,所以人们手动输入这些信息,然后将其保存到数据库中,然后由管理员查看。
这是我用于检索数据的 SQL 语句:
SELECT fld 1 as EmpNumber,
fld2 as EmpName,
fld6 as Date
FROM tblReportTemp
LEFT JOIN tblPersonalInfo b ON $P{hrStoreOp}= b.ID_PERSONAL
WHERE computerName = $P{COMPNAME}
ORDER BY fld6,fld2 asc
我的队友决定将所有字段都设为 VARCHAR 类型,然后决定让用户输入日期,而不是使用日期选择器。所以很多测试用户,懒惰的用户,只是简单地放入最容易触及的东西,比如 Q 或 1,甚至是空格。所以首先,它不会按日期正确排列,其次,我尝试在安排数据之前通过 TO_DATE(fld6, 'MM/dd/yy') 将数据转换为日期失败,因为它无法将“Q”转换为日期。
我已经用日期选择器替换了文本框,但是,我们不允许修改数据库。
所以我提出的解决方案是修改我上面的SQL语句,过滤掉那些不能转换成日期的。是否有针对 Oracle 的 SQL 查询可以做到这一点?
谢谢。