【问题标题】:JDBC DB2 URL with Comma-Separated List of currentFunctionPath带有逗号分隔的 currentFunctionPath 列表的 JDBC DB2 URL
【发布时间】:2018-12-18 21:28:16
【问题描述】:

我觉得这应该非常简单,但由于某种原因,我无法在任何地方找到答案。

我正在设置一个 DataSource,它没有很多我想要设置的属性的设置器。因此,我使用 jdbc URL 将我的一些连接属性传递到应用程序中。

我需要使用逗号分隔的模式列表设置 currentFunctionPath。通常,这可以通过运行以下 sql 来实现:

set path ASCHEMA, ANOTHERSCHEMA, YETANOTHERSCHEMA; 

但是,我需要应用程序中的所有连接都是这种情况,所以我想使用以下 jdbc URL:

jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA,ANOTHERSCHEMA,YETANOTHERSCHEMA;

然而,每当我这样做时,我都会收到一个 URL 语法错误,而且它似乎总是在到达我的逗号分隔路径列表中的第一个逗号时停止读取该行。

我已经尝试过 &s、引号和双引号等,但我就是不知道如何使它工作。

有人知道怎么做吗?

谢谢!

注意:我需要这样做的原因涉及调用存储过程,这些存储过程调用其他不完全限定的存储过程。我无法修改这些存储过程以使其完全合格。

错误:

Invalid database URL syntax: jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA. ERRORCODE=-4461, SQLSTATE=42815

【问题讨论】:

  • 你试过了吗,currentFunctionPath="ASCHEMA,ANOTHERSCHEMA,YETANOTHERSCHEMA";
  • @user2004685 是的,我确实做到了。我刚刚又试了一次。我收到的错误是:Invalid database URL syntax: jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath="ASCHEMA. ERRORCODE=-4461, SQLSTATE=42815 at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) 如您所见,错误在第一个逗号处突然停止。它不喜欢逗号。

标签: java jdbc db2


【解决方案1】:

因此,事实证明,DB2 根本不讨厌以逗号分隔的 currentFunctionPath 列表。

事实上,我是从属性文件中传入 jdbc url。当 Java 从属性文件中提取 jdbc url 时,它以逗号结束属性。我通过在 url 上执行 System.out.println(theurl) 测试了这一点。

我所要做的就是用反斜杠 (\) 转义逗号,以便 java 真正正确地提取属性。然后一切正常。

jdbc:db2://localhost:55555/FOLDER:currentSchema=ASCHEMA;currentFunctionPath=ASCHEMA\,ANOTHERSCHEMA\,YETANOTHERSCHEMA;

我很高兴解决了这个问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 2018-08-22
    • 2021-05-18
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多