【问题标题】:Creation of External Tables - Automation in Oracle创建外部表 - Oracle 中的自动化
【发布时间】:2018-05-23 10:27:34
【问题描述】:

我想知道您是否可以帮助我解决以下问题并给我一些指导。在告诉我这更像是一个谷歌问题之前,我想说我是这个话题的新手,这使得谷歌搜索有点困难。

问题: 我想知道是否可以通过读取 txt 文件的第一行来自动创建外部表?我正在阅读有关 UTL_FILE 的内容,但我不确定这是否是正确的方法。我对此很感兴趣,因为有时我有 50 多列的 txt 文件,而手动创建这样的外部表需要很长时间。

任何帮助或指导将不胜感激!

提前谢谢你!

【问题讨论】:

  • 如果我是你,我会使用脚本语言来解析文件并生成 SQL 脚本。您的用户名表明您熟悉 VBA,因此,您可能可以在 VB 中完成此任务。这样您就不必处理UTL_FILE 和相关问题。
  • 如果您仍想在 PL/SQL 中执行此操作,则需要通过 the documenation。首先,尝试一些示例。然后将您的任务分为几个步骤:(1)读取文件; (2) 解析它; (3)生成SQL。一个一个地完成这些步骤。目前,您的问题过于宽泛,因为不清楚哪个特定步骤给您带来了问题。
  • 可以从第一行找出列名,但是数据类型呢?他们都是事先知道的吗?
  • @VBABegginer 祝你好运!请注意,UTL_FILE 适用于数据库服务器 上的文件。如果您想使用客户端文件,您需要先学习如何将其加载到数据库中。一般来说,PL/SQL 不是客户端语言。
  • @defaultlocale - 这个我知道哈哈!仍然感谢您的说明。这就是为什么我首先阅读它的原因,但我不知道是否有不同的方法

标签: sql oracle plsql external-tables


【解决方案1】:

您可以创建一个外部表来读取一个长 VARCHAR2 中的整行。然后从这个表中选择,读取第一行,你会得到一个带有列名的字符串。将此字符串粘贴在“CREATE ...”语句中并执行它。

【讨论】:

  • 感谢您的方法。我实际上是在尝试类似的东西,但让我们看看我是否能让它工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 2021-10-03
  • 2015-03-18
  • 1970-01-01
相关资源
最近更新 更多