登录错误:IO 错误:连接字符串格式无效,有效格式为:“主机:端口:sid”,使用 SAP crystal reports JAVA API

问题描述 投票:0回答:1

我们有一个基于 Java 的桌面应用程序,它执行两部分 jdbc 登录,一是用于创建与 Oracle DB 的连接,这让用户执行查询和存储过程,第二个 jdbc 登录在用户尝试生成/打印 Crystal 报告时发生。对于这个 crystal java 接口,我们使用来自 SAP 社区的 crjava-runtime_12.2.223.zip 库。现在奇怪的事情是在我们所有开发人员的计算机上,我们没有遇到任何无效连接字符串格式的错误,但此错误仅出现在生产用户的帐户之一上。他能够成功登录到应用程序,即第一个 jdbc 连接,但是当他尝试与 Crystal 接口建立连接时,他面临以下错误:登录错误:IO 错误:连接字符串格式无效,有效格式为:“主机:端口:sid”

我们尝试通过遵循 jdbc URL 格式来解决此问题(阅读大量 Java JDBC 问题 - 如何使用 jdbc 格式连接到 Oracle),但在与 Crystal Interface 建立连接时总是遇到相同的错误。 (用户的SID和服务名称与abcprod相同)

  1. jdbc:oracle:thin:@abc-db.abchosting.local:1521:abcprod
  2. jdbc:oracle:thin:@//abc-db.abchosting.local:1521/abcprod
  3. jdbc:oracle:thin:@abcprod(使用 TNSFILE)
  4. jdbc:oracle:thin:@abc-db.abchosting.local:1521/abcprod

用户使用的是 oracle 版本 12c,同一数据库上还有其他两个用户,他们根本没有遇到此错误。任何人都可以建议我们应该检查什么,这是应用程序问题(代码级别)还是 Oracle 授予/权限问题?我已要求 DBA 比较这三个用户的补助金,但他说他们的所有补助金都是相同的。有什么提示或建议吗?

这个问题与Oracle的JDBC库无关,这与SAP Crystal Report的java库有关,因为如果我们与Oracle的JDBC库建立连接,它工作正常,我的第一句话说:两部分JDBC登录,首先使用普通的oracle JDBC 库工作正常,第二部分使用 crystal 库,与第一部分中使用的连接字符串/URL 相同,在尝试建立连接时会抛出错误,但此错误仅特定于一个用户,生产中的其他用户则不然面对这个错误。

java oracle jdbc crystal-reports
1个回答
0
投票

我们能够解决这个问题。尽管我们已经尝试了很多解决方案,但问题仅出现在用户密码中包含特殊字符的情况下,例如他们设置的密码如下:Abcd@12345,这个“@”字符导致了此错误。删除这个字符解决了这个问题,同时建议不要使用“@”、“.”等字符。在你的密码中。

https://asktom.oracle.com/pls/apex/f?p=100:11:::NO:RP:P11_QUESTION_ID:9533940800346284735

© www.soinside.com 2019 - 2024. All rights reserved.