如何在SAS数据集成中更改列中的数据?
我有一个内置SAS数据集成的现有ETL解决方案,其中的一列最初设置为具有所有空值。我想用实际数据填充该列。该表中的原始列被设置为接收特定格式和格式的数值。在更改代码(这是最简单的部分)后,我注意到该列不接受字符值(我没有收到错误,我只是注意到该列仍然具有所有空值)。如何在SAS数据集成中更改列中的数据?,sas,data-integration,sas-dis,Sas,Data Integration,Sas Dis,我有一个内置SAS数据集成的现有ETL解决方案,其中的一列最初设置为具有所有空值。我想用实际数据填充该列。该表中的原始列被设置为接收特定格式和格式的数值。在更改代码(这是最简单的部分)后,我注意到该列不接受字符值(我没有收到错误,我只是注意到该列仍然具有所有空值)。 有人能帮忙吗?因此,您有一个在Data Integration studio(1)中定义的表,该表是很久以前通过使用数字列运行作业(2)创建的。让我们将该表称为表字段和作业作业,该作业将数据加载到表 你必须意识到根本的区别 在DI
有人能帮忙吗?因此,您有一个在Data Integration studio(1)中定义的表,该表是很久以前通过使用数字列运行作业(2)创建的。让我们将该表称为表字段和作业作业,该作业将数据加载到表 你必须意识到根本的区别
表
,它在元数据中创建表的描述_作业
创建_表
,该作业将在包含数据的文件夹中创建文件_作业
确实从头开始创建_表
(这是ETL作业的典型情况),在DI studio中更改_表
和_作业
就足够了。您的编辑只会更改元数据,但下次运行\u作业时,将使用正确的结构创建\u表
但是,如果作业
更新了表
或附加到它,您的编辑将不会更改表
的结构,并且您的作业将不适合文件表
的结构,就像它仍然存在于文件夹中一样,因此,在运行_作业之前,必须转换_表
这可以通过一个简单的程序来完成,比如
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;
正确的attrib语句可能在为\u作业生成的代码中的某个地方
请注意,在具有开发、测试和生产环境的典型设置中,每个环境中都需要该程序一次。如果要用字符串加载,为什么要将其定义为数字?更改创建表的步骤,然后将数据加载到其中的步骤将起作用。表是很久以前创建的。你能告诉我怎么做吗?我知道如何将代码更改为我想要的。如何在表中更改为列格式?那么您想将字符串编码为数字吗?或者创建一个将该变量定义为character的新表?您不能仅仅更改变量的类型,您需要创建一个新变量。对整个过程进行更多解释,以获得更好的答案。