Java Oracle数据库';什么是元数据?

Java Oracle数据库';什么是元数据?,java,eclipse,oracle,eclipse-plugin,xtext,Java,Eclipse,Oracle,Eclipse Plugin,Xtext,关于Oracle jdbc驱动程序的较新版本,我有一个问题。创建表时,您可以选择将其列数据类型定义为NUMBER,这基本上是一个浮点值,对吗 如果是这种情况,那么为什么元数据(使用较新的驱动程序)返回-127表示十进制数字,0表示列大小(至少通过SQuirreL): 这些值有什么意义吗?或者我可以假设它们实际上是十进制数字127和列大小38(数字数据类型中允许的最大值),或者有什么原因可以将这些值设置为这样?我找不到任何文档说明为什么或何时对Oracle的jdbc驱动程序进行了此更改 如果它在

关于Oracle jdbc驱动程序的较新版本,我有一个问题。创建表时,您可以选择将其列数据类型定义为NUMBER,这基本上是一个浮点值,对吗

如果是这种情况,那么为什么元数据(使用较新的驱动程序)返回-127表示十进制数字,0表示列大小(至少通过SQuirreL):

这些值有什么意义吗?或者我可以假设它们实际上是十进制数字127和列大小38(数字数据类型中允许的最大值),或者有什么原因可以将这些值设置为这样?我找不到任何文档说明为什么或何时对Oracle的jdbc驱动程序进行了此更改


如果它在任何方面都有帮助的话,那么我遇到的问题是,在从数据库获取元数据之后,我想用eclipse的xtext保存数据,当值为负值时,它会抛出一个合适的值。我对xtext非常陌生,不确定它是可配置的还是按预期工作。

这似乎是驱动程序的问题

JDBC驱动程序从11.2.0.2升级到11.2.0.4,修复了整数的类似问题:

12775220 DatabaseMetaData.getColumns()在中返回意外值 整列的列大小和小数位数

然而,问题似乎仍然存在。以下是Rod Allen在以下方面找到的解决方案:

添加JVM参数
-Doracle.jdbc.J2EE13Compliant=true

也许这也解决了你的号码问题。否则我建议您提交一份bug报告

更新:

在我的机器上使用JVM参数测试了假设和修复。现在报告数字字段的列大小为38,小数位数为0。
定义为NUMBER(n,m)的字段在有或没有JVM参数的情况下都不会出现问题。

这似乎是驱动程序问题

JDBC驱动程序从11.2.0.2升级到11.2.0.4,修复了整数的类似问题:

12775220 DatabaseMetaData.getColumns()在中返回意外值 整列的列大小和小数位数

然而,问题似乎仍然存在。以下是Rod Allen在以下方面找到的解决方案:

添加JVM参数
-Doracle.jdbc.J2EE13Compliant=true

也许这也解决了你的号码问题。否则我建议您提交一份bug报告

更新:

在我的机器上使用JVM参数测试了假设和修复。现在报告数字字段的列大小为38,小数位数为0。
定义为NUMBER(n,m)的字段在使用或不使用JVM参数时都不会出现问题。

您的JDBC驱动程序的版本是什么?@wero我的JDBC驱动程序的版本是11.2.0.4.0(根据驱动程序的manifest.mf)。我相信这是他们网站上的最新版本。你的JDBC驱动程序的版本是什么?@wero我的JDBC驱动程序的版本是11.2.0.4.0(根据驱动程序的manifest.mf)。我相信这是他们网站之外的最新版本。@wmgeiger101x似乎可以工作,用JVM参数测试start squirrel。所以这只是一个变通方法,对吗?错误仍然存在于数字数据类型的当前驱动程序中?@wmgeiger101x似乎可以工作,用JVM参数测试start squirrel。所以这只是一个解决方法,对吗?错误仍然存在于数字数据类型的当前驱动程序中?