【问题标题】:Include ROWID in Dataset when Exporting from Toad从 Toad 导出时在数据集中包含 ROWID
【发布时间】:2012-03-05 20:12:42
【问题描述】:

我正在尝试将数据集从 Toad 导出到 Excel(或文本分隔文件)。我需要ROWID 显示在结果文件中。

我在视图 >> Toad 选项 >> 数据网格 >> 数据中选择了“在可编辑网格中显示 ROWID”。

ROWID 显示在 Toad 模式浏览​​器的“数据”选项卡中。

当我从模式浏览器运行导出数据时;在 Dataset 选项卡下,ROWID 正在 SQL 语句中显示。

但是当我导出数据集时,我没有在结果(输出)文件中看到 ROWID

我正在运行 Toad 10.5.0.41。

关于我缺少什么的任何建议?

提前致谢,

马旺

【问题讨论】:

  • 我刚刚想通了,所以我想我会与大家分享答案。单击查看/编辑查询,然后修改 SQL 查询,使 ROWID 具有别名,例如:SELECT ROWID as ROWID_COL, FIRST_COL FROM TABLE_NAME 当通过导出数据集按钮导出数据时,ROWID 将包含在结果文件中。我希望这会有所帮助。
  • 只是好奇,为什么要导出 ROWID?
  • @Jeffrey - 我被要求比较两个表(没有主键)的差异。我认为我可以通过ROWID 对表进行排序,以便匹配不同表中的列。但这行不通,因为表的行数不同。如果有人对如何解决这个问题有任何提示或想法,那么我将不胜感激。提前致谢。
  • ROWID 是指向表中特定行的内部指针。如果您要查询两个表,根据定义,每个 ROWID 将是不同的,您无法比较它们。至于比较方法:可能最简单的方法是计算每一行的哈希值,然后在两个表之间进行 FULL OUTER JOIN 以查找匹配和不匹配的行。
  • @JeffreyKemp - 我将尝试 FULL OUTER JOIN,但我不确定此时哈希对我有何帮助,因为我似乎找不到任何有助于区分行的值.在数据集中返回后,我使用ROWID 来识别行。感谢您的信息和建议,我会尽力跟进。

标签: oracle export toad rowid


【解决方案1】:

为什么不将ROWID 显式添加到 SQL 语句中?

select rowid, t.*
from my_table t;

【讨论】:

  • 那是完美的。我只是不确定在哪里进行更改。导出数据集按钮不允许修改 SQL 语句。我刚刚发现我可以直接从查看/编辑查询按钮修改导出数据集的 SQL 语句。感谢您的提示。
  • ROWID 需要一个别名,以便它可以显示在导出的数据/输出文件中,例如:select ROWID as ROWID_COL, t.* from MY_TABLE t; 这与 Toad 的导出数据集按钮特别相关。再次感谢您的建议。
猜你喜欢
  • 2020-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 2019-12-14
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
相关资源
最近更新 更多