Teradata 如何将FastExport配置为不导出科学记数法中的浮动?
我们正在尝试将通过快速导出创建的文件加载到oracle数据库中。Teradata 如何将FastExport配置为不导出科学记数法中的浮动?,teradata,Teradata,我们正在尝试将通过快速导出创建的文件加载到oracle数据库中。 但是,浮点列的导出方式如下:1.47654345670000000E010 如何将fastexport配置为如下导出:14765434567 我们正在通过SQL*Loader将导出的文件加载到oracle数据库中 更新: 最初它在提供给FastExport的查询中使用:cast(XXXX作为varchar(500))。解决方案是使用cast(cast(FLOAT_VAL作为格式“Z(16)”作为varchar(16))作为varc
但是,浮点列的导出方式如下:
1.47654345670000000E010
如何将fastexport配置为如下导出:14765434567
我们正在通过SQL*Loader将导出的文件加载到oracle数据库中
更新:最初它在提供给FastExport的查询中使用:
cast(XXXX作为varchar(500))
。解决方案是使用cast(cast(FLOAT_VAL作为格式“Z(16)”作为varchar(16))作为varchar(16))
要使其全部为数字并用空格填充:cast(FLOAT_VAL作为格式“Z(16)”
要删除填充:cast(作为varchar(16))
另一种解决方案:trim(cast(FLOAT_VAL作为格式“Z(16)”))
你所有的浮点数都是整数吗?如果没有,您能给出该列中的值的更多示例吗?您能提供用于生成导出文件的FastExport脚本或SQL吗?您是否尝试在SELECT语句中将其强制转换为固定点数?数据中的所有浮点实际上都是整数。我完全不知道他们为什么那样做。
.logtable sysdba.TABLE_NAME;
.run file XXX/XXXXX/XXXXXX/XXXXX.btq;
.begin export;
.export outfile /XXX/XXX/XXX/XXX/YYYYYYY.YYYYYYYYYY_19000100-19000100 MODE RECORD FORMAT TEXT;
SELECT cast( cast(cast(FLOAT_VAL as FORMAT 'Z(16)') as varchar(16))
|| case when XXXXXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXX is null then '|' else cast(XXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXX is null then '|' else cast(XXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXX as varchar(500)) || '|' end
|| case when XXXXXXXXXXXXXXX is null then '|' else cast(XXXXXXXXXXXXXXX as varchar(500)) end
as char(360))
from YYYYYYY.YYYYYYYYYY;
.end export;