在Oracle PL/SQL中,我运行了一个查询,并试图逐一读取每一列的每一列,以便我可以用分隔符(硬格式要求)。该脚本用于多个不同大小的表格,因此预先不知道列的数量。我用如何通过ID或索引号引用列
SELECT COUNT(column_name) INTO NumColumns FROM all_tabs_cols
WHERE table_name = Table_Array(i);
其中Table_Array已被定义。这是一个for循环的中间,并已成功地获得了一个列的总数。 Table_Cursor是一个SELECT *语句。在此之后,我试图做类似
FOR j IN 0..NumColumns-1 LOOP
FETCH TABLE_CURSOR.column(j) INTO DataValue;
DBMS_OUTPUT.PUT(DataValue || '/');
END LOOP
上面是伪代码。它阐明了我所追求的概念。我不知道PL/SQL是否足够了解如何获得像这样的值。我也担心在执行此操作时意外推进游标。我怎样才能完成这项任务?
谁不只是使用LISTAGG或其他聚合函数? – OldProgrammer
这不是你应该如何使用SQL - SQL是基于设置 - 只要你看看你有麻烦。 – Hogan
@霍根,我很害怕这个。那么,什么是更好的方式来获取这些信息呢? – SandPiper