Jmeter5.1.1连接oracle数据库的错误复盘

全部错误复盘,按出现顺序

1. 第一报错:ORA-12514 TNS:listener does not currently know of service

原因 JDBC URL 写了 test.LIANSHI,数据库监听里注册的服务名只是 test,带域名后缀的服务名监听器识别不到。

本质:服务名不匹配 ,不是 jar 包问题。能报 ORA 错误 = ojdbc8 已经加载成功。 ✅ 修复:URL 改为 jdbc:oracle:thin:@//10.1.1.96:1521/test

2. 第二报错:ORA-00923: FROM keyword not found where expected(核心坑)

原因 JDBC 连接池里【Validation Query 校验 SQL】写了 select 1。

  • MySQL 支持简写select 1;
  • Oracle 没有虚拟表不能单独 select 常量,必须写 SELECT 1 FROM DUAL 连接池初始化阶段,会自动执行这条校验 SQL,SQL 语法直接报错,连接池创建直接失败,还没执行你的 INSERT 语句。

关键点:这个报错不是你 Insert 语句的问题 ,是连接池自检 SQL 非法。 ✅ 修复:Validation Query 改成 SELECT 1 FROM DUAL

3. 额外潜在隐患(这次虽然没报错,但以后容易踩坑)

  1. JMeter JDBC 元件不能带 SQL 末尾分号 ; DBeaver 可以写;,但 JDBC 驱动执行时把分号当成额外语句,会报语法异常。
  2. Query 框多行换行 你截图里 Insert 是多行折行。Oracle JDBC 对换行敏感,复制粘贴容易带入不可见特殊字符,建议压测 SQL 保持单行。
  3. 连接池配置改动后必须重启 JMeter JMeter 的连接池配置只在启动时加载,改完不重启,旧配置仍然生效。

一句话总结

12514 = 连接串的 service 名称不对 00923 = 连接池校验 SQL 简写,Oracle 缺少 FROM DUAL

区分两个报错阶段:

  • Cannot create PoolableConnectionFactory:创建连接池阶段失败,还没跑你的业务 SQL
  • JDBC Request 里的响应报错:连接成功后,执行 INSERT 时才报的错

正确的如下:

相关推荐
imDwAaY2 小时前
MySQL 存储引擎是什么?
android·数据库·mysql
星云低代码开发平台2 小时前
ERP 与 CRM 客户信用核对:业务键、时点和权限验收
大数据·数据库·人工智能
xiaogai_gai2 小时前
销售出库单同步实战:旺店通→金蝶云星空的单一策略深度拆解
大数据·前端·数据库
下页、再停留2 小时前
【C#桌面客户端系列学习-11】将SQLite数据库打包到exe里
数据库·c#·visual studio
下页、再停留2 小时前
【C#桌面客户端系列学习-12】封装SQLite数据库基础操作工具类(CURD)
数据库·c#·visual studio
LYmatch2 小时前
2024年408真题第41~47题汇总解析
数据库
程序员Sunday2 小时前
Redis 缓存穿透、击穿、雪崩怎么区分?从回源压力找原因
数据库·redis·缓存
我科绝伦(Huanhuan Zhou)2 小时前
磐维数据库(PanWeiDB)日常运维命令总结
运维·数据库
guo_wen_qiang2 小时前
redis实现秒杀功能-超卖&库存遗留问题的解决
数据库·redis·缓存