生成列列表:列按字母顺序而不是表顺序

时间:2021-08-02 00:10:59

标签: oracle select toad

Toad for Oracle 12:

我想从一个表中自动生成一个列列表——这样我就可以快速编写一个包含表列子集的查询。

在 Toad 中,我可以通过以下方式执行此操作:

  1. 在模式浏览器中右键单击表名
  2. 生成语句
  3. 选择

enter image description here

结果:

一个列列表被复制到剪贴板。我可以将列名粘贴到编辑器窗口中并编写我的查询。


问题:

Toad 似乎以字母顺序生成列列表。我更愿意按照列在表格中出现的顺序而不是字母顺序来处理它们。

Toad 中是否有一种方法可以使用原始表中的列顺序快速生成表列列表?

  • 如果它是列名的简单列表,而不是完整的 CREATE TABLE 脚本,那将会很有帮助,因为完整的脚本会包含额外的文本。我需要从列表中手动删除额外的文本,这在某种程度上违背了“快速生成列名列表”的目的。

2 个答案:

答案 0 :(得分:2)

跳过 TOAD UI 并使用下面的查询。如果需要,我在末尾添加了一个逗号。

select column_name ||','
from user_tab_columns 
where table_name = '<yourtable>'
order by column_id

花一些时间阅读有关 Oracle Data Dictionary 的信息。当您需要获取有关表、视图等 oracle 对象的元数据时,这非常有用。

答案 1 :(得分:1)

@OldProgrammer 答案的修改版本:


就我而言,作为非 dba,我必须使用 all_tab_columns(并指定表所有者),因为 user_tab_columns 没有为我返回任何记录。

select 
    column_name ||','
from 
    all_tab_columns 
where 
    owner = 'MAXIMO'
    and table_name = 'PO'
order by 
    column_id