oracle存储过程中创建java source遇到的问题

insulator2008 2014-11-07 04:13:22

create or replace and compile java source named sqlsplit as
public class SqlSplit {
public static String splitSql(String source_string,String search_string ,String replace_string ){
if(source_string!=null&&source_string.length()>0){
source_string=source_string.replace(search_string,replace_string);
}
return source_string;
}
}


一个很简单的方法,三个参数都是从数据库中查询出来的varchar2,利用存储过程传参过来,然后search_string 中存在正则表达式的元字符,所以使用正则表达式匹配的话可能会出问题,只能做全量替换。在java中代码运行正常,但是放到oracle中就报下面的错误,该怎么破?或者有什么思路解决?replace(char,char) in java.lang.String cannot be applied to (java.lang.String,java.lang.String),不知道为什么oracle就认为replace的参数就是char类型。求助。


JAVA SOURCE DSP_DEV.SQLSPLIT 编译错误
错误:SQLSPLIT:4: replace(char,char) in java.lang.String cannot be applied to (java.lang.String,java.lang.String)
行:1
文本:create or replace and compile java source named sqlsplit as
错误:source_string=source_string.replace(search_string,replace_string);
行:1
文本:create or replace and compile java source named sqlsplit as
错误:1 error
行:1
...全文
476 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
不写代码的钦 2014-11-09
  • 打赏
  • 举报
回复
oracle 中 replace函数char和varchar2都可以通用的,具体用法给你举个例子: replace('ab','a') 得到结果是‘b’,replace('ab','a','b')得到结果是‘bb’
insulator2008 2014-11-07
  • 打赏
  • 举报
回复
为什么没有人回帖呢???
insulator2008 2014-11-07
  • 打赏
  • 举报
回复
不要沉,upup
insulator2008 2014-11-07
  • 打赏
  • 举报
回复
自己顶一下。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