【问题标题】:Why is the GETDATE() an invalid identifier为什么 GETDATE() 是无效标识符
【发布时间】:2013-04-05 00:42:47
【问题描述】:

当我调试这段代码时,为什么 GETDATE() 是一个无效的标识符:Oracle Sql Developer 工具:

CREATE OR REPLACE TRIGGER SPName
AFTER UPDATE
ON TableName 
FOR EACH ROW
BEGIN
    UPDATE TableName SET LastModifiedDate = GETDATE() WHERE TableName.DET_ID = :new.DET_ID;
END;

【问题讨论】:

  • 1) 使用sysdate 而不是getdate()。 2) 不允许访问为此表定义的触发器内的表。

标签: oracle function triggers


【解决方案1】:

我想你想要SYSDATE,而不是GETDATE()。试试看:

UPDATE TableName SET LastModifiedDate = (SELECT SYSDATE FROM DUAL);

【讨论】:

    【解决方案2】:

    SYSDATEGETDATE 执行相同。

    SYSDATE 兼容 Oracle 语法,GETDATE 兼容 Microsoft SQL Server 语法。

    【讨论】:

      【解决方案3】:

      getdate() 用于 MS-SQL,sysdate 用于 Oracle 服务器

      【讨论】:

      • 所以;这如何添加到已经涵盖此信息的两个答案中?
      【解决方案4】:

      使用getdate() 的ORACLE 等效项,即sysdateRead about here. getdate() 属于 SQL Server ,不能在 Oracle 上工作。

      其他选项是current_date

      【讨论】:

      • current_date 呢?一样吗?
      猜你喜欢
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2020-06-20
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多