在oracle中连接绑定变量
我有一个要求,我必须从一个表中选择数据库链接的名称(有许多数据库链接)到绑定变量中,然后从一个表中获取数据,该表在所有数据库链接中都可用,但数据根据使用的数据库链接而不同。我没有得到一个使用绑定变量值作为DB链接的解决方案 这是我的代码:在oracle中连接绑定变量,oracle,oracle10g,Oracle,Oracle10g,我有一个要求,我必须从一个表中选择数据库链接的名称(有许多数据库链接)到绑定变量中,然后从一个表中获取数据,该表在所有数据库链接中都可用,但数据根据使用的数据库链接而不同。我没有得到一个使用绑定变量值作为DB链接的解决方案 这是我的代码: select语句,用于将DB link提取到bind变量中 SELECT DB_LINK into :v_db_link from reagions_db_links; 然后我必须使用它从表中获取数据 SELECT reagion_id, region_na
select
语句,用于将DB link提取到bind变量中
SELECT DB_LINK into :v_db_link from reagions_db_links;
然后我必须使用它从表中获取数据
SELECT reagion_id, region_name from Table_details@:v_db_link
我已经尝试连接如下,但它不工作
SELECT reagion_id, region_name from Table_details@||:v_db_link
请给我建议一个解决方案,因为根据用户选择的区域,我可以有许多DB链接,我将其放入绑定变量中,然后希望使用它从表中获取数据。替换变量可用于此。下面是一个快速示例,说明了如何执行此操作: (Sql*plus环境)
-- set-up table that stores db_links
SQL> create table db_links(
2 dblink_name varchar2(31)
3 );
Table created.
--add a test dblink
SQL> insert into db_links(dblink_name) values ('TEST_DB_LINK');
1 row created.
SQL> commit;
Commit complete.
-- defining of a substitution variable dblink
SQL> column dblink_name new_value dblink noprint;
-- the value of the dblink_name column will be placed into the dblink
-- substitution variable declared previously
SQL> select dblink_name from db_links;
-- now we query a table using db link name stored
-- in the dblink substitution variable
-- prefacing it with ampersand.
SQL> select count(*) from dbusers@&dblink;
old 1: select count(*) from dbusers@&dblink
new 1: select count(*) from dbusers@TEST_DB_LINK
COUNT(*)
----------
351
SQL> spool off;