【问题标题】:Extract Insert statements from Oracle DB through Shell script通过 Shell 脚本从 Oracle DB 中提取插入语句
【发布时间】:2023-03-21 16:54:01
【问题描述】:

我想通过 shell 脚本为 Oracle DB 中的表中的数据提取插入语句。它类似于数据库备份,但我需要为数据库中所有表中的数据插入语句。

【问题讨论】:

  • 伙计们......如果有人做过这种任务,请帮忙!
  • 如果你想自己做,你可以使用 user_tab_columns (如果你只需要你自己模式中的对象,则获取表和列名),构造查询以获取数据并将它们粘合到输出字符串 INSERT INTO TABLE1 (COL1, COL2, ...) values(numericValue, "charValue", ...); .此外,还要特别注意巨大的 BLOB 值、日期/时间戳格式、空值等。这是可行的,但可能不是这项工作的最佳工具。
  • 感谢您的回复。 ...如果不是这种方式...您能建议我如何以其他方式实现吗?我需要针对特定​​条件的表的插入语句,但由于表的数量很大,因此无法手动执行。

标签: sql linux oracle shell unix


【解决方案1】:

如果您的目标是: 提取数据库中所有表的所有插入语句,而不是在不同的数据库中运行这些插入语句?还是希望保存这些插入语句以备将来使用?

如果上述要求是真实的,他们是实现这一目标的更好方法。显示带有“数据”的插入语句将数据暴露给任何可以阅读这些摘录的人并构成严重的安全威胁。您应该寻找使用数据泵来满足此要求。

  • 阿比

【讨论】:

  • 谢谢 Abhishek .. 我会看看然后回复你 :)
【解决方案2】:

如果您有 TOAD for Oracle,您可以从编辑器窗口的数据网格中精确查询结果。单击结果数据集上方的导出数据集按钮并选择插入语句。

【讨论】:

  • 我可以使用 GUI,但我想提取数据库中的所有表,所以我需要一些其他解决方案。顺便感谢您的回复
  • 您可以按照上面建议的方式编写所有内容。您可以使用命令行或使用 TOAD 创建 dmp 文件。您可以使用数据泵导出所有内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-24
  • 2016-09-11
  • 1970-01-01
  • 2012-05-03
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多