2012-11-20 65 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