SQL动态连接到用户/数据提供的表
我想要像这样的东西:SQL动态连接到用户/数据提供的表,sql,oracle,dynamic,join,oracle11g,Sql,Oracle,Dynamic,Join,Oracle11g,我想要像这样的东西: SELECT * from metric_data m, (SELECT table_for_join FROM join_tables WHERE from_table = 'usersupplied') u, WHERE m.id = u.id 这可能吗 如果有必要的话,我正在使用oracle 11g SELECT m.* from metric_data m LEFT JOIN join_tables u ON(m.id = u.id AND u.
SELECT * from metric_data m,
(SELECT table_for_join FROM join_tables WHERE from_table = 'usersupplied') u,
WHERE m.id = u.id
这可能吗
如果有必要的话,我正在使用oracle 11g
SELECT m.* from metric_data m
LEFT JOIN join_tables u
ON(m.id = u.id AND u.from_table='usersuplied')
WHERE 1=1
从度量单位数据m中选择m.*
左联接表
ON(m.id=u.id和u.from_table='usersupplied')
其中1=1
我认为您需要使用动态sql。类似这样的东西(对不起,我现在无法测试它,但我希望它能工作
CREATE PROCEDURE getMetricData (in_table_name varchar2)
IS
real_tab_name varchar(32);
BEGIN
SELECT table_for_join into real_tab_name
FROM join_tables WHERE from_table = in_table_name;
IF (real_tab_name IS NOT NULL) THEN
EXECUTE IMMEDIATE 'SELECT * from metric_data m, ' || real_tab_name || ' u
WHERE m.id = u.id';
END IF;
END;
这没有任何意义,你确定你理解这个问题吗?“join_tables”不包含“id”列,而且我没有看到我实际加入的第三个动态表。这看起来很有希望,我今天稍后会测试