首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免手动编写/管理SQL

如何避免手动编写/管理SQL
EN

Stack Overflow用户
提问于 2014-02-26 21:20:40
回答 2查看 287关注 0票数 0

我和我的团队正在快速开发一个由Oracle DB支持的and应用程序。我们使用maven的插件天桥管理我们的数据库创建和填充插入SQL脚本。通常,我们每个sprint添加3-4个表和/或修改现有的表结构。

我们在生成模式的外部工具(包括约束)中对模式进行建模,并首先运行它,然后运行SQL插入,以确保所有数据的完整性。

我们花费了太多的时间来管理对SQL的更改,以涵盖新的表--我的意思是将额外的列数据添加到现有的SQL语句中,更不用说手动创建新的SQL数据,特别是当它们引用外键时。

当然还有另一种方法,也许可以在Excel中维护原始数据,并通过解析器将其传递给DB。有人有什么想法吗?

到目前为止,有10个表,多达1000个SQL语句,DB没有活动,所以我们在每次构建时都会将其删除。

谢谢

编辑:插入的数据是静态引用数据,平台依赖于功能菜单等。架构是Tomcat、JSF、Spring、JPA、Oracle。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-26 23:18:36

请将原始数据存储在数据库中的表中-嘿!你到底为什么要用Excel来做这个呢?您拥有Oracle数据库--这是工作的最佳工具!

使用SQL*Loader或外部表将未经处理的数据加载到数据库中的常规表中。在这里,您可以使用SQL --操作数据的最强大的rdbms工具。千万不要慢慢来。(1000条sql语句)。请做CTAS。加载所有数据后添加/启用约束。

代码语言:javascript
复制
create table t as select * from raw_data; 

or 

insert into t (x,y,z) select x,y,z from raw_data;

使用此方法,您可以绕过SQL引擎并执行直接插入(直接路径加载)。这甚至可以并行完成,使您的数据进入数据库的超级快!

在SQL或PLSQL中执行所有数据操作。(不在申请书内)

  • 请投入时间学习Oracle数据库。它充满了功能,供您使用!
  • 不要像使用数据那样使用它(存储数据的地方)。创建包--应用程序的接口--数据库的API。
  • 不要随便抛出数千条编译到应用程序中的语句。会变得很混乱。
  • 在数据库PLSQL中构建您的业务逻辑--使用您的应用程序来表示。

祝你好运!

票数 4
EN

Stack Overflow用户

发布于 2014-02-27 08:58:07

或者,您还可以选择实现Java迁移。它可以读取任何输入数据(Excel,csv,.)并做适当的插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22053548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档