从 SQL 脚本在 H2 数据库中插入长文本
我正在尝试使用 H2 的 runscript 运行 sql 脚本。
其中一个表包含一个 longtext 类型,它存储一个 xml 文档(来自 SAP 数据库),
因此 Insert 语句包含 XML 的长文本(大约 200 行 XML),这是相当难看的,但仍然可以工作。
H2 在 SQL 解析期间因 ArrayOutOfBoundException 崩溃。
- 插入语句接受的长度是否有限制?
- 在 nsert 中,我使用刻度线(如 mysql 中使用的)来界定值(xml)...数字这将最大限度地减少转义。这可能是问题的一部分(适用于其他短字段)
我更喜欢在这里使用普通的 runscript H2 工具而不是制作 Java 程序,尽管我认为它会更干净(可以使用 steam 方法)
任何见解吗?
I'm trying to run a sql script using H2's runscript.
One of the table contains a longtext type which stores an xml document (from an SAP database)
So the Insert statement contains the long text of the XML (about 200 lines of XML), which is rather ugly but still expected to work.
H2 crashes with an ArrayOutOfBoundException during SQL parsing.
- Is there alimit on the length it will accept for a insert statement ?
- In the nsert I'm delimiting the value(xml) using ticks (as used in mysql) ... figures this would minimize escaping. could that be part of the issue (works for other short fields)
I would prefer using the plain runscript H2 tool here rather than make a Java program although I see it would be cleaner (could use the steam methods)
Any insight ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
没关系,
通过使用正确的分隔符(“用于列名称,'用于值)并正确转义值中的引号(将其加倍)来使其工作
Never mind
Got it working by using the proper delimiters (" for column names and ' for values) and escaping quotes in values properly (doubling it)