【发布时间】:2018-10-24 10:54:57
【问题描述】:
我正在安装第三方应用程序,它在连接到 oracle 12.1 时将 v$session.osuser 的值设置为用户名。不幸的是,我的 linux 帐户的用户名长度为 34 个字符,因此无法完成安装。
我无法更改 linux 帐户用户名,也无法以编程方式编辑连接属性,因为我无权访问应用程序源。
以下是我迄今为止的尝试(没有成功):
- 更新了 .bash_profile 以将 linux USER 属性的值修整为 29 个字符
- 添加了两个命令行参数,-Doracle.jdbc.v$session.osuser={USER:0:29} 和 -Duser.name={USER:0:29}
还有其他可行的方法吗?
【问题讨论】:
-
是否可以选择升级到 Oracle 12.2?该版本最多允许 128 个字节。
-
我确实将它升级到了 12.2。正如您所说,osuser 列在此版本中占用 128 个字符,但我仍然在此列上收到格式错误。它对该列中插入的特殊字符有任何限制吗?我们正在使用 @ 和 .在用户名中
-
我认为数据库通常不会限制这些字符。我查看了 400 个数据库上的
select distinct osuser from gv$session;,发现名称中有字母、数字、“$”、“/”、“.”、“@”和“_”。您能否准确添加您收到的错误消息? -
我发现了问题。尽管 oracle 支持 128 个字符,但我们使用的 ojdbc jar 仍在验证 30 个字符。我们目前使用的是 ojdbc8-12.2.0.1 jar。我们还有其他 12.2 版本的最新 ojdbc jar 吗?