我有一个现有的内置 SAS 数据集成的 ETL 解决方案,其中一列最初设置为具有所有空值。我想用实际数据填充该列。该表中的原始列被设置为接收具有特定格式和格式的数值。在我更改代码之后(这是最简单的部分),我注意到该列不接受字符值(我没有收到错误,我只是注意到该列仍然具有所有 NULL 值)。任何人都可以帮忙吗?
问问题
439 次
1 回答
2
因此,您有一个在数据集成工作室(1)中定义的表,并通过很久以前运行作业(2)使用数字列创建。让我们将该表称为该THE_TABLE
字段the_field
和The_Job
将数据加载到其中的作业THE_TABLE
你必须意识到根本的区别
THE_TABLE
在 DI Studio 中定义一个,它在元数据中创建表的描述THE_TABLE
通过运行创建The_Job
,它在包含数据的文件夹中创建一个文件
如果The_Job
真的THE_TABLE
每次都从头开始创建(这对于 ETL 工作来说很典型),那么在 DI 工作室中进行更改THE_TABLE
就足够了。The_Job
您的编辑只会更改元数据,但下次运行时The_job
,THE_TABLE
将使用正确的结构创建。
但是,如果The_Job
更新THE_TABLE
或附加到它,您的编辑不会改变结构,THE_TABLE
并且您的作业将不适合文件的结构,因为THE_TABLE
它仍然存在于文件夹中,因此您必须THE_TABLE
在运行The_Job
.
这可以通过一个简单的程序来完成,例如
data THE_TABLE;
set THE_TABLE (drop=the_field); /* forget about the numeric field */
attrib the_field length=$200 format=$200.; /* and create the character field */
run;
正确的属性语句很可能在为The_Job
某处生成的代码中。
请注意,在具有开发、测试和生产环境的典型设置中,您将在每个环境中都需要该程序一次。
于 2020-06-22T05:16:12.913 回答