【发布时间】:2012-09-13 19:42:48
【问题描述】:
我在 oracle 中创建了一个用户类型
create or replace type my_friend_list
is
table of
varchar2(100);
现在我编写了一个具有如下输出参数的程序:
PROCEDURE friends_diff_prc
(
my_name IN VARCHAR2,
friend_i IN my_friend_list ,
good_friend_o OUT my_friend_list ,
best_friend_o OUT my_friend_list ,
isSuccess OUT NUMBER
);
我在SQLDeveloper 上运行它并且运行正常。
它给我列出了我的好朋友和最好的朋友。
但是当我通过扩展 StoredProcedure 的 JAVA 类调用它时。
best_friend 列表即将到来,但 good_friend 列表正在打印
Ljava.lang.Object;@24342434,
Ljava.lang.Object;@243a243a,
Ljava.lang.Object;@24402440,
Ljava.lang.Object;@24462446
我获取这个输出数组列表的 java 代码是这样的:
List<String> goodfriends = Arrays.asList((String[]) results.get("good_friend_o");
List<String> bestfriends = Arrays.asList((String[]) results.get("best_friend_o");
为什么它没有为 good_friends 提供正确的结果?
提前致谢。
【问题讨论】:
-
Ljava.lang.Object;@24462446表示您正在尝试打印Object[]数组。您能否尝试使用for(Object o : (Object[]) goodFriend) {System.out.println(o);}遍历good_friend实例并使用结果编辑您的问题? -
@sp00M 我不明白为什么它为最好的朋友正确打印
-
我也不知道,但如果你按照我告诉你的那样尝试打印,也许我们会找到。
标签: java sql oracle spring stored-procedures