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 に答える