oracle解析sql非常严谨,一定要注意sql的格式
场景说明:jmeter连接oracle,执行insert values语句,初始jmx脚本内容如下:
```
<stringProp name="query">insert into test values('${PRO}','${SATE}','${Ccc}','${BRO}','${STARTTIME}','${PR}','${IMA}','${GE}','${YAW}','${TLDE}','${TLLE}','${TRLE}','${TRUDE}','${BUDE}','${BITUDE}','${TUDE}','${BDE}','${STATE}','${NC}');
</stringProp>
```
1. 报错信息1:SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
- 原因:jmx文件的insert语句结尾多了一行空格,</stringProp>是另起一行的,需要把换行符去掉
2. 报错信息2:SQLDataException: ORA-01861: 文字与格式字符串不匹配
- 原因:表中含有date类型,不能直接insert日期值,需要用to_date函数
3. 报错信息3:缺少逗号
- 原因分析:to_date函数前面增加了单引号,oracle解析出错,需要去掉
4. 执行通过的jmx脚本格式如下:
```
<stringProp name="query">insert into test values('${c}','${D}','${NT}','$MG}',to_date('${STARTTIME}','yyyy-mm-dd hh24:mi:ss'),'${PR}','${D}','${KT}','${YAW}','${TE}','${UDE}','${TDE}','${E}','${DE}','${BRL}','${BE}','${TUDE}','${STATE}','${ISSYNC}')</stringProp>
```
原文地址:https://www.cnblogs.com/learner34/p/10821109.html