在oracle里面调用java,参数是不是有长度限制?

joejoe1991 2010-08-29 06:38:54
java方法:
public class Test{
public static String create(String s) {
return s.length()+"";
}
}

创建函数:
create or replace function create(h in varchar2) return varchar2 as language java name 'Test.create(java.lang.String) return String';

通过create函数来调用java的Test.create方法。
select create('[参数]') from dual;

create函数传的参数是一个大概有三千多个字符的字符串, 可是调用的返回值是1999? 这是怎么回事? 是不是对参数长度有限制?

该怎么办? 我把h in varchar2改成h in Long也不行呃。
...全文
82 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnwz 2010-08-29
  • 打赏
  • 举报
回复
学习了,没在ORACLE中用过JAVA
hyl04 2010-08-29
  • 打赏
  • 举报
回复
学习!!!
robin_ares 2010-08-29
  • 打赏
  • 举报
回复
这就是了
web的url最大为2000字节,多出的会自动截掉
joejoe1991 2010-08-29
  • 打赏
  • 举报
回复
晕,我知道了, 是UTL_HTTP.request 只返回了1999个字符, 这是咋 回事呢。
joejoe1991 2010-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tangren 的回复:]

SQL code
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace and compile java source named testna……
[/Quote]

我不是这么测试的呃。
我是把那三千多个字符写到了一个文件里面,然后放到了网上, 然后利用
select mycreate(UTL_HTTP.request('http://xxxx/xx.txt')) from dual;

这样的方式测试的,总是返回1999,不解啊。
tangren 2010-08-29
  • 打赏
  • 举报
回复
连接到: 
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create or replace and compile java source named testname as
2 public class Test{
3 public static String create(String s) {
4 return s.length()+"";
5 }
6 }
7 /

Java 已创建。

SQL> create or replace function mycreate(h in varchar2) return varchar2 as
2 language java name 'Test.create(java.lang.String) return String';
3 /

函数已创建。

SQL>
SQL> select mycreate(lpad('0',2100,'1')) from dual;

MYCREATE(LPAD('0',2100,'1'))
----------------------------------------------------------------------------
2100

SQL>

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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