【发布时间】:2013-06-01 19:48:19
【问题描述】:
我的基表结构如下所示:
创建表示例_表
{
ID NUMBER NOT NULL,
-- 这里的其他栏目,
CREATE_USER VARCHAR2(255 BYTE) NOT NULL,
CREATE_DATE DATE DEFAULT SYSDATE NOT NULL,
UPDATE_USER VARCHAR2(255 字节),
UPDATE_DATE日期
}
我想要做的是选择具有最高 update_date 或 create_date 的行的 id。所以像这样(虽然这不起作用 - pID 被定义为存储过程中的输出变量):
SELECT ID, MAX(GREATEST(CREATE_DATE, UPDATE_DATE) 作为 LAST_MODIFIED
FROM 示例表
将 ID 返回到 pID;
这将返回表中修改的最后一行的单个 id。一点帮助?
附:这是在 Oracle11g 中。我目前正在使用 MERGE 将行插入到表中,并使用此方法获取最后插入的行的 id。如果您对此有任何建设性的批评(可能有替代解决方案),我会全力以赴。我已经阅读了很多关于为什么这是好/坏的论点。我将在 c# 中调用此过程,因此欢迎提供任何其他提示。
【问题讨论】:
标签: c# sql oracle stored-procedures