代码拉取完成,页面将自动刷新
JDK版本: openjdk_8_201
hutool版本: 5.8.26(请确保最新尝试是否还有问题)
// oracle 表是2345
// 获取不到表信息
MetaUtil.getTableMeta(dsFactory.getDataSource(), null, "BASE", "\"2345\"");
// 报错
MetaUtil.getTableMeta(dsFactory.getDataSource(), null, "BASE", "2345");
Caused by: java.sql.SQLException: 调用中的无效参数
at oracle.jdbc.OracleDatabaseMetaData.getIndexInfo(OracleDatabaseMetaData.java:3792)
at cn.hutool.db.meta.MetaUtil.getTableMeta(MetaUtil.java:255)
按理说数字表名不符合Oracle规范的。
尝试:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
@2016C 不好意思回复晚了,我本地装Oracle遇到了一些困难,好不容易用docker装上了……
我测试使用Oracle XE 21c
,本地驱动:
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.13.0.0</version>
<scope>test</scope>
</dependency>
配置:
# 测试用Oracle数据库
[orcl]
url = jdbc:oracle:thin:@//localhost:1521/XEPDB1
user = system
pass = 123456
remarks = true
final DataSource ds = DSFactory.get("orcl");
final Table tableMeta = MetaUtil.getTableMeta(ds, null, null, "\"1234\"");
经过测试没有复现问题:
所以怀疑是JDBC驱动本身的bug。
尝试升级你的JDBC驱动试下。
我看你打印的是索引信息。我这边也能正常获取。那边方便打印一下列信息吗?我是空的。
System.out.println(table.getColumns());
我用你上面的驱动版本测试的,结果如下图
登录 后才可以发表评论