Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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
Sql 循环浏览表列列表,并对其应用查询_Sql_Oracle - Fatal编程技术网

Sql 循环浏览表列列表,并对其应用查询

Sql 循环浏览表列列表,并对其应用查询,sql,oracle,Sql,Oracle,我们有一个表mytable,它包含以下列:id、value、description 现在,我想将此sql查询应用于每一列: select distinct [column] from mytable; 有办法做到这一点吗 注意。我想提供要循环的列列表,而不是循环表中的每一列 您当然可以使用动态SQL生成查询。然而,你想对结果做什么?我们可以做什么假设,也就是说,我们可以假设表总是有N列吗?是否只想打开返回给调用方的三个sys_refcursor对象?您想对PL/SQL中的结果做些什么吗? d

我们有一个表mytable,它包含以下列:id、value、description

现在,我想将此sql查询应用于每一列:

select distinct [column] from mytable; 
有办法做到这一点吗


注意。我想提供要循环的列列表,而不是循环表中的每一列

您当然可以使用动态SQL生成查询。然而,你想对结果做什么?我们可以做什么假设,也就是说,我们可以假设表总是有N列吗?是否只想打开返回给调用方的三个sys_refcursor对象?您想对PL/SQL中的结果做些什么吗?
declare
  l_tab_name varchar2(32) := 'MY_TABLE';
begin
  for c1 in (select t.column_name from user_tab_columns t where t.table_name = l_tab_name)
    loop
      execute immediate 'select distinct ' || c1.column_name || ' from ' || l_tab_name;
    end loop;
end;