我想知道,如果有机会获得当前使用的 TNS 连接字符串,它将用于来自 db-server 的 DB-Link。
我连接到位于任何服务器上的数据库上的模式。现在,我有一些使用 tnsnames 的数据库链接,这些链接目前无法正常工作。我想检查一下,这个标识符后面是哪个目标数据库,以便轻松验证,如果这可能是正确的。
如果我有对 db-server 的操作系统访问权限,我将能够读取 ./tnsnames.ora 或使用 tnsping。
但是 dblink 的 DDL 只使用 TNSNAME(本例中为 RDBX):
创建数据库链接“ABC”连接到由值“:1”使用“RDBX”标识的“RUSER”;
当然,我可以问 DBA,但这在我们的环境中并不总是那么容易,我希望能够自己仔细检查它而无需操作系统访问。
我不认为这是可能的。某人或某物需要访问文件系统才能读取 tnsnames.ora。使用 DB-link 时,oracle 将从 tnsnames.ora 文件中获取 RDBX 的定义。这对用户是透明的,因此用户不会注意到。正如@EdStevens 建议的那样,我会尝试解决政治问题并与 DBA 合作。或者,请操作系统管理员来找您。