Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在oracle中连接绑定变量_Oracle_Oracle10g - Fatal编程技术网

在oracle中连接绑定变量

在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

我有一个要求,我必须从一个表中选择数据库链接的名称(有许多数据库链接)到绑定变量中,然后从一个表中获取数据,该表在所有数据库链接中都可用,但数据根据使用的数据库链接而不同。我没有得到一个使用绑定变量值作为DB链接的解决方案

这是我的代码:

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;