转义teradata jdbc连接字符串中的字符

时间:2014-03-20 13:59:32

标签: jdbc teradata

我有一个包含短划线字符的teradata数据库名称 - 。

搜索网络但徒劳无功。有人知道如何逃脱jdbc连接字符串中的特殊字符?该字符串如下所示:

jdbc:teradata://HostName/DATABASE=Database-Name

当我使用此url创建连接时,我收到语法错误。还尝试将数据库参数放在单引号或双引号中,并用{}包围特殊字符。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

最后在这里找到答案:https://jira.talendforge.org/browse/TDI-18863。正确的方法是将参数名称和值括在单引号中:

jdbc:teradata://HostName/'DATABASE=Database-Name'

更新:不,这不起作用,请参阅下面的评论。

答案 1 :(得分:1)

回答我自己的问题:

我的问题是我没有意识到我的数据库名称最后有一些尾随的空格。

TeraDriver使用单引号来转义空格和逗号。这意味着数据库名称应使用单引号。如果没有单引号,则空格和逗号被视为参数值的结尾。如果数据库名称中有单引号,则它们应显示为两个单引号字符。

'Database-Name   '

单引号内的任何内容都将与sql查询一起使用:“database Database-Name”。要逃避' - '我们需要双引号。因此,应该使用正确顺序的单引号和双引号:

"jdbc:teradata://HostName/DATABASE='\"Database-Name\"'"

答案 2 :(得分:0)

您是否尝试过\字符,该字符应该是Java中的转义字符?

jdbc:teradata://HostName/DATABASE=Database\-Name
相关问题