如何在 ORACLE 上使用 spool 使列名动态化?
How to make column name dynamic with spool on ORACLE?
请问,是否可以使用游标来循环字符串值?例如,我的“.txt”报告有 3 个标题列:
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
现在,列名仍然是通用的或硬编码的。然后,我想用 return 字符串值来替换 "DATE"、"SUBJECT" 和 "CLASS" 来动态。所以只需关注加载到数据库的数据。
例如:
我有 table 填满了这些数据:
TITLE_COLUMN1 TITLE_COLUMN2 TITLE_COLUMN3
DATE SUBJECT CLASS
我想 select 来自 TITLE_COLUMN1、TITLE_COLUMN2、TITLE_COLUMN3 的值出现在我的列名称中。那么更好的方法是什么?使用
Cursor
或使用
Variable
?
感谢您的建议和帮助。
如果您正在使用 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;
请问,是否可以使用游标来循环字符串值?例如,我的“.txt”报告有 3 个标题列:
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
现在,列名仍然是通用的或硬编码的。然后,我想用 return 字符串值来替换 "DATE"、"SUBJECT" 和 "CLASS" 来动态。所以只需关注加载到数据库的数据。
例如: 我有 table 填满了这些数据:
TITLE_COLUMN1 TITLE_COLUMN2 TITLE_COLUMN3
DATE SUBJECT CLASS
我想 select 来自 TITLE_COLUMN1、TITLE_COLUMN2、TITLE_COLUMN3 的值出现在我的列名称中。那么更好的方法是什么?使用
Cursor
或使用
Variable
?
感谢您的建议和帮助。
如果您正在使用 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;