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

JMeter执行Oracle PL/SQL报Invalid SQL type错误如何解决

解决方法

1 修正PL/SQL块语法错误

你提供的原始PL/SQL块存在语法遗漏,是触发ORA-06550报错的直接原因:

  • 变量声明行j number(4)末尾缺少分号
  • 循环结束行END LOOP末尾缺少分号
  • 块结束标识END末尾缺少分号,完整执行需补充终止符/

修正后的完整代码如下:

DECLARE 
j number(4);
BEGIN 
FOR j in 11 .. 12 LOOP
      INSERT INTO FWA_STAGE_TU 
      (ID,EXT_ID,BATCH_NO,OPERATION,BLOCK_ROLL_UP_LAST_RECORD,LAST_UPDATED_DATE,ERROR_FLAG,TRIAL_NO,TRIAL_ALIAS_CODE,
      COUNTRY_CODE,DISPLAY_UNIT_NO,GROUP_NO,TRIAL_UNIT_REFERENCE,PRIMARY_INVESTIGATOR,PRIMARY_CENTRE,OCATION_NO,
      PURPOSE_CODE,MANAGING_MED_UNIT_CODE,UPDATING_MED_UNIT_CODE,FINANCE_MED_UNIT_CODE,PATIENTS_ALL_SET_UP_FLAG,
      PATIENT_MONITORING_FLAG,COMMENTS,CONFIRMED_FLAG,CONFIRMED_BY,CONFIRMED_DATE,ROLLUP_ROLLDOWN_PLANNED_FIGS,
      DOC_COLLECTION_INDICATOR,VALIDATED_PAT_CAP,MAXIMUM_PAT_CAP,PREFERRED_LANGUAGE_CODE,NEW_DISPLAY_UNIT_NO,
      TOTAL_OPEN_DCF_ISSUES_NO,ORDER_INTERVAL,ORDER_INTERVAL_UNITS,DATA_SOURCE_CODE,RANK_SEQ)                  
      VALUES 
      (j, 1, 10, 'I', NULL, SYSDATE, 'N', 102922, 'TESTTRIAL4', 'BEL', 
      j, NULL, 'BELTU'||j, 130262, 124236, NULL, 'PATTR', 'FP', 'FP', 'FP', 'N', 'Y', 'TESTTU'||j, 
      'Y', 999999, SYSDATE, NULL, 'P', 0, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL); 
  END LOOP;
END;
/

2 调整JMeter JDBC Request配置

按以下参数调整配置即可解决Invalid SQL type: sqlKind = UNINITIALIZED报错:

  • Query Type 选择 Callable Statement
  • 不要用{call ...}包裹PL/SQL块,该语法仅用于调用已创建的存储过程/函数,不适用于匿名PL/SQL块
  • 不需要对多行语句做双引号加+的拼接操作,直接粘贴上述修正后的完整PL/SQL块即可
  • 事务隔离级别可保持你当前设置的TRANSACTION_SERIALIZABLE,无影响

3 异常排查补充

如果调整后仍有报错,检查Oracle JDBC驱动版本是否与数据库服务端版本匹配,版本差异过大也会触发未知的SQL类型解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:27:03