指定协议时JDBC EZConnect URL端口号格式无效问题求助
JDBC EZConnect URL端口号格式错误原因分析
出现Status : Failure - Test Failed: IO Error: Invalid number format for port number错误,核心原因是JDBC thin驱动无法正确解析你指定的带协议EZConnect URL格式,具体细节如下:
URL格式不符合JDBC thin驱动的解析规则
你参照的Oracle 19c JDBC指南中的示例,可能是Oracle Net的EZConnect字符串格式(比如tcps://example1.com:1522/my_service_name),但JDBC thin驱动的URL并不支持直接在@后添加tcps://或tcp://前缀。当你写jdbc:oracle:thin:@tcps://example1.com:1522/my_service_name时,驱动会错误地将tcps识别为主机名,把//example1.com当作端口号的一部分,自然无法解析出有效的数字端口,从而抛出端口号格式错误。驱动版本不兼容(次要原因)
若你使用的JDBC驱动不是Oracle 19c对应的版本(如ojdbc8.jar/ojdbc10.jar),旧版本驱动对带协议的简化URL支持不足,也可能导致解析失败。
正确的URL写法
如果需要指定tcps协议,应该使用TNS样式的JDBC URL:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=example1.com)(PORT=1522))(CONNECT_DATA=(SERVICE_NAME=my_service_name)))
如果是默认tcp协议,可使用简化格式:
jdbc:oracle:thin:@//example1.com:1522/my_service_name
内容的提问来源于stack exchange,提问作者andrewtindle
相关产品推荐
相关产品推荐

