我有一个 ABAP 类,其中包含用于读取/写入远程 Microsoft SQL Server 2005 实例的各种方法。
一切都按预期工作。现在,出于安全原因,我被建议在 SELECT 查询中添加 SQL Server 表提示 (READPAST)(这应该是防止死锁的一种措施——我远非 SQL 专家)。
可悲的是我不能让它工作。这是我的 Native SQL 块,它可以正常工作:
EXEC SQL.
OPEN ritc FOR
SELECT FIELD1,
FIELD2,
FIELD3,
FROM MY_TABLE
WHERE FIELD1 <= :lv_variable1
AND FIELD3 = :c_constant
ENDEXEC.
如果我尝试WITH(READPAST)
在 之后立即添加FROM MY_TABLE
,我会收到此错误:您只能在 READ COMMITTED 或 REPEATABLE READ 隔离级别中指定 READPAST 锁。
OPEN ritc
很公平:我尝试在该行之前添加此命令:
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
这引发了一个不同的错误:在FETCH
此块之后的第一个命令中,我收到一条错误消息,指出游标ritc
存在并且它已经打开。
在这一点上,我什至不确定我是否可以将表提示添加到本机 SQL 块?
有什么建议么?提前致谢。