WSO2数据服务执行TRUNCATE TABLE报错:无法获取存储过程元数据
WSO2数据服务执行TRUNCATE TABLE报错排查与解决
错误原因
TRUNCATE TABLE属于SQL DDL语句,执行后不会返回结果集。但WSO2数据服务默认会对所有查询尝试检索元数据(该逻辑适配存储过程或SELECT类查询),当处理无结果返回的DDL时,就会触发“无法检索存储过程的元数据”的异常。
解决方案
在数据服务的query节点中添加resultType="none"属性,明确告知数据服务该SQL语句不返回任何结果,无需执行元数据检索操作。修改后的配置代码如下:
<query id="truncatenum" useConfig="mysql" resultType="none"> <sql><![CDATA[TRUNCATE TABLE Student]]></sql> </query> <resource method="GET" path="truncatenum"> <description /> <call-query href="truncatenum"/> </resource>
补充说明
对于所有无返回结果的SQL操作(如纯INSERT/UPDATE/DELETE、DROP语句等),都需要通过添加resultType="none"来规避此类元数据检索错误,确保WSO2数据服务正确处理这类语句。
内容的提问来源于stack exchange,提问作者Oussama Nairi
相关产品推荐
相关产品推荐

