【发布时间】:2019-07-15 15:57:27
【问题描述】:
我很想知道是否存在将 proc sql 语句转换为实际 SQL / plSQL 命令(发送到 SQL 服务器)的现有工具/技术。
例如 SAS 代码:
proc sql ; select datepart(date_time_column) as date format date9. from table; quit;
到 PLSQL 代码:
SELECT TO_CHAR(date_time_column, 'DDMONYYYY') DATE FROM TABLE;
背景:我有一堆 Proc SQL 代码只是为了从源表中获取数据,我需要通过创建与我们当前工作流匹配的模式来自动化它。 SAS 特定功能,例如“格式化 date9”。或“datepart”是许多减慢代码转换过程的罪魁祸首。所以我正在寻找更好的解决方案,可以为我提供使用当前工作的 SAS 代码发送到服务器的实际 PlSQL 代码。
所有的指针和建议将不胜感激。
【问题讨论】:
-
您可以使用 SASTRACE 选项查看发送到 RDBMS 的 SQL 代码,这是您想要的吗? support.sas.com/resources/papers/proceedings15/3269-2015.pdf
-
老实说,我认为没有直接的蝙蝠参考/方法可以做到这一点。我个人也为此苦苦挣扎。此处记录了 ANSI SQL 和 PROC SQL 之间的差异:support.sas.com/documentation/cdl/en/proc/61895/HTML/default/…,我不是 Oracle 人员 - 所以如果有标准的 ANSI 到 PL/SQL 转换器,那么也许您可以根据上述将您的 PROC SQL 查询标准化为 ANSI然后应用转换器。但仍然会有您必须手动处理的 SAS 函数。
-
嗨@Quentin,这确实是一个很好的方法。我正在探索它在多大程度上减轻了我的任务。我会尽快更新你的
标签: plsql sas type-conversion proc-sql