我有 3 台服务器,其中一台配置了指向另一台的链接服务器——我称之为服务器 A。服务器 A 有超过 100 个用于各种目的的用户数据库。服务器 B 正在运行 SQL 2005,我们正试图消除它。服务器 C 拥有服务器 B 中一些数据库的副本,我们正在将应用程序从服务器 B 的数据库副本迁移到服务器 C。
当我在服务器 B 上时,我可以看到从服务器 A 到某个数据库的连接,但我不知道如何判断服务器 A 的哪些过程、任务或作业正在使用该链接服务器连接到服务器 B。
为了停用服务器 B 上的数据库,我需要将服务器 A 的连接重新指向服务器 C 上的数据库;但为了做到这一点,我需要知道服务器 A 上的哪些过程、任务或作业正在使用该连接,以便更新它们。
有没有办法在不禁用链接服务器的情况下查看链接服务器上的依赖关系以查看开始失败的内容?
我们正在使用 SAP SLT 将 HANA 上的 SAP ECC 6.0 中的表复制到 Oracle 10g 仓库中。自开始以来,我们注意到NOT NULL
HANA 中的列定义保留在表的 Oracle 副本中,但 HANA 将许多值存储为空字符串。Oracle 将空(varchar)字符串存储为NULL
s 并且不知何故这与NOT NULL
列定义不冲突(即我们NULL
在列中定义为NOT NULL
)。
查询这些表会产生奇怪的结果:
SELECT COUNT(*) FROM warehouse.table WHERE col IS NULL;
0
SELECT COUNT(*) FROM warehouse.table WHERE col = '';
0
SELECT COUNT(*) FROM warehouse.table GROUP BY NVL(col,'N');
X 503206
N 2377222
Run Code Online (Sandbox Code Playgroud)
所以我们可以通过使用或函数来 NULL
判断这些列中有值,但是查询它们会返回奇怪的结果。NVL
DECODE
一旦我们改变了列,我们就会得到正确的结果:
ALTER TABLE warehouse.table MODIFY (col NULL);
Table altered.
SELECT COUNT(*) …
Run Code Online (Sandbox Code Playgroud)