ant sql insert 语句在“--”字符串上失败。解决方法?

2024-02-24

Context

我们正在更改安装脚本以使用 ant 的“sql”任务和 jdbc,而不是专有的 sql 客户端 sqlplus (oracle) 和 osql (msft)。

更新:添加了更多上下文。我们的“基础数据”(种子数据)由一组 .sql 文件组成,其中包含“供应商中立”(即在 oracle 和 mssql 中均有效)sql 语句。

问题

这些脚本运行良好,但有一个例外:

该sql在Oracle中失败。具体来说,某些东西(ant 或 jdbc 驱动程序)将破折号/连字符视为“注释的开头”——即使它们嵌入在字符串中。请注意,相同的 sql 可以与 ant/sql 和 microsoft 的 jdbc 驱动程序一起正常工作。

INSERT INTO email_client (email_client_id,generated_reply_text) VALUES(100002,'----- Original Message -----');

相关错误

This ant bug https://issues.apache.org/bugzilla/show_bug.cgi?id=27739似乎可以找出问题所在。由于它仍然开放(8 年后),我不希望很快得到修复。不过,由于该问题仅出现在oracle中,因此可能是驱动程序的问题。

oracle驱动:jdbc瘦驱动,版本10.2.0.1.0

问题

有谁有同时适用于 mssql 和 oracle 的解决方法吗? (例如,更改有问题的行来定义转义字符?我在“插入”sql92 语法上没有看到“转义”)

thanks


查看“SQLExec”源代码并打开详细日志记录后,我找到了一个解决方法:

解决方法

如果sql语句中包含包含“--”的字符串,则将分隔符(分号)放在下一行。

这失败了

INSERT INTO email_client (email_client_id,generated_reply_text) VALUES(100002,'----- Original Message -----');

这成功了

请注意,分号位于单独的一行上

INSERT INTO email_client (email_client_id,generated_reply_text) VALUES(100002,'----- Original Message -----')
;

Details

打开详细日志记录,我发现当 Ant 遇到有问题的 sql 语句时,它实际上一次将三个 sql 语句传递给 jdbc 驱动程序。有问题的语句、下一个语句(还包含嵌入的“--”)和后续语句(不包含嵌入的“--”)。

我快速浏览了一下 Ant 代码,没有发现任何明显的错误。由于我不打算修补 Ant,因此我寻找解决方法。

经过调整,我发现如果我只是将分隔符(分号)移动到嵌入“--”的语句的下一行,脚本就会成功执行。

感谢大家的参与

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ant sql insert 语句在“--”字符串上失败。解决方法? 的相关文章

  • 主键默认可以为NULL吗?为什么这样描述呢?

    我有一张桌子 当我describe这是 mysql gt DESC my table Field Type Null Key Default Extra contact id int 11 NO PRI NULL auto incremen
  • Google BigQuery,使用“unnest”函数时丢失了空行

    StandardSQL WITH tableA AS SELECT T001 T002 T003 AS T id 1 5 AS L id UNION ALL SELECT T008 T009 AS T id NULL AS L id SEL
  • SQL 分隔符上的逗号分隔列

    这是一个 split 函数 它可以应用为dbo Split sf we fs we 当我将字符串更改为列名时 它不起作用 例如dbo Split table columnName Select from dbo Split email pr
  • 如何在 Oracle 中按组填充缺失日期并更改计数值

    这是对我之前发布的问题的轻微修改 如何在 Oracle 中按组填写缺失的日期 https stackoverflow com questions 63002363 how do i fill in missing dates by grou
  • 比较 jdbc 中的结果集

    在我的java代码中 我获得了两个结果集rs1和rs2 如下所示 rs1 statement executeQuery select from tableA rs2 statement executeQuery select from ta
  • 无法访问 Big Query 中类型为 ARRAY> 的字段

    我正在尝试在 BigQuery 上使用标准 SQL 方言 即不是旧版 SQL 运行查询 我的查询是 SELECT date hits referer FROM refresh ga sessions xxxxxx LIMIT 1000 但不
  • FireDac 添加下划线 1 以区分具有相同名称的 2 个列名

    我有一个连接 2 个表的选择 因此这些表中存在具有相似名称的列 因此现在在检索结果时 FireDac 将下划线 1 添加到第二个列名称以区分这两个表 Select from Table1 inner join Table2 on Table
  • 单个查询删除并显示重复记录

    采访中提出的问题之一是 一张表有100条记录 其中 50 个 是重复的 是否可以用单个 查询删除重复记录 从表中以及选择和 显示剩余 50 条记录 这可以在单个 SQL 查询中实现吗 Thanks SNA 对于 SQL Server 你会使
  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • PostgreSQL 窗口函数:row_number() over(按 col2 分区 col 顺序)

    以下结果集源自具有一些连接和联合的 SQL 查询 SQL 查询已经对 Date 和 game 上的行进行了分组 我需要一列来描述按日期列分区的游戏的尝试次数 Username Game ID Date johndoe1 Game 1 100
  • PL/SQL 过程:如何返回 select 语句?

    我想创建一个存储过程 on ORACLE数据库服务器我的问题是 我不知道如何返回 select 语句 这是程序中应包含的逻辑 输入参数 过滤器1 int 过滤器2 字符串 with cte as select val1 val2 stdde
  • 使用 FileTable 通过 SQL INSERT 创建子目录

    之前 我请求如何在一个目录中创建一个目录FileTable不使用文件 I O API https stackoverflow com q 10483906 175679 我现在想为刚刚创建的父目录创建一个子目录 在插入期间如何分配我的父母
  • 如何插入包含“&”的字符串

    如何编写包含 字符的插入语句 例如 如果我想将 J J Construction 插入数据库的列中 我不确定这是否有什么不同 但我正在使用 Oracle 9i 我总是忘记这一点 然后又回到它 我认为最好的答案是迄今为止提供的答复的组合 首先
  • 将自动递增值添加到只有一列的表中

    我需要创建一个基本上仅保留索引列表的表 因此 我创建了一个只有一个名为 id 的自动递增列的表 但是 我似乎无法隐式地将自动递增值添加到该表中 我知道通常当您在表中有这样一列 不仅仅是此列 时 您可以执行以下操作 插入表 col1 col2
  • 将数据表传递到存储过程。有没有更好的办法?

    数据表可以以某种方式传递到 SQL Server 2005 或 2008 中吗 我知道标准方法似乎是将 XML 传递给 SP 并且可以通过某种方式轻松地将数据表转换为 XML 来实现这一点 将 NET 对象传递到 SP 怎么样 那可能吗 我
  • PostgreSQL WHERE 计数条件

    我在 PostgreSQL 中有以下查询 SELECT COUNT a log id AS overall count FROM Log as a License as b WHERE a license id 7 AND a licens
  • LEFT JOIN 比 INNER JOIN 快得多

    我有一张桌子 MainTable 有超过 600 000 条记录 它通过第二个表连接到自身 JoinTable 在父 子类型关系中 SELECT Child ID Parent ID FROM MainTable AS Child JOIN
  • 什么是 Oracle 会话?

    我使用的是 Oracle 11g 我正在寻找 Oracle 会话的良好解释 我用谷歌搜索了这个 但奇怪的是 没有一个网站包含任何关于预言机会话是什么的解释 我的具体问题是 1 什么是预言机会话 2 一个连接对象是否总是与一个 oracle
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN

