【发布时间】:2013-03-13 12:05:16
【问题描述】:
我有一个包含如下数据的文本文件:
A 123 JoeBSD1639973e7378790
A 344 TomGDF7393694e0902087
B 344 ZenGDF9838987e0849399
我已经使用 sqlldr 批量插入到临时表中,并且所有数据都在一个列中,因为我这里没有任何字段分隔符。
现在我想将这些数据分成如下列:
Section Book1 Name Book2 RollNo Book3 RegNo
----------------------------------------------------------
A 123 Joe BSD 1639973 e 7378790
A 344 Tom GDF 7393694 e 0902087
B 344 Zen GDF 9838987 e 0849399
我可以识别字段的方式是使用字符长度,例如 Section 是 2 长度,Book1 是 4,Name 是 3,Book2 是 3,RollNo 是 7,Book3 是 1,RegNo 是 7。
有人可以帮助我进行查询以进行此转换吗?
【问题讨论】:
-
使用 substr,因为谈论的是固定长度的块 techonthenet.com/oracle/functions/substr.php
-
这里的主要问题是前两个字段的长度:Section 和 Book1。部分是 2 个字符字段和书 4 还是书 5 和部分 1?根据数据,该部分的外观可以是 2 个字符和第 4 本书,但我们无法从提供的数据中推断出这一点是否有没有空格的示例行?
-
你是对的部分可以是 2 个字符,但在呈现的数据集中只显示 1 个字符。同样,书 1 可以是 4,但在此示例中,它仅是 3。
标签: sql oracle plsql oracle11g plsqldeveloper