oracle 异常返回值,oracle - java.sql.SQLException:无效的列类型:调用具有行类型返回值的函数时为1111 - 堆栈内存溢出...

我在一个名为“ MyPackage”的Oracle软件包中有一个函数:

FUNCTION MyFunction(name IN VARCHAR2) RETURN MyTable%rowtype;

我正在尝试通过JDBC调用它。

CallableStatement cs = connection.prepareCall("{ ? = call MyPackage.MyFunction(?) }");`

cs.registerOutParameter(1, OracleTypes.OTHER);

cs.setString(2, "SomeString");

cs.executeQuery();

我懂了

Caused by: java.sql.SQLException: Invalid column type: 1111

我尝试使用OracleTypes.CURSOR和OracleTypes.REF,但是都遇到了问题。 我想知道是否需要沿这些行定义一个STRUCT或其他内容,但是由于返回值不是命名类型,我认为我不能使用它吗?

我也尝试过:

SimpleJdbcCall call = new SimpleJdbcCall(jdbcTemplate);

call.withCatalogName("MYPACKAGE")

.withFunctionName("MYFUNCTION");

SqlParameterSource paramMap = new MapSqlParameterSource()

.addValue("NAME", "SomeString");

Map map = call.execute(paramMap);

这还会产生Invalid column type 1111错误。 列元数据说该参数是OracleTypes.OTHER

我用来验证列元数据的代码是:

DatabaseMetaData dbMeta = connection.getMetaData();

ResultSet rs = dbMeta.getProcedureColumns(null, "MYSCHEMA", "%MY_FUNCTION%", "%");

while (rs.next()) {

String procedureName = rs.getString(3);

String columnName = rs.getString(4);

int dataType = rs.getInt(6);

System.out.println("Procedure Name: " + procedureName + ", Column Name: " + columnName + ", Data Type:" + dataType);

}

输出是:

Procedure Name: MYFUNCTION, Column Name: null, Data Type:1111

Procedure Name: MYFUNCTION, Column Name: NAME, Data Type:12

任何指导将不胜感激

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

台式电脑键盘按键错乱_收藏篇:电脑键盘上的每个按键的作用和命令你都会用么...

办公,家用,设计,游戏等等都了解电脑键盘上的全部功能么?F1帮助F2改名F3搜索F4地址F5刷新F6切换F10菜单CTRLA全选CTRLC复制CTRLX剪切CTRLV粘贴CTRLZ撤消CTRLO打开SHIFTDelete永久删除Delete删除ALTENTER属性ALTF4关闭CTRLF4关闭ALT…

docker 安装 oracle12,Centos7下利用docker安装oracle12c

实战在windows局域网下可以进行连接,并执行sql语句:执行结果具体的步骤如下:1、在centos7下安装docker[rootlocalhost /]# yum install docker2、启动docker[rootlocalhost /]# systemctl start docker.service3、查找docker镜像可以在docker…

JAVA入门级教学之(多态)

JAVA入门级教学之(多态) 怎么理解多态:你本身就该喊你爹叫爹,你让你爹叫你爹就是强制认做爹 多态的使用: A a new D(); D类继承A类,父类型引用指向子类型对象 * 关于java语言汇总的多态语法机制&#x…

beanutils.copyproperties属性值丢失_[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问...

今天的干货长驱直入,直奔主题看了前文的同学们应该都知道,搜狗、360等浏览器在单点登录中反复重定向,最终失败报错。原因在于,非Chrome80浏览器不识别Cookie上的SameSitenone属性值,导致认证Cookie在后续请求中被抛弃。截至2020/3…

JAVA入门级教学之(final关键字)

不希望任何人可以随意修改自己的东西的时候可以用final关键字进行修饰 * 1.final是一个关键字,表示最终的,不可变的 * * 2.final修饰的类无法被继承 * * 3.final修饰的方法无法被覆盖 * * 4.final修饰的变量一旦被赋值后,不可重新赋…

fopen吃内存吗 php,file_get_contents = PHP致命错误:允许的内存耗尽

我没有处理大文件的经验,所以我不确定该怎么办。我试图使用 file_get_contents 读取几个大文件;任务是使用preg_replace() 清洁和修补它们。我的代码在小文件上运行良好;但是,大文件(40 MB)触发内存耗尽错误:PHP Fatal…

倒计时小工具_这款高颜值的 APP 可以让小仙女/男神们的日子过得更精致

倒计时是大家平常都会用的功能,系统自带的工具或许也能满足一部分朋友的需求,但是对于生活精致,并且富有仪式感的小仙女和小男神们,一款普普通通的计时工具怎么能满足呢?今天推荐的这款应用——小时刻( App Store 搜索…

oracle 删除系统用户,Oracle数据库如何创建和删除用户

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼1. 创建用户:SQL> create user user01 identified by user01;User created.但登录提示01045的错误,缺少CREATE SESSION权限。ERROR:ORA-01045: user USER01 lacks CREATE SESSION privilege; logon denie…

asp单元格合并后宽度没有合并_宅在家里跟着大牛从零开始学excel第五课-合并,边框,列宽行高...

接着上一课,我们制作的课程表,有人说了不好看,确实,我们就来补充和美化一下。首先我们要更改的就是字体,字体改成下图,字体大小选为18,样子就好看了很多了。仔细看上图,还却一点东西…

JAVA入门级教学之(package和import)

目录 JAVA入门级教学之(package和import) 1.包又称为package 2.怎么定义package? 3.包名的命名规范: 4.包名要求全部小写,包名也是标识符,必须遵守标识符的命名规范 5.一个包对应一个目录 6.使用了pa…

oracle数据库中分析函数大全,Oracle数据库的分析函数

over 连续的相加求各部门的薪水总和和全部总和 select name, salary, empsum(salary) over (order by emp) 连续求和sum(salary) over () 总和100*round(sal/sum(sal) over(), 5) 份额from company;sum() sum over() 求的是总和,sum over (order by ) 求的是连续的…

excel合并多个工作表_多个工作表或者多个工作簿的合并计算

哈喽,everybody,作为一个与excel打交道长达六年的职业老手,我会整理汇总一些十分有利于提高工作效率的小tip。也当作是我为自己知识点做的些许总结吧。今天我们就来聊聊如何快速合并多个工作表或者工作簿的这些事。话不多说,直接上…

JAVA入门级教学之(访问修饰符权限控制)

访问控制权限修饰符: 1.访问控制权限修饰符来控制元素的访问范围 public表示公开的,在任何位置都可以访问protected同包、本类、子类(出了包如果是子类没问题)缺省同包、本类(不能出包)private仅…

access字段属性设置下拉列表_CAD常用命令:ATTDEF(定义属性)

下面是本公众号文章分类目录,点击标题文字可打开分类文章列表:安装卸载 异常、退出 文件及输入输出 基本操作技巧 各种设置及相关问题 界面和显示相关问题 快捷键 视图设置和调整 图层 颜色 线型 字体、文字样式和文字输入 标注、引线和标注…

oracle定义转储目录,Oracle 12.1新特性:在线rename或relocate数据文件

在Oracle12.1之前的版本中要重命名数据文件或移动数据文件需要关闭数据库或把表空间/数据文件置为offline状态才可以,参考之前总结的要实现这一功能需要使用ALTERDATABASEMOVEDATAFILE语句,语法如下ALTER DATABASE MOVE DATAFILE ( filename | ASM_filen…

JAVA入门级教学之(super关键字)

目录 JAVA入门级教学之(super关键字) 1.super关键字用在构造方法中: 2.语法规则: 3.注意:super();的调用只能放在构造方法的第一行,和this();的调用规则一样 4.通过子类的构造方法去调用父类的构造方法…

lwip协议栈在linux运行,LwIP协议栈在uCOS II下的实现

1、概述:LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、OS、编译器相关的部份独立出来,放在ucosii&LwIPsource etlwiparch目录下。因此LwIP在uCOS II上的实现就是修改这个目录下的文件,其它的文件一般不应该…

linux离线安装redmine_Feem:免流量跨平台文件传输工具,支持离线分享

Feem 是一款在文件传输领域打拼多年的产品,目前是基于 Wifi 局域网直连模式的文件传输服务,跨平台,在 Mac、PC、iOS、Android、Linux 皆有客户端。安装不同平台的客户端设备只要在同一无线网络,可以实现无提前配置式的自动配对&am…

JAVA入门级教学之(abstract抽象类)

目录 JAVA入门级教学之(abstract抽象类) 1.如何定义抽象类? 2.抽象类无法被实例化 3.虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的 4.抽象类中可以定义抽象方法 5.如果一个类…

linux 内核裁剪不当 死机,Linux編譯x86架構內核出現_stack_chk_guard未定義錯誤

背景android模擬器運行於virtualbox中,而virtualbox運行於x86架構的pc端,所以android及其Linux內核都編譯成x86架構。當virtualbox的vt未開啟的情況下android系統會出現各種問題,如arm庫游戲不能運行,桌面平凡掛死重啟。通過查看日…