0

我正在尝试运行以下查询,但我不断收到错误消息:**ORA-01756: quoted string not properly terminated**

SELECT
    InnerTable."Cycle ID",
    (
    SELECT REPLACE(SYS_CONNECT_BY_PATH(CF_ITEM_NAME,'//'),'//','/')
            AS "Path1"
            FROM CYCL_FOLD
            START WITH CF_FATHER_ID = InnerTable."Cycle ID"
            CONNECT BY PRIOR CF_ITEM_ID = CF_FATHER_ID
    ) as "path1",
    InnerTable."CSR/RCQ Name",
    TEST.TS_DESCRIPTION as "Test Case Description",
FROM
(-- few conditions here
) InnerTable INNER JOIN TEST  ON InnerTable."Test Case ID" = TEST.TS_TEST_ID

任何人都可以告诉我语法有什么问题..非常感谢..

4

1 回答 1

1

此错误意味着您有奇数个单引号。

您发布的代码段仅包含平衡的引号对 - 在 REPLACE(SYS_CONNECT_BY_PATH(CF_ITEM_NAME() 链中。所以问题必须出在查询的删除部分:

-- few conditions here

编辑是否包含任何字符串文字?如果是这样,请检查它们。

使用支持 SQL 语法突出显示的 IDE 很容易发现此错误。


“我没有发现单引号或双引号有任何错误”

我也不。嗯。

有可能/以某种方式转义引用。这将取决于您的客户端设置。在 SQL*Plus 中,ESCAPE 默认是关闭的,除了默认的转义字符是\. 所以你的陈述将适用于我的设置......

SQL> sho escape
escape OFFSQL> select '//' from dual
  2  /

'/
--
//

SQL> c.//./
  1* select '/' from dual
SQL> r
  1* select '/' from dual

'
-
/

SQL> set escape on
SQL> r
  1* select '/' from dual

'
-
/

SQL> 

...但无论如何都要检查您的客户端设置。

于 2013-04-15T02:32:59.540 回答