如何在 SQL Developer 中删除脚本中的小数点

Posted

技术标签:

【中文标题】如何在 SQL Developer 中删除脚本中的小数点【英文标题】:How to remove decimal in script in SQL Developer 【发布时间】:2020-06-25 03:52:53 【问题描述】:

我试图将大量数据从 Excel 加载到一个 Oracle 表中,因此我尝试使用 Oracle SQL Developer。

它为 20,0000 条记录生成了一个 INSERT 脚本。但问题是我得到了带有小数的 NUMBER 值,如下所示:

INSERT INTO test_tb (FI_KEY, CL_KEY, ST_KEY, CL_NUMBER, YE, PA_NAME, RA_KEY, SH_KEY, B_NUMBER, FLAG, CREATED_BY, CREATED_DATE, ACTIVE_STATUS) 
VALUES (691001.0, 1.0, 1.0, '387136', 2020.0, 'KUR', 370.0, 2221.0, 'J-12708', 'Y', 'admin', to_timestamp('03/11/2020', 'DD-MM-YY HH12:MI:SSXFF AM'), 'Y');

我想为 NUMBER 值获取不带小数点的 INSERT 脚本。

注意:这些十进制值不会出现在 Excel 数据中,而只会出现在 INSERT 脚本中。

任何人面对这个或建议任何其他方法在 SQL 或 PL/SQL 中进行批量插入?

【问题讨论】:

您能否检查并确认表格和 excel 单元格格式的 DDL 是什么。这可能会解决您的问题 没关系。 .0 不会真正存储在数据库中。您无需做任何事情。 dbfiddle.uk/… @DeepakKumar 如何检查excel单元格格式? 如果它没有任何区别,那你为什么要删除它?您试图通过删除不会改变脚本结果的内容来解决什么问题? 你的领导知道这不会产生影响吗? 【参考方案1】:

如果您要有效地从 Excel 加载大量数据,我建议将 Excel 的格式转换为 CSV 并使用 sqlldr 在那里您可以创建一个控制文件,您可以在其中调整数据并执行 TRUNC、ROUND和条件处理。

【讨论】:

是的,我也知道 SQLLDR,但是我没有权限使用它。

以上是关于如何在 SQL Developer 中删除脚本中的小数点的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Developer 中的 PLSQL 错误后抑制脚本显示(禁用命令/代码输出)

在 Oracle SQL Developer 中恢复未保存的 SQL 查询脚本

如何从 case when 中删除 NULL 然后输出 Oracle SQL Developer

如何在 Oracle SQL Developer 中多次执行相同的存储过程?

Oracle SQL Developer 从包中删除模式名称

如何在SQL Developer中执行SQL Server存储过程?