2013-04-15 65 views
0

我試圖運行下面的查詢和我不斷收到錯誤:**ORA-01756: quoted string not properly terminated**子查詢在SELECT語句的語法錯誤

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 

任何機構可以告訴我什麼是錯的syntax..Thanks這麼多..

+0

在哪一行是錯誤? – sashkello

+0

@sashkello這個錯誤是因爲在SELECT語句的選擇子查詢的,如果我刪除的那部分它是工作的罰款...... – javanoob

+2

您在隔離這是問題的一部分的方向打算。現在通過隔離引號內的唯一部分來完成它。換句話說,將REPLACE(SYS_CONNECT_BY_PATH(CF_ITEM_NAME,'//'),'//','/')'改爲像'TEST''這樣的無害的東西。這可能是'/'符號正在轉義引號或其他內容。 –

回答

1

這個錯誤意味着你有奇數個單引號。

您發佈的片段只包含引號的平衡對 - 在REPLACE(SYS_CONNECT_BY_PATH(CF_ITEM_NAME()鏈,使這個問題必須位於查詢的切除部分:

-- few conditions here 

是否新版本包括任何字符串文字?如果是這樣的檢查。

這個錯誤很容易與它支持SQL語法高亮IDE發現。


" i don't find any error with the single or double quotes"

我也沒有。嗯。

還有就是/以某種方式逃避報價的可能性。這將取決於你的客戶端設置。在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> 

...但無論如何請檢查您的客戶端設置。

+0

嗨APC,下面是完整的查詢http://pastebin.com/pEnDy5qU,我沒有找到任何錯誤與單或雙引號 – javanoob

+0

APC,其實我使用HP質量中心運行此查詢。當我用*符號替換雙引號時,它工作正常。不知道爲什麼它表現得如此。感謝您的時間.. – javanoob