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
相关产品推荐
相关产品推荐

