java.sql.SQLException: ORA-06553: PLS-561: 参数 'PATTERN' 的值的字符集不匹配 SELECT publishDate,articleId,dirId,title FROM cms_article WHERE DBMS_LOB.INSTR (content, 'hhhh')<>0 AND dirId IN(SELECT dirId FROM cms_dir WHERE dirType='News') AND status=4 order by publishDate desc什么原因啊,

解决方案 »

  1.   

    SELECT publishDate,articleId,dirId,title FROM cms_article WHERE DBMS_LOB.INSTR (content, 'hhhh')>0 AND exists(SELECT 1 FROM cms_dir WHERE cms_article .dirId=cms_dir.dirId and dirType='News') AND status=4 order by publishDate desc
      

  2.   

    ORA-06553: PLS-561: 参数 'PATTERN' 的值的字符集不匹配
    还是这个错误。
    PATTERN 的参数应该是 'hhh'
    错在DBMS_LOB.INSTR (content, 'hhhh')
    不知道什么原因。
      

  3.   

    字符集是否client与server端不同
      

  4.   

    你可以用dbms_lob.instr()
    INSTR function Returns the matching position of the nth occurrence of the pattern in the LOB 
    WHERE子句中用了DBMS_LOB.INSTR过程。它有四个参数,前面两个分别表示LOB的定位符(可以直接用字段表示)和要查找的字符串;后面两个分别表示开始的偏移量和出现的次数。要注意的是必须判断它的返回值,也就是要大于0。