问题标签 [sas-dis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sas - SAS DI LAG1 替代方案?
尝试使用 SAS 中的 LAG 函数在迁移到 SAS DI 中复制一段代码,但是 SAS DI 中似乎根本没有相同的函数。目前使用 SAS DI 4.21,以期很快升级到 4.9。
所以我的问题是,是否有另一种方法可以在 SAS DI 中复制以下代码:
干杯,
sas - SAS 是否有一个宏来格式化用户编写的 DI 转换的输出?
使用 SAS Data Integration (DI) Studio 开发 ETL 程序时,您指定的每个转换都有一个简洁的用户界面来指定您创建的数据集(=表)的列及其类型、长度和格式。
当现有的转换无法完成工作并且需要用户编写代码时,您应该尽可能使用点击式界面,因为
- 它支持影响分析和反向影响分析
- 您的继任者可能不会深入研究 SAS 基本代码,除非他们真的需要
- 如果他们需要更改列或格式,他们希望更改用户界面中的规范就可以完成这项工作
幸运的是,SAS 向程序员公开了用户在宏变量中编写的转换的输出格式
所以我经常把我的代码写在用户写的转换里面
SAS 是否提供嵌入式宏或其他东西来做同样的事情?
为了完整性:SAS公开输出结构的方式看起来像
sas - 在 SAS DI 上运行 cast 语句时出错
我目前正在尝试通过 SAS DI 自动化一段我用 SAS EG 编写的代码。
虽然它在 SAS EG 中运行没有任何问题,但 DI 在我的 Teradata 服务器上执行的 SQL 语句上返回错误。
错误如下:
这是导致错误的行:
此强制转换语句是必要的,因为 EV_ID 是 BIGINT,否则 SAS 将无法使用此字段创建表。
完整代码如下:
请问你能帮忙吗?
谢谢你。
sas - 如何在 SAS DI Studio 中创建新的转换类别?
在 SAS DI Studio 中,我不时创建自定义转换。这很有用,但所有自定义转换都显示在转换树中的“未分组”选项卡类别下。
这很笨拙,如果我可以创建新类别来将这些自定义转换分组到其中,那将会很有帮助。
那有可能吗,如果可以,怎么做?
sql-server - 从 SAS 插入到 SQL Server
我有几个数据集需要从 SAS 插入到 SQL 服务器数据库中(我的环境使用 SAS DI 4.9)。
SAS DI 附带的默认表加载器转换提供了更新/插入加载样式,并带有按 SQL 集、列或索引匹配的选项。这些都不适合我,而是抛出错误
错误:CLI 执行错误:[SAS][ODBC SQL Server 有线协议驱动程序][Microsoft SQL Server]名为“SQL_CUR608F0C44282B0000”的游标不存在。
此SAS 说明表明此问题可能与 DataDirect 驱动程序的版本有关,并且有解决方法,但在我的环境中运行的 SAS 版本的解决方法会导致读取性能不佳(这不符合我的需要)。环境由 IT 管理。
我想要做的是利用 SAS DI 的自定义转换功能来构建一些东西,它的工作方式与我的设置的用户应该具有的表加载器转换方式一样。这将需要一些使用更新 + 插入方法的 SQL 传递,但是列和表名是从转换的输入和输出以编程方式确定的,并且匹配列由用户指定,与默认转换一样。
这需要一些严肃的宏观魔术。
以下是我为更新部分尝试的内容(在[方括号]中使用匿名信息):
但这因不平衡引号和引用字符串超过 262 个字符的错误而失败。
我怎样才能让它按预期工作?
编辑
这是我最终尝试使用我的 SAS 代码获取的 SQL 服务器代码,主要区别在于 SQL 代码引用了两个 SQL 服务器表,但实际上我正在尝试从 SAS 表更新:
linux - 查找具有日期限制的多种文件类型linux
我使用 SAS Grid,我正在尝试设置一个查找超过 180 天的文件的进程。我需要找到 .sas7bdat 和 .sas7bndx 文件。结果输出到 .txt 文件以在 SASDI 中进行操作
我已经能够分别找到每种文件类型,但是当我尝试多个扩展名时,我得到了错误;4
查找:路径必须在表达式之前:(-iname
我正在使用的代码是;
我已经尝试了上面的一些变体,比如删除 \ 或 ( 或更改查询的位置并获取错误的变体。
sas - 如何在 SAS 数据集成中更改列中的数据?
我有一个现有的内置 SAS 数据集成的 ETL 解决方案,其中一列最初设置为具有所有空值。我想用实际数据填充该列。该表中的原始列被设置为接收具有特定格式和格式的数值。在我更改代码之后(这是最简单的部分),我注意到该列不接受字符值(我没有收到错误,我只是注意到该列仍然具有所有 NULL 值)。任何人都可以帮忙吗?
sas - 空字符串显示为“NULL”的 SAS 数据集成问题
我遇到了 SAS DI 的问题。在某些列中,我希望空字符串显示为空,而不是显示为“NULL”。虽然它们有时显示为空,但一旦我稍后在 SQL 中运行它们,它们就会显示为“NULL”。我曾尝试在 SAS DI 中使用 NUMCHAR 变量,但我不太确定如何实现它,因为我是这种语言的新手。
编辑:
我会尝试更具体。简而言之,我在 SAS DI 中有一个工作流(Job),其中有一个表,我使用表加载器来选择一些变量(即 A、B 和 C)。上述变量既有值又有空值。在出现空值的情况下,该值的表条目被保存,尽管当我加载它时它显示为“NULL”。我想做的是更改工作流程(视觉或使用代码)以告诉 SAS DI 将列 A 和 B(但不是 C)的值显示为空(而不是“NULL”)