这个查询有什么问题?

时间:2016-11-16 14:21:33

标签: plsql

UPDATE AC01_FILE_BLOB
SET AC01_FILE_BLOB.DATA_CONTROLLO=(TO_DATE(SELECT TO_CHAR(SYSDATE, 
                                                  'yyyy/mm/dd hh24:mi:ss') 
                                              FROM DUAL))
WHERE AC01_FILE_BLOB.DATA_CONTROLLO = (SELECT DATA_CONTROLLO 
                                         FROM AC01_FILE_BLOB 
                                        WHERE ROWNUM = 1 
                                     ORDER BY DATA_CONTROLLO desc)
  

[错误代码:936,SQL状态:42000] ORA-00936

1 个答案:

答案 0 :(得分:1)

这就是解决方案:

 UPDATE AC01_FILE_BLOB
 SET AC01_FILE_BLOB.DATA_CONTROLLO = (SYSDATE)
 WHERE AC01_FILE_BLOB.DATA_CONTROLLO = (SELECT max(DATA_CONTROLLO)
 FROM AC01_FILE_BLOB where ROWNUM = 1 );

问题是关于SYSDATE值,当我必须INSERT一条记录时,我要指定日期格式加上值,而不是在SYSDATE中我不必。 另外“order by”命令是无用的因为我必须使用max(DATA_CONTROLLO),这就是问题[求助]关于我必须确定更新的日期是MAX,谢谢大家!