[英]Is it possible to pass a table name to a SQL query by select query in oracle
Is it possible to pass a table name to a query using a result of another query?是否可以使用另一个查询的结果将表名传递给查询?
SELECT T.MID, T.TID, M.NAME
FROM 'ONLINETRANSACTION@(' || SELECT ONLINEDBLINK FROM PARAMETERTABLE ||')' T
LEFT JOIN 'ONLINEMERCHANT@(' || SELECT ONLINEDBLINK FROM PARAMETERTABLE ||')' M
ON T.MID = M.MID
I have tried with the above code but it doesn't work.我已经尝试过上面的代码,但它不起作用。
This is a simple example based on Scott's schema.这是一个基于 Scott 模式的简单示例。
SELECT
statement;SELECT
语句的其余部分连接起来; finally, it executes it using EXECUTE IMMEDIATE
EXECUTE IMMEDIATE
执行它SQL> create table param (table_name varchar2(30));
Table created.
SQL> insert into param values ('EMP');
1 row created.
SQL> set serveroutput on
SQL> declare
2 l_table_name param.table_name%type;
3 l_max_sal emp.sal%type;
4 begin
5 select table_name into l_table_name
6 from param
7 where rownum = 1;
8
9 execute immediate 'select max(sal) from ' || l_table_name into l_max_sal;
10 dbms_output.put_line('Max salary = ' || l_max_sal);
11 end;
12 /
Max salary = 10000
PL/SQL procedure successfully completed.
SQL>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.