问题标签 [sql-generation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle11g - 如何在离线模式下使用 Liquibase 3.3 为 Oracle 11g 生成 SQL?
问题
我使用描述我的数据库对象结构的 YAML 脚本。这非常方便,因为我可以使用 H2 进行基于 DB 的集成测试。
但是我的客户的生产服务要求我们提供面向 Oracle 的 SQL 脚本(他们使用 Liquibase,但以非标准方式,我们无法挑战/更改)。
因此,我想以自动方式从我的 YAML 脚本生成这些 Oracle SQL 脚本。
想法
我首先找到了Liquibase:updateSQL 命令。问题是我无权访问数据库(我不知道 JDBC URL,我也不在同一个网络上)。所以这个解决方案是行不通的。
然后,我在 Liquibase 中发现了一个新选项,它允许updateSQL 命令的“离线”模式。这似乎确实是我正在寻找的解决方案,但随后出现以下错误(使用 Maven 和 -X -e 选项):
然后我重新尝试离线 H2 基地,但我有一个新的错误:
所以我的问题是:
- Liquibase:updateSQL 在您看来是正确的解决方案吗?
- 您是否成功在 Oracle 的离线模式下执行 Liquibase:updateSQL 命令?(如何 ?)
感谢您到目前为止的阅读
java - JOOQ:为以字符串命名的表生成更新 SQL
我只想使用 JOOQ 生成 SQL 而不验证表、列等,并且不为所述表、列等生成类。
如何生成 SQL 更新,只需用String
s 指定模式和表的名称?
也许稍后我会设置表格生成的 Java 代码,但现在没有必要。如果没有这样的生成代码我不能使用 JOOQ,那么我现在将使用其他一些库。
谢谢。
c# - 在数据访问代码(例如 Dapper)中最小化/管理 SQL 字符串 blob 的最佳实践
我非常高兴地使用 Dapper 构建了一些数据层。当然,维护所需的 SQL 字符串可能是一个问题,尤其是当 db 架构发生更改(重命名列等)时。
我正在寻找一种“删除”大多数 SQL 字符串 blob(不使用 EF 或 Linq)的策略。要么找到/构建一个类型安全的查询 API 来生成 SQL(如 jooq),要么想到某种元生成。
我错过了什么吗?是否有最佳实践或更好的方法?
谢谢
注意:使用 EF 或 Linq 可以解决问题,但我们正在努力尽可能接近 SQL。
entity-framework - 实体框架 6:迁移删除列(如果存在)
在删除列的迁移操作期间,如何在尝试删除列之前生成 SQL 来检查列的存在?
对于删除列操作,实体框架当前会生成这样的 sql 来删除列:
如何更改 SQL 以首先检查列的存在:
我知道可以通过继承来自定义迁移 SQL SqlServerMigrationSqlGenerator
。我这样做的尝试未能将默认的删除列逻辑包装在一个IF
块中。请参见下面的示例:
资料来源:
c# - 实体框架 6 分组和聚合时的不良 SQL 生成和性能
我有一个案例,我不能让 Entity Framework 为我构建好的和快速的 sql。
我的情况是我有三个实体。商店、销售和销售热线。Sale 持有交易日期时间,而 salesline 持有数量、价格等。
我想建立一个报告,显示每家商店和每天的一些汇总数据(剥离时间)
这是我所做的:
这导致以下 SQL 需要大约 20 秒才能执行。
如果我在手边构建 SQL,我会这样做,它会在不到 1 秒的时间内执行。
我的问题是如何设计我的实体框架查询,以便生成更干净、更快速的 SQL。
我知道可以直接查询数据库,但我希望类型安全并使用引擎。
我在网上搜索了很多,但找不到符合这种情况的案例。
我希望得到帮助!
c# - EF Core 将实体映射到模型
我正在尝试有效地将实体映射到模型上。
我的实体是:
我的模型是:
(在实践中,这些类之间会有差异,但这里不是为了简化。)
我写了一个扩展方法来做映射:
是为了ToLower()
突出问题。
我可以运行它:
生成的 SQL 为:
即小写处理在数据库中完成。
到目前为止一切都很好,除了关注点分离不好。初始化 a 的代码与初始化 a 的代码ChildModel
在同一个地方ParentModel
。
我尝试在以下位置使用构造函数ChildModel
:
并在扩展方法中:
这可行,但生成的 SQL 不包含lower
. 小写转换是在程序中完成的。
有什么办法可以让我吃蛋糕吗?
我是否仍可以将我的 C# 代码转换为 SQL,但仍以模块化方式构建我的 C# 代码?