我有一个函数secureUser. collection. getExampleId。这个函数返回一个给定keyId的Example Id。我试图在MyBatisMap器中调用这个函数。
<mapper namespace="core.namespace.dao.mybatis.MyMapper">
<resultMap id="Data" type="core.model.impl.table">
<result column="column1" property="one" />
<result column="column2" property="two" />
<result column="column3" property="three" />
<result column="secure" property="sec" />
</resultMap>
<select id="getSecure" parameterType="java.lang.Long" resultMap="Data">
select column1, column2, column3, secureUser.collection.getExampleId(#{id}) secure
from mytable mt
where mt.keyId = #{id}
</select>
</mapper>
字符串
当调用此代码时,我收到错误ORA-00904:“SECUREUSER”.“COLLECTION”.“GETEXAMPLEID”:无效的标识符。我在上面写的PL/SQL中运行了这段代码,它工作正常,并返回正确的数据。在查看错误后,我试图运行上面的代码,在secureUser周围有“s,collection和getExampleId。当我运行它时,我收到了与Java ORA-00904相同的错误,所以我认为Java在select语句中将这些值放在引号中。
如何将此Oracle函数称为secureUser.collection.getExampleId(#{id})secure?
这是工作数据,所以我必须更改所有对象名称。
1条答案
按热度按时间ybzsozfc1#
默认情况下,Oracle SQL不区分大小写。当您使用引号时,您强制区分大小写,因此如果对象不是以 * 完全 * 相同的方式创建的,在原始数据库中使用引号,则无法找到它们。如果无法取消引号,则唯一的选择是使代码中的每个标签都大写,因为这是Oracle的默认表示。
字符串