Oracle:基于映射表的动态SQL语句

时间:2019-02-08 09:06:47

标签: sql oracle dynamic-sql

采用以下语句在此page中创建上下文:

TABLEB

我想使用MAPPING_TABLE中设置的映射值从TABLEA中进行选择。

换句话说,知道SELECT的列名(例如'COLUMN_A')后,我想直接在TABLEB中创建一个SELECT /*a statement to recover the COLUMN_B based on the 'COLUMN_A' value*/ FROM TABLEB

类似的东西:

public class DaCollectionOfInt<T>
{
     public int id { get; set; }
}

var result = from m in list select new DaCollectionOfInt<int>() { id = m.id };

是否可以在SQL语句中执行操作,或者我被迫使用PL / SQL上下文(带有过程等)?

1 个答案:

答案 0 :(得分:0)

尝试一下

declare
  v_col varchar(30);
  v_val varchar(30);
  sql_stmt varchar(255);
begin
  select tableb_col into v_col
  from mapping_table 
  where tablea_col = 'COLUMN_A';

  sql_stmt := 'select '||v_col||' from tableb';

  dbms_output.put_line ( sql_stmt ) ;

  execute immediate sql_stmt into l_val;

  dbms_output.put_line ( v_val) ;
end;