随机推荐

  • IE 创建字体图标奇怪的下划线

    我正在使用 fontello 字体图标 除了 Internet Explorer 之外 它们都可以完美运行 它们也不会对悬停状态做出反应 所以 我现在遇到的问题是字体图标下有一条奇怪的下划线 我已经尝试过文本装饰 边框底部 有没有人对此有任
  • JDK8与Windows XP兼容吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我发现可以在 Windows XP 上安装 JDK8 为了避免安装错误 我们必须更改jdk 8u11 windows i586 exe使用
  • 仅获取存储桶的顶级对象

    我的问题与此类似如何使用node js获取谷歌云存储文件夹中的文件列表 https stackoverflow com questions 49684942 how to get a list of files in a google cl
  • C++ 中使用 #include 和 #include 的区别

    使用有什么区别 include
  • PopOver 自动调整位置

    我遇到了 PopOver 的问题 我希望它能够在所有位置自动调整 如果右侧找不到空间 则会从左侧打开 但我希望它对顶部 底部做同样的事情 即 如果顶部找不到空间 则应在底部打开 反之亦然 难道我就没有什么办法可以为各方做到这一点吗 data
  • 错误:尝试解析模块 @apollo/client React Native 时

    安装新版本的 apollo 客户端后出现此错误 我尝试了其他版本并降级但没有任何结果 我还尝试在 Metro config js 中指定解析 cjs 类型的文件 apollo client main cjs 但什么也没有 Error err
  • 具有 PCLMULQDQ 的快速 CRC *未反映*

    我正在尝试写一个PCLMULQDQ 优化的 CRC 32 https www intel com content dam www public us en documents white papers fast crc computatio
  • 在 UserDetailsS​​ervice 中使用 @Cacheable 时编码密码为空

    在授权期间遇到缓存问题 我无法弄清楚 因此 在授权期间 每次不向数据库发出请求时 我都想缓存该方法 在第一次请求时缓存为空 一切都很好 直到缓存在一段时间后被删除 但是当缓存存在时 我得到 401 因为 o s s c bcrypt BCr
  • 增加 ServicePointManager.DefaultConnectionLimit 的缺点

    我正在多线程环境中调用网络服务 我的很多调用由于操作超时或错误请求而失败 但如果我以线性方式执行 则没有一个调用会失败 这意味着使用多个线程调用 Web 服务存在问题 经过大量分析 我发现并发连接的限制导致了这些异常 因此我通过添加以下代码
  • 双重否定-(-n)的原因是什么?

    我正在查看一些遗留代码 我看到了类似的东西 char n 65 char str 1024 sprintf str d n 为什么作者 不再在场 写了 n 而不仅仅是n 不会 n够了吗 首先要注意的是 n实际上减少 n加 1 并计算出新值
  • 尝试导入张量流时出现非法硬件指令

    我刚刚使用以下说明安装了tensorflowvirtualenv方法 安装过程很顺利 所以我认为没有任何问题 安装后 我继续尝试导入它以验证一切正常 我收到以下消息 1 4492 illegal hardware instruction c
  • html 中指定的图像宽度单位是什么?

    我对 html 语言完全陌生 在html中附加的图像中 我们需要通过以下标记指定图像的宽度 img width 350 src var tmp jpg 那么这里的宽度单位是什么 我猜它是以像素为单位的 如果以像素为单位 是否意味着图像的大小
  • 从 xcode 命令行生成 ipa

    从命令行生成 IPA 文件的最佳方法是什么 我使用的是 xcode 4 2 并使用以下命令生成存档 xcodebuild scheme AppStore clean archive 协同设计后 这会在构建输出目录中生成 dSYM 和 app
  • XAML 中的字符串格式

    我正在尝试格式化我的string每 3 个位置有一个逗号 如果不是整数则有一个小数 我检查了大约 20 个例子 这是我得到的最接近的例子
  • 如何在 iTunes 上获取我的应用程序统计信息?

    我最近发布了一款 iPhone 应用程序 但我没有看到任何方法可以像在 Google Play 中一样检查应用程序统计信息 您能告诉我该怎么做吗 你可以从iTunes连接 https itunesconnect apple com 登录您的
  • Java 贪吃蛇游戏避免使用 Thread.sleep

    我用 Java 制作了我的第一个游戏 贪吃蛇 它的主循环看起来像这样 while true long start System nanoTime model eUpdate if model hasElapsedCycle model up
  • 通过代码使卸载注册表项成为有条件的

    如何禁用 Inno SetupCreateUninstallRegKey http www jrsoftware org ishelp index php topic setup createuninstallregkey通过代码 My 安
  • 在每个“X”React 组件之后插入一个元素

    我有一个 React 组件 它使用 Bootstrap 将项目列表呈现为三列col col md 4风格 但是 我需要插入一个clearfix div http getbootstrap com css grid responsive re
  • git 无法执行任何任务

    我在 Windows 7 上使用 Git 我是从那里下载的http git scm com download http git scm com download 无论我重新安装 Git 并尝试执行某些操作 甚至克隆都不起作用 多少次 它都无
  • ant sql insert 语句在“--”字符串上失败。解决方法?

    Context 我们正在更改安装脚本以使用 ant 的 sql 任务和 jdbc 而不是专有的 sql 客户端 sqlplus oracle 和 osql msft 更新 添加了更多上下文 我们的 基础数据 种子数据 由一组 sql 文件组