Oracle 9 - 案例陈述 - ORA-00907:缺少右括号

时间:2015-07-24 17:53:29

标签: oracle

让我们从免责声明开始。我有一堆SQL经验,但几乎没有Oracle经验。我正在处理一些继承的查询,并尝试将它们弯曲到我的意愿。

我写了以下查询。

set colsep ,
set echo off
set feedback off
set heading off
set headsep off
set linesize 1000
set pagesize 0
set tab off
set term off
set trimspool on
set verify off

DEFINE SEP = CHR(31)

SPOOL "&&1"

SELECT (RAG_SKUS_ST.SKU || '_' || RAG_SKUS_ST.STORE
  || &&SEP || RAG_SKUS_ST.UNIT_RETAIL
  || &&SEP || RAG_STYLE.RECOMMEND_RETAIL
  || &&SEP || ITEM_ZONE_PRICE.UNIT_RETAIL
  || &&SEP || RAG_SKUS_ST.STOCK_ON_HAND
  || &&SEP || (CASE WHEN RAG_SKUS_ST.CLEAR_IND = 'N' AND GROUPS.DIVISION = 90 THEN 'N' ELSE 'Y' END) IS_CLEARANCE
  || CHR(10))
FROM
  RAG_SKUS_ST,
  RAG_SKUS,
  RAG_STYLE,
  DEPS,
  GROUPS,
  ITEM_ZONE_PRICE
WHERE
  RAG_SKUS_ST.SKU                 = RAG_SKUS.SKU    AND
  RAG_SKUS.STYLE                  = RAG_STYLE.STYLE AND
  DEPS.DEPT                       = RAG_STYLE.DEPT  AND
  GROUPS.GROUP_NO                 = DEPS.GROUP_NO   AND
  ITEM_ZONE_PRICE.ITEM            = RAG_SKUS.SKU    AND
  ITEM_ZONE_PRICE.BASE_RETAIL_IND = 'Y'             AND
  RAG_SKUS_ST.SKU                 LIKE '%&&3'       AND
  RAG_SKUS_ST.STORE               = &&2;

SPOOL OFF

此查询在case语句的行上抛出错误 ORA-00907:缺少右括号

从这里或那里读取Oracle似乎在遇到无法嵌套在其他代码中的代码时抛出该错误。

任何帮助都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:4)

您似乎在IS_CLEARANCE之后有一个别名(case),但下一行添加了另一个连接。您只能为整个列提供别名。