【问题标题】:ORA-00923 FROM keyword not found where expectedORA-00923 FROM 关键字未在预期位置找到
【发布时间】:2009-09-17 13:51:26
【问题描述】:

我正在尝试连接一些字段以从 oracle 表中为每一行返回一个字符串。这是10克。这是我的查询:

SELECT t.value || '|' || t.label || '|' t.label_abbrv || '||' "mylist" 
  FROM list_value t
 WHERE t.value BETWEEN 195001 AND 195300;

我收到“未在预期位置找到 FROM 关键字”错误。这真的很烦人。这是一个简单的查询。我确定这是我缺少的一些简单的东西。

【问题讨论】:

    标签: sql oracle plsql ora-00923


    【解决方案1】:

    如果您使用 SQLPLUS 客户端,它会为您节省一点时间:

    SQL> SELECT value || '|' || label || '|' label_abbrv || '||' "mylist"
      2  from list_value where (value between 195001 and 195300);
    SELECT value || '|' || label || '|' label_abbrv || '||' "mylist"
                                                    *
    ERROR at line 1:
    ORA-00923: FROM keyword not found where expected
    

    您可以将查询拆分为多行以隔离问题:

    SQL> edit
    Wrote file afiedt.buf
    
      1  SELECT value || '|'
      2  || label ||
      3  '|' label_abbrv ||
      4  '||' "mylist"
      5  from list_value
      6  where
      7* (value between 195001 and 195300)
    SQL> /
    '|' label_abbrv ||
                    *
    ERROR at line 3:
    ORA-00923: FROM keyword not found where expected
    

    您可能会发现 SQLPLUS 是“原始的”,但是,嗯,这对另一个问题很有好处。让我看看有没有其他人问过这个问题。

    【讨论】:

    • SQLPlus 可能是原始的,但它是唯一始终有效且从不撒谎的工具。 (据记录,我大部分时间都在 TOAD 度过)。为最佳答案投一票。
    • @ericp:很好的建议!下次它无法运行时,我将不得不尝试将查询拆分为多行。
    【解决方案2】:

    天啊!我发现了问题。我错过了一个连接!

    SELECT value || '|' || label || '|' ****||**** label_abbrv || '||' "mylist"
    from list_value where (value between 195001 and 195300);
    

    【讨论】:

    • “mylist”也可能是个问题......但我怀疑你的意思不是字面意思。如果您将其替换为“bananas|apples|sofas”,则没有问题。
    • 我想“mylist”是一个列别名;)
    • @jhartelt:是的,“mylist”只是列标题;我修复了丢失管道的位置...我无法复制/粘贴,因为查询位于不同的网络/计算机上
    【解决方案3】:

    我认为您对自己问题的回答仍然是错误的 - 应该是:

    SELECT value || '|' || label || '|' || label_abbrv || '||' "mylist" 
                                       ^^^^
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2016-10-17
      • 2020-08-03
      相关资源
      最近更新 更多