Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何指定Oracle数字的精度/比例JDBC元数据?_Database_Oracle_Jdbc - Fatal编程技术网

Database 如何指定Oracle数字的精度/比例JDBC元数据?

Database 如何指定Oracle数字的精度/比例JDBC元数据?,database,oracle,jdbc,Database,Oracle,Jdbc,我需要强制结果列的精度和比例,对货币值进行自定义格式设置(我假设每个数字(*,2)都是货币值)。 考虑下面的查询: select cast(1234.56 as NUMBER(6,2)) from dual; 如有必要,它会进行预期的舍入,但结果元数据描述了一个精度和比例未指定的数字字段: System.out.println( rs.getMetaData().getScale(1) ); // prints 0; 我相信JDBC方面发生了一些奇怪的事情,因为下面的脚本确实返回了预期的数字

我需要强制结果列的精度和比例,对货币值进行自定义格式设置(我假设每个数字(*,2)都是货币值)。 考虑下面的查询:

select cast(1234.56 as NUMBER(6,2)) from dual;
如有必要,它会进行预期的舍入,但结果元数据描述了一个精度和比例未指定的数字字段:

System.out.println( rs.getMetaData().getScale(1) ); // prints 0;
我相信JDBC方面发生了一些奇怪的事情,因为下面的脚本确实返回了预期的数字(6,2):

drop table temp;
create table temp as (
select cast(1234.56 as NUMBER(6,2)) x from dual
);
select * from temp;
这不应该吗

System.out.println( rs.getMetaData().getScale(1));  //For the first column
System.out.println( rs.getMetaData().getScale(2));  //For the second column
等等

你的代码

System.out.println( rs.getMetaData().getScale(0) ); //0th Column??
引自链接-

getPrecision

获取指定列的小数位数

参数-第一列为1, 第二个是2

返回:精度

抛出:SQLException-如果 发生数据库访问错误

这不应该吗

System.out.println( rs.getMetaData().getScale(1));  //For the first column
System.out.println( rs.getMetaData().getScale(2));  //For the second column
等等

你的代码

System.out.println( rs.getMetaData().getScale(0) ); //0th Column??
引自链接-

getPrecision

获取指定列的小数位数

参数-第一列为1, 第二个是2

返回:精度

抛出:SQLException-如果 发生数据库访问错误