生成列列表:列按字母顺序而不是 table 顺序
Generate list of columns: Columns are in alphabetical order instead of table order
适用于 Oracle 12 的蟾蜍:
我想从 table 中自动生成列列表 -- 以便我可以快速编写包含 table 列子集的查询。
在 Toad 中,我可以通过以下方式完成此操作:
- 在架构浏览器中右键单击 table 名称
- 生成声明
- Select
结果:
列列表被复制到剪贴板。我可以将列名粘贴到编辑器 window 中并编写我的查询。
问题:
Toad 似乎以字母顺序 生成列列表。我更愿意按照它们在 table 中出现的顺序处理列,而不是按字母顺序。
Toad 中有没有一种方法可以快速生成 table 列的列表——使用原始 table 中的列顺序?
- 如果它是一个简单的 list 列名而不是完整的 CREATE TABLE 脚本,那将会很有帮助,因为完整的脚本会包含额外的文本。我需要手动从列表中删除多余的文本,这在某种程度上违背了“快速生成列名列表”的目的。
跳过 TOAD UI 并使用下面的查询。如果需要,我在末尾添加了一个逗号。
select column_name ||','
from user_tab_columns
where table_name = '<yourtable>'
order by column_id
花点时间阅读 Oracle Data Dictionary。当您需要获取有关 oracle 对象(例如 table、视图等
的元数据时,这非常有用
@OldProgrammer 回答的修改版本:
就我而言,作为非 dba,我不得不使用 all_tab_columns
(并指定 table 所有者),因为 user_tab_columns
没有 return我的任何记录。
select
column_name ||','
from
all_tab_columns
where
owner = 'MAXIMO'
and table_name = 'PO'
order by
column_id
适用于 Oracle 12 的蟾蜍:
我想从 table 中自动生成列列表 -- 以便我可以快速编写包含 table 列子集的查询。
在 Toad 中,我可以通过以下方式完成此操作:
- 在架构浏览器中右键单击 table 名称
- 生成声明
- Select
结果:
列列表被复制到剪贴板。我可以将列名粘贴到编辑器 window 中并编写我的查询。
问题:
Toad 似乎以字母顺序 生成列列表。我更愿意按照它们在 table 中出现的顺序处理列,而不是按字母顺序。
Toad 中有没有一种方法可以快速生成 table 列的列表——使用原始 table 中的列顺序?
- 如果它是一个简单的 list 列名而不是完整的 CREATE TABLE 脚本,那将会很有帮助,因为完整的脚本会包含额外的文本。我需要手动从列表中删除多余的文本,这在某种程度上违背了“快速生成列名列表”的目的。
跳过 TOAD UI 并使用下面的查询。如果需要,我在末尾添加了一个逗号。
select column_name ||','
from user_tab_columns
where table_name = '<yourtable>'
order by column_id
花点时间阅读 Oracle Data Dictionary。当您需要获取有关 oracle 对象(例如 table、视图等
的元数据时,这非常有用@OldProgrammer 回答的修改版本:
就我而言,作为非 dba,我不得不使用 all_tab_columns
(并指定 table 所有者),因为 user_tab_columns
没有 return我的任何记录。
select
column_name ||','
from
all_tab_columns
where
owner = 'MAXIMO'
and table_name = 'PO'
order by
column_id