当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA/Flyway Escaping双引号

宗项禹
2023-03-14

我有一个使用Spring Data JPA、Flyway和H2的Spring boot项目,它试图处理包含以下SQL语句的迁移脚本:

ALTER ROLE current_user SET search_path TO "$user", public, my_schema;

当Flyway尝试运行此迁移时,我收到以下错误:

---------------------------------
SQL State  : 42001
Error Code : 42001
Message    : Syntax error in SQL statement "ALTER ROLE[*] CURRENT_USER SET SEARCH_PATH TO ""$user"", PUBLIC, MY_SCHEMA"; expected "TABLE, USER, INDEX, SCHEMA, SEQUENCE, VIEW"; SQL statement:
ALTER ROLE current_user SET search_path TO "$user", public, my_schema [42001-200]

看起来就像是在这个过程中的某个地方,“$user”周围的双引号被另一组引号转义了。

我该如何解决这个问题?

共有1个答案

胡元忠
2023-03-14

> < li>

ALTER ROLE不是有效的h2命令。(这也是错误消息听起来的样子。)我想你指的是宁格兰特的角色!(?)

如果我们需要转义,请参考带引号的名称:

"anything"
| U&"anything" [ UESCAPE 'anything' ]

带引号的名称中的字符大小写保持不变。此类名称可以包含空格。最大名称长度为256个字符。两个双引号可用于在标识符内创建单个双引号。对于默认设置,H2中的标识符区分大小写。

所以< code>"$user"应该没问题。

另请参见:

  • json数据类型
 类似资料:
  • 本文向大家介绍Perl双引号,包括了Perl双引号的使用技巧和注意事项,需要的朋友参考一下 示例 与单引号字符串不同,双引号字符串使用插值和转义。要双引号字符串,请使用双引号"或qq运算符。 这qq在这里很有用,以避免必须转义引号。没有它,我们将不得不写... ...那不是很好。 Perl不限制你使用一个斜杠/用qq; 您可以使用任何(可见)字符。 您还可以将数组内插到字符串中。 默认情况下,这些

  • 问题内容: 手动编写HTML时,我总是使用单引号。我使用很多渲染的HTML,这些HTML总是使用双引号。这使我可以确定HTML是手工编写的还是生成的。这是一个好主意吗? 两者有什么区别?我知道它们都可以工作,并且得到所有现代浏览器的支持,但是在不同情况下,一个实际上比另一个更好吗? 问题答案: W3组织说: 默认情况下,SGML要求使用双引号(ASCII十进制34)或单引号(ASCII十进制39)

  • 问题内容: 这实际上有什么区别? 这工作正常: 但以下操作无效: 这是为什么? 问题答案: 那是因为双引号被认为是标准的,而单引号却没有。这并不是真正针对JQuery,而是关于JSON标准。因此,无论使用JS工具包,您都应该期待相同的行为。 值可以是带双引号的字符串,也可以是数字,也可以是true或false或null,或者是对象或数组。这些结构可以嵌套。

  • 问题内容: 我想使用程序包执行Windows命令,但是Windows进行了一些奇怪的转义。 我有类似的东西: “SomeText” 但这会引发错误,因为Windows会将其转换为 有人知道为什么吗?如何使用exec程序包在Windows上执行? 谢谢! 问题答案: OK,这是一个比较复杂一点比你预期,但有 是 一个解决方案: 不幸的是,尽管在2011年添加了对此功能的支持,但它似乎尚未纳入文档中。

  • 我是gradle的新手,目前只是试图遵循教程,有很多次我看到单引号和双引号混杂在一起。我只是想知道是否有一个不同的时间应该使用一套比另一个。这方面的一个例子是教程的第6.12节--默认任务: 所以,我只想知道我是否应该注意这些差异,或者它们是否可以相互改变,我可以使用单引号或双引号时打印字符串在Gradle。

  • 我只想不使用xml,所以我需要非xml替代这些设置。这是我的POM。

  • 问题内容: 我想从字符串中删除一个双引号(“)开头和结尾。 如何在Java中实现呢?谢谢! 问题答案: 您可以为此使用模式。 例如 要了解有关正则表达式的更多信息,请访问http://regular-expression.info。 也就是说,这有点像您要发明CSV解析器的味道。如果是这样,我建议您四处看看现有的库,例如OpenCSV。

  • 问题内容: 如果JSON字符串如下,如何转义双引号? 我想对值 TEST中 的次级双引号进行转义。 我已经尝试了以下方法,但是它不起作用。 我想念什么? 问题答案: 它应该是: 首先,我将外部引号更改为单引号,因此它们不会与内部引号冲突。然后,我将反斜杠放在最里面的引号之前,以使其转义。而且我避开了反斜杠,以便按字面意义对待它。 使用JSON函数可以获得相同的结果: