【发布时间】:2016-04-11 14:39:55
【问题描述】:
我想问,是否可以使用游标来循环字符串值?例如,我的“.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
现在,列名仍然是通用的或硬编码的。然后,我想返回字符串值以将“DATE”、“SUBJECT”和“CLASS”替换为动态的。因此,只需遵循加载到数据库的数据即可。
例如: 我的表格中填满了这些数据:
TITLE_COLUMN1 TITLE_COLUMN2 TITLE_COLUMN3
DATE SUBJECT CLASS
我想从 TITLE_COLUMN1、TITLE_COLUMN2、TITLE_COLUMN3 中选择值作为我的列名。那么更好的方法是什么?使用
光标
或使用
变量
?
感谢您的建议和帮助。
【问题讨论】:
-
您到底想完成什么?如果您不关心 COLUMN 设置,您可以编写一个 PL/SQL 块来构建动态查询、打开游标,然后使用
print命令打印游标结果。但是您将无法使用 COLUMN 格式化命令。如果您的目标只是生成一个输出文件,我倾向于使用utl_file可能基于 Tom Kyte 的 SQLUnloader,而不是尝试跳过 SQLPlus 中所需的所有环节(如果您愿意)做一堆格式化。