You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UFT One(VB Script)中Oracle ODBC含分号密码无法正确封装的问题

解决UFT One(VBScript)中Oracle ODBC连接密码含分号的问题

问题背景

使用UFT One的VBScript代码连接Oracle数据库,密码修改为含分号的内容后,原连接字符串会因分号截断密码导致认证失败,尝试多种封装方式(双引号、单引号、大括号、%x3B转义)均出现数据源错误或密码错误。

可行解决方案

方案1:双引号包裹密码(VBScript转义格式)

VBScript中用两个双引号表示一个双引号,以此包裹含分号的密码,ODBC驱动会识别双引号内的完整内容作为密码:

getConnectionString = "DRIVER={Oracle in OraClient19Home1_32bit};DBQ=<IP_ADDRESS>:<PORT>/<SID>;Trusted_Connection=Yes;UID=<USERNAME>;Password=""XXxxxXXXX;XXX"";Connection Timeout=600"

解析后实际传递给驱动的密码是"XXxxxXXXX;XXX",驱动会忽略双引号并完整读取分号后的内容。

方案2:URL编码转义分号

将密码中的分号替换为URL标准编码%3B(注意不是%x3B),驱动会自动解码为分号:

getConnectionString = "DRIVER={Oracle in OraClient19Home1_32bit};DBQ=<IP_ADDRESS>:<PORT>/<SID>;Trusted_Connection=Yes;UID=<USERNAME>;Password=XXxxxXXXX%3BXXX;Connection Timeout=600"

之前尝试方案的问题分析

  • 单引号封装:ODBC连接字符串不支持用单引号包裹参数值,单引号会被当作密码的一部分,同时分号仍会截断连接字符串,导致后续参数解析错误,触发数据源找不到的提示。
  • 大括号封装:Oracle ODBC驱动不兼容大括号包裹密码的格式,会破坏连接字符串结构,引发数据源错误。
  • %x3B转义:该格式是HTML/XML的十六进制转义,ODBC驱动无法识别,会直接将%x3B作为密码的一部分传递,导致密码不匹配。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:13:19