【问题标题】:ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause: *Action:ORA-00933: SQL 命令未正确结束 00933. 00000 - “SQL 命令未正确结束” *原因:*操作:
【发布时间】:2021-03-10 19:47:33
【问题描述】:

对不起,如果我的问题听起来很愚蠢,但我对编码相对较新,尤其是在 Oracle SQL Developer 中,并且确实需要帮助。我曾经使用过 mySQL。所以我还是有点迷茫。

这是我的代码:

CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= dateadd(month,-6, getdate()) AND
deployeddate  > CURRENT_DATE();

代码错误:

Error starting at line : 1 in command -
CREATE VIEW ViewC AS
SELECT * FROM watermeter
WHERE deployeddate <= dateadd(month,-6, getdate()) AND
deployeddate  > CURRENT_DATE()
Error report -
ORA-00933: SQL command not properly ended
00933. 00000 -  "SQL command not properly ended"
*Cause:    
*Action:

如果您想知道,问题是: 列出未来 6 个月内到期更换的仪表(此视图应该能够在未来的任何时间工作,无需更改以适应日期)。

【问题讨论】:

    标签: sql oracle oracle-sqldeveloper ora-00933


    【解决方案1】:

    Dateadd 不是 oracle 函数。对于今天的日期,您可以使用sysdate

    您可以使用以下代码:

    CREATE VIEW ViewC AS
    SELECT * FROM watermeter
    WHERE deployeddate <= add_months(sysdate , -6) AND
    deployeddate  > sysdate;
    

    【讨论】:

      【解决方案2】:

      Oracle 中没有像 Dateadd 这样的函数。你可以使用

      SYSDATE     
      SYSTIMESTAMP
      TO_CHAR     
      TO_DATE     
      
      SELECT SYSTIMESTAMP FROM dual;      
      

      输出:01-AUG-17 01.33.57.929000000 PM -07:00

      TO_CHAR(DATE'2017-01-01', 'DL')

          OUTPUT: Sunday, January 01, 2017
      
      TO_DATE( '01 Jan 2017', 'DD MON YYYY' )
      
      OUTPUT: 01-JAN-17
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-09
        • 2010-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多