在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