2016-04-08 79 views
0

我想問一下,是否可以使用遊標來循環字符串值?例如,我有我的「.txt文件」報告3標題欄:如何在ORACLE上使用spool來使列名稱動態化?

COLUMN "DATE" format a15 
COLUMN "SUBJECT" format a8 
COLUMN "CLASS" format a10 

,結果是這樣的:現在

DATE      SUBJECT    CLASS 
----------------------  ------------------  ----------------- 
08-Apr-2016     Science    10 
08-Apr-2016     Social     11 

,列名仍然是通用的或硬編碼。然後,我想返回字符串值來替換「DATE」,「SUBJECT」和「CLASS」爲動態。因此,請按照加載到數據庫的數據進行操作。

例如: 我有一個與這些數據填充表:

TITLE_COLUMN1    TITLE_COLUMN2     TITLE_COLUMN3 
DATE      SUBJECT      CLASS 

我想選擇TITLE_COLUMN1,TITLE_COLUMN2,TITLE_COLUMN3值是對我的列名。那麼更好的方法是什麼?使用

光標

或使用

可變

感謝您的建議和幫助。

+1

究竟是你想實現什麼目標?如果你不關心COLUMN設置,你可以編寫一個PL/SQL塊來構建一個動態查詢,打開一個遊標,然後使用'print'命令打印遊標結果。但是你將無法使用COLUMN格式化命令。如果你的目標只是生成一個輸出文件,那麼我傾向於使用'utl_file',這可能是基於Tom Kyte的SQL * Unloader,而不是試圖跳過SQL * Plus中所需的所有環節,如果你想做一堆格式化。 –

回答

0

如果你用sqlplus和你談論substitution variables,你可以這樣:

column title_column1 new_value vc1 
column title_column2 new_value vc2 
column title_column3 new_value vc3 
select title_column1,title_column2,title_column3 from test_columns; 
select &vc1,&vc2,&vc3 from test_data; 
+0

嗨,是的謝謝你;) – octoberafternoon

相關問題