【发布时间】:2026-02-07 02:50:02
【问题描述】:
响应消息:java.sql.SQLException:无法创建 PoolableConnectionFactory (ORA-00604: 递归 SQL 发生错误 级别 1 ORA-12705: 无法访问 NLS 数据文件或无效环境 指定)
【问题讨论】:
标签: database oracle testing jmeter connectivity
响应消息:java.sql.SQLException:无法创建 PoolableConnectionFactory (ORA-00604: 递归 SQL 发生错误 级别 1 ORA-12705: 无法访问 NLS 数据文件或无效环境 指定)
【问题讨论】:
标签: database oracle testing jmeter connectivity
按照此过程为 Oracle 数据库设置 NLS_LANG 环境变量。为 Oracle 数据库设置 NLS_LANG 环境变量 确定 NLS_LANG 值。在数据仓库数据库中,运行命令 SELECT * FROM V$NLS_PARAMETERS
记下 NLS_LANG 值,其格式为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。例如: American_America.UTF8 对于 Windows:导航到控制面板 > 系统并单击高级选项卡。单击环境变量。在系统变量部分中,单击新建。在变量名称字段中,输入 NLS_LANG。在变量值字段中,输入在步骤 1 中返回的 NLS_LANG 值。NLS_LANG 值的格式应为 [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]。例如:American_America.UTF8。对于 UNIX,如下所示设置变量:setenv NLS_LANG
例如:setenv NLS_LANG American_America.UTF8。如果您的数据是 7 位或 8 位 ASCII 并且 Informatica 服务器在 UNIX 上运行,则设置 NLS_LANG _.WE8ISO8859P1 注意:确保按照此过程中所述正确设置 NLS_LANG 变量,否则您的数据将不会显示正确。
创建变量后重启机器。
验证查询应在 JDBC CONNECTION CONFIGURATION 中的 jmeter 中更改为“select 1 from dual”。
不要放分号;在 JDBC REQUEST 中的查询结束时
【讨论】:
我刚刚从 JMeter 3.2 升级到 4.0 时遇到了这个问题。
我以前工作的脚本无法运行,我收到了上述错误。
我没有选择去更改 Oracle 数据库的 NLS_LANG 环境变量。
我的解决方案是简单地更改 JMeter.bat 并且 NOT 传递 JMETER_LANGUAGE
即在 JMeter.bat 中:
if not defined JMETER_COMPLETE_ARGS (
rem set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %JMETER_LANGUAGE% %RUN_IN_DOCKER%
set ARGS=%JAVA9_OPTS% %DUMP% %HEAP% %VERBOSE_GC% %GC_ALGO% %DDRAW% %SYSTEM_PROPS% %RUN_IN_DOCKER%
) else (
set ARGS=
)
【讨论】: