0

誰でもこれで私を助けることができます:

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||'%'*

コードをテストしているだけですが、問題が何であるかがわかりません。

どんな助けでも感謝します。

4

1 に答える 1

1

連結演算子「||」オペランドの間を移動します。第一項の前に置くのは誤りです。したがって、「id LIKE ||'%'||search||'%'」は「id LIKE '%'||search||'%'」である必要があります。

于 2012-11-20T15:24:01.077 に答える