问题描述
将表数据从外部源加载到oracle进行数据挖掘和分析。一个特定的表具有7个8000字节字符字段,必须将其加载到CLOB列中。其中大多数是空的。数据作为标签分隔的文本文件提供,其中记录可能高达127,993个字节。有些字段用双引号括起来。某些CLOB字段包含 “,”,“”,和外部包围双引号内的其他标点符号。每条记录中总共有393列。我的测试文件有43条记录 (150KB)。我如何使用SQL * LOADER从文件中加载此数据,包括给出此信息的7个8000字节clob列。(我没有找到任何好的例子,我对装载机并不像我想的那样熟悉)。谢谢你的帮助。
专家解答
看看这里
https://asktom.oracle.com/pls/apex/asktom.search?tag=sql-loader-not-loading-if-column-value-in-multiple-lines-and-value-enclosed-in-double-quotes
但简而言之,我们需要 * 一些 * 确定字段分隔符的方法。例如,如果我看到一大块数据为:
“这是”,“一些数据”,“要解析”
然后需要 * 某物 * 告诉我们让我们区分:
col1: 这是 “,” 一些数据 “,” 要解析
与
col1: 这是
col2: 一些要解析的数据 “,”
与
col1: 这是
col2: 一些数据
col3: 待解析
有时,这意味着使用OS实用程序 (您可以使用外部表定义即时执行此操作) 对文件进行预处理。或者将整行加载到一个clob中并解析它。如果您转到AskTOM中的 “演示文稿” 部分 (在 “资源” 下) 并搜索 “跳过”,您将看到一个示例,说明我们如何使用PLSQL包来执行我们进行的任何解析。
底线-如果您可以提出 * 算法 * 来解析该行,我们可以将其应用于sqlldr
https://asktom.oracle.com/pls/apex/asktom.search?tag=sql-loader-not-loading-if-column-value-in-multiple-lines-and-value-enclosed-in-double-quotes
但简而言之,我们需要 * 一些 * 确定字段分隔符的方法。例如,如果我看到一大块数据为:
“这是”,“一些数据”,“要解析”
然后需要 * 某物 * 告诉我们让我们区分:
col1: 这是 “,” 一些数据 “,” 要解析
与
col1: 这是
col2: 一些要解析的数据 “,”
与
col1: 这是
col2: 一些数据
col3: 待解析
有时,这意味着使用OS实用程序 (您可以使用外部表定义即时执行此操作) 对文件进行预处理。或者将整行加载到一个clob中并解析它。如果您转到AskTOM中的 “演示文稿” 部分 (在 “资源” 下) 并搜索 “跳过”,您将看到一个示例,说明我们如何使用PLSQL包来执行我们进行的任何解析。
底线-如果您可以提出 * 算法 * 来解析该行,我们可以将其应用于sqlldr
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




