PL / SQL游标ORA-00936缺少表达式

时间:2012-11-20 15:18:26

标签: plsql cursor 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 Missing Expression错误:

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

我只测试代码,但无法找到问题所在。

任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

连接运算符“||”在操作数之间进行。在第一个学期之前放一个是错误的。所以“id LIKE ||'%'|| search ||'%'”应该是“id LIKE'%'|| search ||'%'”