我有一个从 Oracle Server 到 SQL Server 的异构数据库链接。我在 SQL Server 中的一些经常更新的表上发出 SELECT 语句,并且我的 SELECT 语句导致 SQL Server保存提到的行上的所有更新。我知道这是 MSSQL 中的一种已知行为(读取访问阻止写入访问),但我能以某种方式获取脏读吗?我搜索了整个文档,没有看到 Oracle SQL 语法的WITH (NOLOCK)或READ UNCOMMITED行为的迹象。
我的设置,以防万一:
# Linux
HS_FDS_CONNECT_INFO = MSSQL
HS_FDS_TRACE_LEVEL = OFF
HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
HS_FDS_SUPPORT_STATISTICS=FALSE
# Depending on where you defined your ODBC settings.
set ODBCINI=/etc/odbc.ini
# Following parameters are SQL Server environment dependant.
HS_LANGUAGE=RUSSIAN_RUSSIA.CL8MSWIN1251
HS_NLS_NCHAR=UCS2
HS_NLS_LENGTH_SEMANTICS=CHAR
HS_FDS_SQLLEN_INTERPRETATION=8
HS_FDS_FETCH_ROWS=1
HS_TRANSACTION_MODEL=READ_ONLY
有没有办法模拟WITH (NOLOCK)行为,所以我可以从 SQL Server 读取脏行而不导致写锁?