gpt4 book ai didi

oracle - 是否可以为 session 设置默认的 ORACLE dblink 并避免 @dblink_name 后缀

转载 作者:行者123 更新时间:2023-12-04 00:51:44 25 4
gpt4 key购买 nike

我有一个 Oracle 数据库,其中有几个公共(public)数据库链接供各种客户使用。所有客户的所有链接数据库都是相同的。此外,我的主机上只有一个模式,我在其中存储了带有一些数据检索逻辑的数据库 View 。目前,如果我想从不同的客户那里检索相同的数据,我必须为每个客户分别创建几乎相同的 View :

CREATE VIEW my_view_for_cliet1 AS 
SELECT *
FROM table1@dblink1;

CREATE VIEW my_view_for_cliet2 AS
SELECT *
FROM table1@dblink2

是否可以为 session (或类似的东西)设置默认的 dblink 并且只有一个没有显式 dblink 的数据库 View ,例如:

CREATE VIEW my_view AS 
SELECT *
FROM table1;

-- below I want to retrieve data from 3rd client
ALTER SESSION SET DEFAULT DBLINK dblink3;

SELECT * FROM my_view;

附言我在链接的机器上只有 SELECT 权限,所以我不能创建任何 View 或其他对象。

最佳答案

不,那是不可能的。对 dblink 的每个引用都必须是显式的。

请注意,(到目前为止)提出的每个其他解决方案都可以提供您所要求的外观,但在所有实际 View 中仍然需要显式的 dblink 引用,因此需要相同的 DDL每个新链接和/或客户端用户的更改。没有办法避免在某种程度上创建这些单独的 View 或显式引用(我相信你问的是什么),即使你对用户隐藏了它们。

关于oracle - 是否可以为 session 设置默认的 ORACLE dblink 并避免 @dblink_name 后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65807409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com