如何在SAS系统中整合ORACLE资源-经管之家官网!

人大经济论坛-经管之家 收藏本站
您当前的位置> 软件培训>>

SAS软件培训

>>

如何在SAS系统中整合ORACLE资源

如何在SAS系统中整合ORACLE资源

发布:davil2000 | 分类:SAS软件培训

关于本站

人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!

获取电子版《CDA一级教材》

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。

https://pic.bbs.jg.com.cn/album/201211/28/095506000pe9eh298kv9zz.jpg当前的SAS系统提供了许多数据库管理的功能,包括数据库视图和一套扩展的ANSISQL语言。SAS包括了几个用来获取关系型数据库的过程。我们将探讨如 ...
免费学术公开课,扫码加入


https://pic.bbs.jg.com.cn/album/201211/28/095506000pe9eh298kv9zz.jpg

当前的SAS系统提供了许多数据库管理的功能,包括数据库视图和一套扩展的ANSI SQL语言。SAS包括了几个用来获取关系型数据库的过程。我们将探讨如何基于SAS系统平台来实现网络工作站与远程Oracle服务器的连接。虽然这里讨论的是如何使用SAS/Access和SAS/SQL来连接Oracle数据库的,但原理同样适用于DB2、Sybase、Informix、ODBC、OLE DB、SQL Server以及Teradata等客户端/服务器系统。SAS/Access是基于客户端/服务器系统而开发的,这就需要独立的数据库引擎来为本地应用提供数据服务。这里的例子中,SAS是作为客户端而ORACLE关系型数据库是作为服务器的。
SAS/Access和SAS/SQL产品的复杂性源于从客户端向服务器发送命令的必要性。在WIN或者UNIX系统中,这些功能通常以三种形式出现:
• PROC ACCESS -- 装载DBMS数据进入SAS
• PROC DBLOAD -- 装载SAS数据进入DBMS
• SQL数据传递 -- 执行标准SQL语言
PROC ACCESS
PROC Access 使用较为复杂。因为需要首先创建一个获取描述块(Access Descriptor)来描述一个DBMS表格数据,再创建一个视图描述块(View Descriptor)来描述这个DBMS表格的子集。下面的例子显示了该过程如何处理远程Oracle数据库表格:
proc access dbms=oracle;
create work.test.access;
user="system";
orapw="pinggu";
table="system.Dw_account";
path="@test.beijing";
assign=yes;
list all;
create work.test.view;
select Account Account_code1;
subset where Account_code1 = '105';
run;
proc print data=test;
run;
这段代码先在临时库中创建一个名为test的 "Access Descriptor";然后,账户、密码、路径(网络服务名) 是针对Oracle服务器而填写的。Oracle域名在这里被转换为SAS格式,数据库内容也被清单列示。注意:表格"Dw_account"、所有者"system"需要在这里声明。接着,一个包含了远程表格EMP某些行与列的"View Descriptor"也被创建。根据特定用户的Oracle权限,这样的数据视图能够被用来读取或者更新数据库。这里可见,PROC ACCESS的语法比较复杂。比如,即便获取、视图描述块是在临时库中创建,还是需要指明三级名称work.test.access和work.test.view。
此为,高版本SAS提供了不再需要创建获取、视图描述块的数据库资源整合方式。如下一行代码所示,提供使用一种"动态库名引擎(Dynamic Libname Engine)",SAS能够如同对待数据集那样处理远程数据库。
libname mydblib oracle user=system pw=pinggu path="@test.beijing";
run;
PROC DBLOAD
DBLoad过程则以相反方式来处理数据------将数据从SAS系统拷贝进入DBMS系统中。该过程适于大量加载,比如:将全部SAS数据集拷入Oracle中。然而,SAS程序员需要注意以下两点:
• 缺省装载的限度为5000条记录。加载更大的数据表则需要设定limit=0。
• 仅用来建立新表格。如果已经存在表格,则该过程异常中止。
下面的例子演示了从SAS系统中创建一个新的Oracle表格:
proc dbload dbms=oracle data=sashelp.prdsale;
orapw="pinggu";
user="system";
path="@test.beijing";
table="system.prdsale";
label;
reset all;
load;
run;
该过程的语言与PROC ACCESS极为相似。一个名为"sashelp.prdsale"的SAS数据文件被作为表格拷入了Oracle中并且命名为"prdsale"。SAS变量标识则被作为Oracle域名。注意:这里必须存在"load"语句,否则表格将不会创建。
SQL数据传递
SQL(Structured Query Language)语言是一种应用广泛的、使用来获取或更新关系型数据库中表格的标准语言。SQL语言以PROC SQL的形式内嵌于BASE SAS模块之中。PROC SQL是管理远程数据表格的有效工具,为有经验的SQL用户提供了一个相对直观的界面。在大规模加载情形中,PROC SQL表现出优越于DBLoad的性能。除此之外,PROC SQL还明显表现出简便有效、界面友好的优势。需要强调的是:在不同的关系型数据库中,SQL的表现也不尽相同;在Oracle客户端使用的SQL*Plus表现出区别于PROC SQL的语法特征。这样,在使用之前,需要查询SQL用户指南、咨询数据库管理员。
下面的例子显示了如何使用PROC SQL来作为PROC ACCESS的替代品:
proc sql;
connect to oracle
(user=system orapw=pinggu path="@test.beijing");
create table test2 as
select * from connection to oracle
(select * from Prdsale);
disconnect from oracle;
quit;
程序中使用了三个SQL语句:建立数据库连接、断开数据库连接以及分派数据。这里的SQL select语句包括了两部分:(1)加上括号的表达式 (select * from prdsale)为数据传递部分。这段代码被发送到Oracle数据库服务器来获得指定数据表格"prdsale";(2) 外部select语句将Oracle查询结果返还SAS系统。最后,create table 语句将查询结果形成数据集work.prdsale。如果该语句被遗漏,则PROC SQL仅在输出窗口显示查询结果。

根据不同的客户端/服务器平台,SAS系统提供了一系列关系型数据库的获取、访问方法。相对于之前的SAS版本,8.0版后的Oracle、ODBC和DB2的动态逻辑库名引擎在大规模获取与视图描述块方面获得了跨越式的提升。未来的SAS版本将会进一步对于关系型数据库以及其它类型的外部数据源提供性能卓越的逻辑库名支持。
相关链接:
大数据时代BI先锋利器——SAS数据仓库管理系统
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=1597181&fromuid=3282317
SAS SQL与大型商业数据库——ITAT数据分析师培训项目系列文集
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=1552391&fromuid=3282317
SAS/WA与数据仓库——ITAT数据分析师培训项目系列文集
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=1552624&fromuid=3282317
「经管之家」APP:经管人学习、答疑、交友,就上经管之家!
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
本文关键词:

本文论坛网址:https://bbs.pinggu.org/thread-2124588-1-1.html

人气文章

1.凡人大经济论坛-经管之家转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
数据分析师 人大经济论坛 大学 专业 手机版
联系客服
值班时间:工作日(9:00--18:00)