java - 为什么字符串打印不正确?

标签 java sql oracle spring stored-procedures

我在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 上运行它,它运行正常。

它给我列出了我的好 friend 和最好的 friend 。

但是当我通过扩展 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 给出正确的结果?

提前致谢。

最佳答案

您将答案作为字符串数组获取,然后存储在列表字符串中。您不能将字符串[] 直接存储到字符串中。

你能发布用于获取和打印的 java 代码吗...

关于java - 为什么字符串打印不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529600/

相关文章:

Java 小程序/对话框奇怪的行为

java - 即使在 Spring boot 中传递了 args 之后,也使用 applicationContext 调用 noArgs 构造函数创建 bean

python - 使用 SQLALCHEMY 设置 Oracle VARCHAR2 长度 i 字节

java - 使用 Hibernate 从 Oracle DB 获取 500K+ 行

java - 我正在从java读取文本文件(逗号作为分隔符)

java - 如果在java中使用MAP,如何发送JSON @RequestBody?

java - 中断的线程仍在继续执行

sql - VS2010数据库项目用ALTER语句生成SQL03070错误

php - SQL语句切换值并且不插入数据库

sql - 选择$(美元符号)