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

如何避免手动编写/管理SQL,sql,oracle,testing,flyway,data-generation,Sql,Oracle,Testing,Flyway,Data Generation,我和我的团队正在快速开发一个由Oracle DB支持的Web应用程序。我们使用maven的插件flyway来管理数据库的创建和插入SQL脚本的填充。通常,我们为每个sprint添加3-4个表和/或修改现有表结构 我们在一个外部工具中对模式进行建模,该工具生成包含约束的模式,并首先运行该模式,然后运行SQL插入,以确保所有数据的完整性 create table t as select * from raw_data; or insert into t (x,y,z) select x,y,

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

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

create table t as select * from raw_data; 

or 

insert into t (x,y,z) select x,y,z from raw_data;
我们花费了太多的时间来管理对SQL的更改以覆盖新表——我的意思是将额外的列数据添加到现有的SQL INSERT语句中,更不用说手动创建新的SQL INSERT数据,尤其是当它们引用外键时

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

到目前为止,共有10个表和多达1000条SQL语句,DB是不活动的,因此我们在每次构建时都会将其拆除

谢谢

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

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

使用SQL*加载器或外部表将未完成的数据加载到数据库中的常规表中。 从那里你就有了SQL——操作数据的最强大的rdbms工具。 永远不要慢慢插入。(1000条sql语句)。请做CTA。 加载所有数据后添加/启用约束

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中构建您的业务逻辑-使用您的应用程序进行表示

祝你好运

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

使用SQL*加载器或外部表将未完成的数据加载到数据库中的常规表中。 从那里你就有了SQL——操作数据的最强大的rdbms工具。 永远不要慢慢插入。(1000条sql语句)。请做CTA。 加载所有数据后添加/启用约束

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中构建您的业务逻辑-使用您的应用程序进行表示

祝你好运

或者,您也可以选择实现Java迁移。它可以读取您拥有的任何输入数据(Excel、csv等)并进行适当的插入。

或者,您也可以选择实现Java迁移。它可以读取您所拥有的任何输入数据(Excel、csv等),并进行适当的插入。

您编写web应用程序inJSF、JPA和Spring的语言和框架是什么?然后感谢Hibernate上的Look-尽管您仍然必须为每一个架构更改更改代码我们使用Excel和包含SQL insert的计算列。它工作得很好。你指的是EXCEL中的宏,它以列作为输入并生成SQL输出吗?你编写web应用程序inJSF、JPA和Spring的语言和框架是什么?然后是Hibernate的thanksLook-尽管你仍然必须为每一个架构更改更改代码我们使用EXCEL和包含SQL insert的计算列。它工作得很好。你是说EXCEL中的一个宏,它接受列作为输入并生成SQL输出吗?+1但这个答案可以用更好的措辞。与其说“请做X”,不如说“你应该做X,因为……”+1,但这个答案可以用更好的措辞。与其说“请做X”,不如说“你应该做X,因为……”。