【发布时间】:2012-11-21 11:16:11
【问题描述】:
我知道有相关的问题,但是我在网上遇到的大多数解决方案都有相同的解决方案,在 where 子句中将分号前身去掉。但是,这对我不起作用,因为我没有分号。
我正在使用 MyBatis 并运行 NUnit 测试。
MyBatisCode
<select id="GetLineNumber" parameterClass="HashTable" resultClass="long">
<![CDATA[
SELECT
HP.LINE_NUM
FROM
ODS.HAIL_PLCY_LINE_NUM
WHERE
PLCY_ID = #PolicyId#
AND HCL_ID = #HailCoverageId#
</select>
C#代码: ...
Hashtable lineNumberHash = new Hashtable
{
{"PolicyId",x.PolicyId}
,{"HailCoverageId",x.Id}
};
lastDatabaseCoverage.AddRange(IbatisSqlMapper.QueryForList<T>("GetLineNumber", lineNumberHash));
上面代码中的“X”是一个对象,属性PolicyId和Id是有效的,所以请忽略一些无上下文的信息!
请注意,我已经习惯了 SQL Server,因此如果 Select、From、Where 已关闭,那么我为简单的修复表示歉意。
我不断收到“ORA01036 非法变量...”消息
这是我的第一个问题,所以我不知道他们得到回答的速度有多快,但希望相当快:-)
提前致谢!
【问题讨论】:
-
请贴出错误信息的全文。
-
我试图编辑我的原始帖子但不能(这是有道理的)。消息是“ORA-01036:非法变量名称/编号”,标题栏显示“OracleException 未被用户代码处理”。 PolicyId 和 HailCoverageId 的数据类型在数据库中都设置为数字(而不是字符串)。