【发布时间】:2016-10-16 07:19:30
【问题描述】:
我需要将某些表格中的数据转换为特定格式。 您能帮我实现所需的输出吗?
以下链接包含一个 Excel 附件,其中包含以下信息: Google Drive Link
- Tab : Input-Output --> 包含源表和目标表的结构
- 选项卡:创建脚本 --> 创建脚本以创建所有表
- 选项卡:插入脚本 --> 插入脚本以将数据插入到源表中
我尝试过的编辑(代码):
TYPE subline_col_c_rectype IS RECORD
(
ID_C VARCHAR(75),
Col_C1 VARCHAR(75),
Col_C2 VARCHAR(75)
);
TYPE subline_col_c_tabtype IS TABLE OF subline_col_c_rectype
INDEX BY BINARY_INTEGER;
TYPE line_rectype IS RECORD
(
ID_A VARCHAR(75),
Col_A1 VARCHAR(75),
Col_A2 VARCHAR(75),
Col_A3 VARCHAR(75),
Col_A4 VARCHAR(75),
Col_A5 VARCHAR(75),
ID_B VARCHAR(75),
Col_B1 VARCHAR(75),
Col_B2 VARCHAR(75),
Col_B3 VARCHAR(75),
Col_B4 VARCHAR(75),
Col_B5 VARCHAR(75),
Col_C subline_col_c_tabtype,
Col_D subline_col_c_tabtype
);
TYPE line_tabtype IS TABLE OF line_rectype
INDEX BY BINARY_INTEGER;
能够将记录存储在关联数组 line_tabtype 中,但不确定如何展开子记录并将其存储在目标表中。
【问题讨论】:
-
是的,我知道 POC_TARGET_C 的设计很差,但这是我需要实现的。实际上,目标表中的数据将传递给 ETL 工具,该工具将上传目标系统中的数据,所以不能真正改变目标表设计..
-
我尝试使用关联数组来存储目标表数据...将列 ID_A 存储到 Col_B5 非常简单,并且我能够将数据存储在该目标关联数组中。对于列 - ID_C、Col_C1、Col_C2 和 ID_D、Col_D1、Col_D2 我创建了关联数组并将它们存储在该目标关联数组(数组内的数组)中。现在所有行都在单行中。我在扩展时遇到问题那些子关联数组..
-
您应该在问题中展示您尝试过的内容,并解释翻译规则(以及为什么为此使用 PL/SQL)。提供数据设置信息很好,但问题应该不是外部链接;正如预期的结果一样。
-
你添加的代码只是定义了类型;你还没有解释你的逻辑,或者表之间的关系——你在寻找匹配的ID吗?为什么这么多值是空的?等等。
-
A) ID 匹配对应的值应该出现在哪里,它不应该出现在哪里。例如,在表 POC_Source_D 中,我们没有 ID_D = 1 值,因此在目标表列中,ID_D 到 Col_D2 为空白。 B) 没有很多 NULLS,因为我们需要以 .txt 格式提取目标表中的数据,并且它将被传递给 ETL 工具,然后将其加载到目标系统...... ETL 工具仅以这种树格式读取数据,这就是设计如此的原因..
标签: sql oracle plsql oracle11g oracle10g