我已经给出了将数据从Oracle视图导出到固定长度文本文件的任务,但是我已经给出了如何将数据导出到文本文件的规范.即
quantity NUM (10)
price NUM (8,2)
participant_id CHAR (3)
brokerage NUM (10,2)
cds_fees NUM (8,2)
Run Code Online (Sandbox Code Playgroud)
我的困惑出现在数字类型中,当它说(8,2)时.如果我和文本一样使用它,它是否有效
10 characters (as to_char(<field name>, '9999999.99'))
Run Code Online (Sandbox Code Playgroud)
要么
8 characters (as to_char(<field name>, '99999.99'))
Run Code Online (Sandbox Code Playgroud)
导出到文本文件中的固定长度文本字段时?
我正在看这个提出见解的问题,但并非完全如此.
感谢有人可以用一些例子来启发我.
非常感谢.
或者,您也可以指定精度(总位数)和比例(小数点右侧的位数):
如果未指定精度,则列将值存储为给定值.如果未指定比例,则比例为零.
所以在你的情况下,a NUMBER(8,2),有:
这给你一个范围-999999.99来999999.99
小智 5
我假设您的意思是 NUMBER 数据类型为 NUM。
当它说 NUMBER(8,2) 时,这意味着将有8 个数字,并且数字应该四舍五入到最接近的百分位。也就是说小数点前有6位,小数点后有2位。
参考oracle 文档:
您可以使用 NUMBER 数据类型来存储定点数或浮点数。它的震级范围是 1E-130 .. 10E125。如果表达式的值超出此范围,则会出现数值上溢或下溢错误。您可以指定精度(总位数)和小数位数(小数点右侧的位数)。语法如下:
NUMBER[(精度,比例)]
要声明必须为其指定比例的定点数,请使用以下形式:
NUMBER(精度,比例)
要声明由于小数点可以“浮动”到任何位置而无法为其指定精度或小数位数的浮点数,请使用以下形式:
数字
要声明没有小数点的整数,请使用以下形式:
NUMBER(precision) -- 与 NUMBER(precision,0) 相同
您不能使用常量或变量来指定精度和小数位数;您必须使用整数文字。NUMBER 值的最大精度为 38 位十进制数字。如果不指定精度,则默认为 38 或系统支持的最大值,以较小者为准。
范围从 -84 到 127 的比例确定发生舍入的位置。例如,2 舍入到最接近的百分位(3.456 变为 3.46)。负比例四舍五入到小数点左侧。例如,-3 的比例四舍五入到最接近的千位(3456 变为 3000)。0 的比例四舍五入到最接近的整数。如果不指定比例,则默认为 0。