nlnl
nlnl

Reputation: 11

ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause: *Action:

Sorry if my question sounds dumb but I'm relatively new to coding especially in Oracle SQL Developer and really need help. I used to use mySQL. So I'm still a little confused.

Here is my code:

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

The code error:

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:

In case you wanna know, the question is: List the meters that are due for replacement in the next six months (this view should be able to work at any time in the future without needing to be changed to accommodate the date).

Upvotes: 0

Views: 565

Answers (2)

Ansar Nawaz
Ansar Nawaz

Reputation: 1

There isn't any function like Dateadd in Oracle. You can use

SYSDATE     
SYSTIMESTAMP
TO_CHAR     
TO_DATE     

SELECT SYSTIMESTAMP FROM dual;      

OUTPUT: 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

Upvotes: 0

Popeye
Popeye

Reputation: 35930

Dateadd is not oracle function. And for today's date, you can use sysdate.

You can use the following code:

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

Upvotes: 1

Related Questions