任何人都知道查询整个 Oracle 数据库的好方法,以了解哪些用户拥有创建私有数据库链接的权限?谢谢!!
我想知道,如果有机会获得当前使用的 TNS 连接字符串,它将用于来自 db-server 的 DB-Link。
我连接到位于任何服务器上的数据库上的模式。现在,我有一些使用 tnsnames 的数据库链接,这些链接目前无法正常工作。我想检查一下,这个标识符后面是哪个目标数据库,以便轻松验证,如果这可能是正确的。
如果我有对 db-server 的操作系统访问权限,我将能够读取 ./tnsnames.ora 或使用 tnsping。
但是 dblink 的 DDL 只使用 TNSNAME(本例中为 RDBX):
创建数据库链接“ABC”连接到由值“:1”使用“RDBX”标识的“RUSER”;
当然,我可以问 DBA,但这在我们的环境中并不总是那么容易,我希望能够自己仔细检查它而无需操作系统访问。
使用 PostgreSQL,我可以轻松地执行一个 select 语句来返回一个 datatype 数组的列point
。即colA
是数据类型point[]
select colA from tbl
返回包含点数组的列:
+-----------------------------+
| colA |
+-----------------------------+
| (180.0,90.0),(-180.0,-90.0) |
| (64.0,38.0),(-26.0,-40.0) |
| etc |
+-----------------------------+
我确定该列是 type point[]
,因为select colA[0]
按预期返回。
我正在尝试从另一台服务器使用DBLINK()
. 这是查询:
select
colA
from dblink(
'my_conn',
'select
colA
from public.tbl'
) as s (
colA point[]
)
此查询失败并显示以下错误消息:
SQL 错误 [22P02]:错误:格式错误的数组文字:“(180,90),(-180,-90)”详细信息:数组值必须以“{”或维度信息开头。
我测试了我能够point
使用DBLINK
. 即这个查询成功:
select
colA
from dblink(
'my_conn',
'select
colA[0]
from public.tbl'
) as s (
colA point
)
所以,我的问题是如何通过 DBLINK 函数选择数组?.
除了手动搜索触发器/函数/存储过程中使用的所有 dblink() 之外,还有没有办法查询这些信息?
示例:触发器中有一个 dblink,我可以从 postgres 模式中选择一些可以识别它的东西吗?
我认为这是一项手动工作,但只是为了确保我没有遗漏任何东西。
注意:我有一些日志记录,我也在寻找 dblink()
Oracle 提供了一种“链接”机制,以便访问与运行查询的数据库实例不同的数据库实例。
DIM_DATES@OTHERDB
是否有任何 ANSI SQL 标准方法来对此进行编码?
我很难在网上找到有关此主题的任何内容。
我的任务是在两个 Sybase 数据库之间创建一个 DBLink。目前尚不清楚它们是在同一台服务器上还是在同一网络中的不同机器上。我所知道的是它们都将在相同版本的 Sybase SQL Anywhere 12 上运行。
我能找到的只是如何创建从Oracle 或 MSSQL到Sybase 的 DBLink。
我似乎找不到任何关于 Sybase 到 Sybase 的信息。
对不起,如果我的术语有点不可靠,我是 Sybase/ASA 的新手。