Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当v$session.osuser值大于30个字符时处理JDBC连接_Java_Oracle_Jdbc_Ojdbc - Fatal编程技术网

Java 当v$session.osuser值大于30个字符时处理JDBC连接

Java 当v$session.osuser值大于30个字符时处理JDBC连接,java,oracle,jdbc,ojdbc,Java,Oracle,Jdbc,Ojdbc,我正在安装第三方应用程序,它在连接到oracle 12.1时将v$session.osuser的值设置为用户名。不幸的是,我的linux帐户的用户名是34个字符长,因此安装无法完成 我无法更改linux帐户用户名,也无法以编程方式编辑连接属性,因为我没有访问应用程序源的权限 以下是我迄今为止的尝试(没有成功): 更新了.bash_配置文件,将linux用户属性的值修剪为29个字符 添加了两个命令行参数,-Doracle.jdbc.v$session.osuser={USER:0:29}和-Dus

我正在安装第三方应用程序,它在连接到oracle 12.1时将v$session.osuser的值设置为用户名。不幸的是,我的linux帐户的用户名是34个字符长,因此安装无法完成

我无法更改linux帐户用户名,也无法以编程方式编辑连接属性,因为我没有访问应用程序源的权限

以下是我迄今为止的尝试(没有成功):

  • 更新了.bash_配置文件,将linux用户属性的值修剪为29个字符
  • 添加了两个命令行参数,-Doracle.jdbc.v$session.osuser={USER:0:29}和-Duser.name={USER:0:29}

  • 还有其他可行的方法吗?

    我也遇到了同样的问题,并通过在JVM中设置user.name值来解决它。因此,添加:

    -Duser.name=<shorter-name>
    
    -Duser.name=
    
    。。。作为启动JVM时的一个选项。

    尝试:

    java -Doracle.jdbc.v\$session.osuser="my_user" ...
    

    是否可以升级到Oracle 12.2?这个版本最多允许128个字节,我把它升级到了12.2。正如您所说的,在这个版本中,osuser列需要128个字符,但我仍然得到这个列的格式错误。在该列中插入特殊字符是否有任何限制?我们正在使用@和。在用户名中,我认为数据库通常不会限制这些字符。我查看了
    从gv$会话中选择不同的osuser并找到字母、数字、“$”、“/”、“@”和_“在名字里。你能准确地添加你收到的错误消息吗?我发现了问题。我们正在使用的ojdbc jar仍在验证30个字符,尽管oracle支持128个字符。我们目前正在使用ojdbc8-12.2.0.1 jar。我们还有其他最新的ojdbc jar 12.2版本吗?我使用export JAVA_TOOL_OPTIONS=-Duser.name=@KumarV解决了这个问题。这是使用SQL Developer时的解决方案。答案非常简单。你能让它更具描述性吗?@Nikolay举个例子:使用这个命令行/appli/java/java8/bin/java-Doracle.jdbc.v\$session.osuser=“santa_claus”myjar.jar将使你在应用程序中创建的Oracle会话看起来像是由osuser“santa_claus”启动的。换句话说,v$session.osuser将读作“圣诞老人”。您还可以设置这3列:-Doracle.jdbc.v\$session.machine=“无论什么”-Doracle.jdbc.v\$session.program=“我的程序”-Doracle.jdbc.v\$session.terminal=“我的术语”从Oracle Database Release 18c开始,jdbc驱动程序支持一个新文件ojdbc.properties,它可以更容易地将连接属性传递给Java应用程序。在这个文件中,您可以使用如下内容:oracle.jdbc.v$session.osuser=