0

我有一个从 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 读取脏行而不导致写锁?

4

1 回答 1

0

尝试使用未提交的读取隔离级别创建一个 sql 存储过程并从 oracle 执行它。

设置事务隔离级别读取未提交

HS_FDS_PROC_IS_FUNC

于 2019-10-04T00:18:06.187 回答