大佬教程收集整理的这篇文章主要介绍了在 Java Spring App 中获取包含 Clob 的自定义查询结果,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在 Spring App 中从 Oracle DB 获取很长的字符串,但是使用返回 clob 的函数会导致内部服务器错误 500。如何获取包含 Clob 的自定义查询结果?@H_618_3@
pl/sql 函数在 clob 中返回一个很长的字符串:@H_618_3@
create or replace function getVeryLongString(ID_ in number)
return clob as
cursOR cur IS SELEct x.TARGET || ' pX=' || x.px as tpx -- to get concat String in order of PX desc
from (
SELEct disTinct a.ID,a.TARGET,MAX(a.PX) OVER (PARTITION BY a.TARGET,a.ID) as px
from BA_ACTIVITYDATA A
where A.TARGET is not null
and a.ID = ID_
order by px desc
) x;
l_data clob := '';
begin
FOR fld IN cur
LOOP
l_data := l_data || fld.tpx || ' | ';
end loop;
return rtrim( l_data,' | ');
end
;
我在 Java Spring 应用程序的查询中使用此函数:@H_618_3@
public interface TargetRepository extends JpaRepository<List,Long> {
@query(
value = "SELEct t1.fIEldA,\n" +
" t1.FieldB,\n" +
" t2.fIEldC,\n" +
" getVeryLongString(t3.value1) as fIEldD\n" +
"from tableA t1\n" +
"join tableB t2 on t1.ID = t2.ID\n" +
"join tableC t3 on t3.ID = t2.ID\n" +
"where t.ID = :ID",nativequery = true
)
DataTypePX getDataByID(Long ID);
}
TargetActivity 界面如下所示:@H_618_3@
public interface DataTypePX {
String getFIELDA();
String getFieldB();
String getFIELDC();
String getFIELDD();
}
使用上面的代码会导致 500 ERROR。@H_618_3@
要修复它,我需要将函数 getVeryLongString 更改为返回 varchar2 - 它可以工作,但会导致将结果字符串仅剪切为 4000 个符号:@H_618_3@
create or replace function getVeryLongString(ID_ in number)
return varchar2 as
cursOR cur IS SELEct x.TARGET || ' pX=' || x.px as tpx -- to get concat String in order of PX desc
from (
SELEct disTinct a.ID,a.ID) as px
from BA_ACTIVITYDATA A
where A.TARGET is not null
and a.ID = ID_
order by px desc
) x;
-- l_data varchar2(32767) := '';
l_data clob := '';
begin
FOR fld IN cur
LOOP
l_data := l_data || fld.tpx || ' | ';
end loop;
return rtrim( substr(l_data,1,4000),' | ');
end;
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!@H_618_3@
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。@H_618_3@
小编邮箱:dio#foxmail.com (将#修改为@)@H_618_3@
以上是大佬教程为你收集整理的在 Java Spring App 中获取包含 Clob 的自定义查询结果全部内容,希望文章能够帮你解决在 Java Spring App 中获取包含 Clob 的自定义查询结果所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。