【问题标题】:Proc sql to underlying SQL code conversionProc sql 到底层 SQL 代码的转换
【发布时间】: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


【解决方案1】:

使用 SASTRACE 选项查看发送到 RDBMS 的 SQL 代码:

options sastrace=',,,d' sastraceloc=file 'c:\work\trace.log';

SASTRACE: Your Key to RDBMS Empowerment by Andrew Howell

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    相关资源
    最近更新 更多