2012-11-20 64 views
0

誰能幫我出這一點:PL/SQL遊標ORA-00936缺少表達

CURSOR csr(start IN NUMBER, finish IN NUMBER, sort IN VARCHAR2, search IN VARCHAR2) IS 
    SELECT id, text, code, name 
    FROM (SELECT rownum r, 
       id, 
       text, 
       table1.code, 
       name 
      FROM table1, table2 
     WHERE table1.code = table2.code 
      AND (id LIKE ||'%'||search||'%' 
       OR name LIKE ||'%'||search||'%' 
       OR table1.code LIKE ||'%'||search||'%' 
       OR text LIKE ||'%'||search||'%') 
     ) 
    WHERE r > start 
AND  r <= finish 
    ORDER BY sort; 

這是給我上以下行* ORA-00936缺少表達錯誤:

AND(id LIKE ||'%'||search||'%'* 

我只測試代碼,但找不到問題所在。

任何幫助表示讚賞。

回答

1

級聯運算符「||」在操作數之間運行。在第一學期之前放置一個是錯誤的。所以「id LIKE ||'%'|| search ||'%'」應該是「id LIKE'%'|| search ||'%'」

+0

是的,這是問題所在。非常感謝您的幫助。 – user1375026