我的基本表结构如下所示:
CREATE TABLE EXAMPLE_TABLE
{
ID NUMBER NOT NULL,
— Other columns here,
CREATE_USER VARCHAR2(255 BYTE) NOT NULL,
CREATE_DATE DATE DEFAULT SYSDATE NOT NULL,
UPDATE_USER VARCHAR2(255 BYTE),
UPDATE_DATE DATE
}
我要做的是选择具有最高update_date或create_date的行的ID.所以像这样(虽然不起作用-pID被定义为存储过程中的out变量):
SELECT ID, MAX(GREATEST(CREATE_DATE, UPDATE_DATE) as LAST_MODIFIED
FROM EXAMPLE_TABLE
RETURNING ID INTO pID;
这将返回实质上是表中最后一行的单个id.没有什么帮助?
附言这是在Oracle11g中.目前,我正在使用MERGE将行向上插入表中,并使用此方法来获取最后一个向上插入行的ID.如果您对此有任何建设性的批评(可能有替代解决方案),我无所不能.我已经读了很多关于为什么这是好/坏的争论.我将在c#中调用此过程,因此不胜感激.