从 Java 调用 PL/SQL 函数时出现“SQLException: ORA-06550”

2023-12-23

我想使用 Java 从数据库检索数据并显示它,因此我创建了这个 PL/SQL 函数,它返回一个游标:

create or replace function std_getInfoFunc return types.cursortype 
as 
    my_cursor    types.cursorType; 
begin 
    open my_cursor FOR
    SELECT s.FirstName, s.LastName, s.Address, s.City, s.Province
        , s.PostalCode, c.CourseName
    FROM Students s, Courses c, StudentAndCourses cs
    Where s.StudentID = cs.StudentID
        AND c.CourseID = cs.CourseID;
    Return my_cursor;
end; 

在我的 Java 代码中,我按如下方式调用该函数:

try{
    CallableStatement cst=connection.prepareCall("{? = call std_getInfoFunc}");
    cst.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
    cst.execute();

    res=(ResultSet) cst.getObject(1);

    while(res.next()){
        System.out.println(res.getString(1));
    }
}
catch(SQLException e){
    e.printStackTrace();
}
finally{
    res.close();
    cst.close();
    conn.close();
}

该代码产生以下异常:

 run:
  java.sql.SQLException: ORA-06550: line 1, column 13:
   PLS-00905: object SAS.STD_GETINFOFUNC is invalid
  ORA-06550: line 1, column 7:
  PL/SQL: Statement ignored

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:202)
at        
  oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:1005)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3550)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4710)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1374)
at DBControler.viewStdInfo(DBControler.java:95)
at Test_02.main(Test_02.java:18)

Why?


错误的可能原因是:(在代码片段 - 函数中)

1. 包“types”不存在。

  create or replace package types 
    as 
        type cursorType is ref cursor; 
    end; 
    /

2 无效的 SQL select 语句(创建函数后表或列已被删除或更改)。

