缺少括号错误

时间:2014-11-28 06:47:55

标签: sql oracle

所以我创建了以下代码:

Select c_id, c_name 
From bk_CustWithOrders 
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 4)
INTERSECT 
Select c_id, c_name 
From bk_CustWithOrders 
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 3)
INTERSECT 
Select c_id, c_name 
From bk_CustWithOrders
where to_char(order_date,'MM-YYYY')=prevMonth(sysdate '2014-11-27', 2);

我收到以下错误消息:

ORA-00907: missing right parenthesis
00907. 00000 -  "missing right parenthesis"
*Cause:    
*Action:
Error at Line: 3 Column: 55

我尝试添加括号,但后来又发生了另一个错误。不知道该怎么做。

3 个答案:

答案 0 :(得分:0)

我不知道关于函数prevMonth的任何内容。

但是,我注意到sysdate和'2014-11-27'之间没有分隔符。

prevMonth(sysdate '2014-11-27', 2);

sysdate and '2014-11-27'之间使用',并重新检查:

prevMonth(sysdate, '2014-11-27', 2); 否则你必须使用sysdate or '2014-11-27'

中的任何一个

prevMonth(sysdate, 2);

prevMonth('2014-11-27', 2);

答案 1 :(得分:0)

第3行,第55栏正好在这一部分的开头:

' 2014-11-27',4)

他说:我不明白为什么你把一个空格作为分隔符。

答案 2 :(得分:0)

sysdate '2014-11-27'无效。

如果您只想指定日期文字,则应为:date '2014-11-27'

sysdate是一个返回当前日期的函数。如果您只想将当前日期传递给该功能,请仅使用 sysdate