你需要写一个new function with simplesql语句并运行在Sql提示并与Java code.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Java 调用 PL/SQL 函数时出现“SQLException: ORA-06550” 的相关文章

  • 我们可以在不使用 main 方法、静态变量和静态方法的情况下在控制台上打印 java 消息吗?

    public class Test param args 1st way public static void main String args TODO Auto generated method stub System out prin
  • ResultSet:通过索引检索列值与通过标签检索

    使用 JDBC 时 我经常遇到这样的结构 ResultSet rs ps executeQuery while rs next int id rs getInt 1 Some other actions 我问自己 以及代码作者 为什么不使用
  • 全静态方法和应用单例模式有什么区别?

    我正在创建一个数据库来存储有关我的网站用户的信息 我正在使用 stuts2 因此使用 Java EE 技术 对于数据库 我将创建一个 DBManager 我应该在这里应用单例模式还是将其所有方法设为静态 我将使用这个 DBManager 进
  • 使用 Hibernate Dialect 设置表字符集/排序规则?

    我使用 Hibernate MySQLInnoDB Dialect 来生成 DDL hibernate cfg xml
  • AffineTransform.rotate() - 如何同时缩放、旋转和缩放?

    我有以下代码 它可以完成我想要绘制一个上面有一些棋子的棋盘的 第一部分 Image pieceImage getImage currentPiece int pieceHeight pieceImage getHeight null dou
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • 我需要一个字数统计程序[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要弄清
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • 在带有循环引用的表中插入 SQL

    我有 2 张桌子 Empleados numEmpl nombre apellido sexo telefono salario numDept Departamentos numDept nombreDept numDirect 在部门中
  • Java 中的 MP4 容器编写器

    我想找到一个免费的 Java MP4 容器 编写器 我不需要编码器 只需要能够根据预期值写入正确原子的编码器 Bonus对于这样一个库 也可以编写 有效 F4V 我更喜欢纯 Java 解决方案 而不是使用 JNI 或外部可执行文件的解决方案
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 无法自动装配 org.springframework.mail.javamail.JavaMailSender

    尝试运行我的应用程序时遇到以下问题 所有的东西都调试过了 还是一无所获 IDE 毫无问题地找到了 bean 所以我对这里发生的情况感到非常困惑 SEVERE Exception sending context initialized eve
  • java中日期转换dd-MMM-yyyy到dd-MM-yyyy

    在Java中将23 Mar 2011转换为23 03 2011的最简单方法是什么 感谢大家 这似乎解决了这个问题 try Calendar cal Calendar getInstance cal setTime new SimpleDat
  • Java字符串查找和替换的最佳方法?

    我正在寻找 Java 中字符串查找和替换的最佳方法 这是一句话 我的名字叫米兰 人们都知道我叫米兰瓦西奇 我想用 Milan Vasic 替换 Milan 弦 但在我已经有 Milan Vasic 的地方 情况不应该是这样 搜索 替换后的结
  • while 之后无法访问的语句[重复]

    这个问题在这里已经有答案了 我只是修改代码 在以下代码中出现错误 int x 1 System out println x x while true x System out println x x 错误在最后一行 我可以知道错误 错误 无
  • Spring Transactional 减慢了整个过程

    我正在尝试分析我有两堂课的情况 其中一个类是 ProcessImpl 它是起点并在内部调用其他子事务 我不知道出了什么问题 processImpl正在导入一些东西并将相关数据写入数据库 Specs Spring orm版本 3 2 18 发
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 使用正则表达式匹配阿拉伯文文本

    我试图使用正则表达式仅匹配阿拉伯语文本 但出现异常 这是我的代码 txt matches P Arabic 这是例外情况 线程 main 中的异常 java util regex PatternSyntaxException 索引 9 附近
  • 获取Java中ResultSet返回的行数

    我用过一个ResultSet返回一定数量的行 我的代码是这样的 ResultSet res getData if res next System out println No Data Found while res next code t
  • Java 可变 BigInteger 类

    我正在使用 BigIntegers 进行计算 该计算使用一个调用 multiply 大约 1000 亿次的循环 并且从 BigInteger 创建新对象使其非常慢 我希望有人编写或找到了 MutableBigInteger 类 我在 jav

随机推荐

  • Java FileHandler 禁用日志轮转

    我正在尝试禁用日志轮换 以供文件处理程序使用 FileHandler fh new FileHandler path run log 1000000 1 false 我想要的是一个日志 为每次运行创建 我不想轮换或备份旧文件 但使用此初始化
  • 从不同的数据框中获取数据

    我有一个数据框 Name Subset Type System A00 IU00 A OP A A00 IT00 PP A B01 IT 01A PP B B01 IU OP B B03 IM 09 B LP A B03 IM03A OP
  • 从 Gecko 和 Webkit 中的选择(范围)中检索父节点

    我试图在使用使用 createLink 命令的所见即所得编辑器时添加属性 我认为取回浏览执行该命令后创建的节点是很简单的 结果 我只能在 IE 中获取这个新创建的节点 有任何想法吗 以下代码演示了该问题 底部的调试日志在每个浏览器中显示不同
  • 将 AMQ 与 Rest API 网关集成

    我正在尝试将 AMQ 与 api 网关集成 以便我可以使用 API 网关中的 AWS 资源选项将消息直接从 api 网关推送到 AMQ 并在部署 AWS ARN 时收到此错误 因为集成包含无效操作 我应该在这里使用什么操作 以便 api 网
  • Eclipse Java:“创建字段”快速修复建议的模板?

    在构造函数中 我经常分配给一个不存在的字段 然后选择 Ctrl 1 在 CurrentType 类型中创建字段 memberField 问题是我希望该字段默认为最终字段 但事实并非如此 是否有用于此快速修复的模板 谢谢 我没有看到任何明显的
  • 是否可以从 Clojure 重新定义 Java 方法?

    使用多方法 我们可以向现有的 Java 类添加方法 我的问题是是否可以从 Clojure 代码重新定义一种特定方法以及如何重新定义 例如 如果您有以下课程 public class Shape public void draw 我希望能够运
  • 弹簧批次容错能力

    我正在尝试从 csv 文件导入城市数据 某些数据可能会重复 从而引发冲突错误ERROR duplicate key value violates unique constraint city unique idx Detail Key co
  • 两个 swift 函数极大地增加了编译时间

    返回并阅读我的应用程序的构建日志后 似乎存在一个奇怪的问题 两个 相对 简单的函数都将编译时间各增加一分钟 分别为 58 秒和 53 秒 这可以在我下面的构建日志中看到 这些函数位于我的 CAAgeViewController 中 并且都引
  • 真正换行 (LF) 的转义序列

    在 C 语言中 我们有几个常见的转义序列 r对于回车符 CR 这相当于做 015 n通常被描述为换行 LF 但我知道 n 将根据 CRLF 的要求被翻译成字符串 取决于操作系统 这相当于做 015 012 特别是如果我是东阿printf o
  • C++ - 使用引用类型的模板实例化

    我听说过一些关于引用到引用问题的知识this http www comeaucomputing com iso cwg defects html 106解决 我不太熟悉 C 委员会的术语 但我理解链接中的 Moved to DR 注释意味着
  • 检查输入值时出错

    我有一个使用 readline 要求人们输入数据的函数 但我不知道确保输入的数据符合我的标准的最佳方法 我认为 if 语句可能是检查错误的最佳方法 但我不确定如何合并它们 我使用它们的尝试显然是有缺陷的 见下文 举一个简单的例子 我最可能遇
  • vim 中的 Javascript 语法高亮显示

    还有其他人发现 VIM 的 Javascript 语法突出显示效果不佳吗 我发现有时我需要滚动才能调整语法突出显示 因为有时它会神秘地删除所有突出显示 有没有任何解决方法或方法来解决这个问题 我使用的是 vim 7 1 你可能想尝试这个改进
  • JBoss 作为客户端 5.1.0.GA 存储库丢失

    就在最近 我正在新计算机上创建新的 Maven 项目 这表明 jboss 作为客户端的依赖项不再可用
  • 有没有关于 Lucene.NET 的书籍 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在亚马逊上搜索过 但在 lucene net 上找不到书 你们在 lucene net 上找到过一本不
  • BERT 微调后得到句子级嵌入

    我遇到了这个page https colab research google com github google research bert blob master predicting movie reviews with bert on
  • SQL - 秒到天、小时、分钟、秒[重复]

    这个问题在这里已经有答案了 可能的重复 在sql server 2005中将秒转换为分钟和秒的有效方法 https stackoverflow com questions 2316288 efficient way to convert s
  • ZOC 终端:文本已被剪切到页面的一半

    我使用安装在 Windows 7 上的 ZOC 终端来与具有 Linux 操作系统的设备进行通信佐克图片 https i stack imgur com i3zzl jpg 通过终端进行的通信效果很好 但最近文本已被剪切到页面的一半 附图
  • 多个密码登录:好还是坏

    我正在寻求创建我能想到的最灵活的用户登录系统 并且正在寻找一些想法的反馈 系统目前还有 OpenID 集成选项 我正在修改我的一个用户登录系统 这个概念突然击中了我 很多人都很难记住一个密码 我认识的大多数人都有一些在不同网站上使用的密码
  • 如何从头开始创建/编写一个简单的 XML 解析器?

    如何从头开始创建 编写一个简单的 XML 解析器 我想知道什么是简化的基本英语步骤 而不是代码示例 一个好的解析器是如何设计的 我知道正则表达式不应该在解析器中使用 但是正则表达式在解析 XML 中的作用有多大 推荐使用什么数据结构 我应该
  • 从 Java 调用 PL/SQL 函数时出现“SQLException: ORA-06550”

    我想使用 Java 从数据库检索数据并显示它 因此我创建了这个 PL SQL 函数 它返回一个游标 create or replace function std getInfoFunc return types cursortype as