重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
链接Oralce数据库
创新互联建站长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为岚县企业提供专业的成都做网站、成都网站制作,岚县网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
参数说明:
libname (在SaS映射的数据库名) path (Oracle数据库SID)
schema (Oralce数据库名一般为数据库一个用户)
oracle user (oracle数据库登陆用户名) password (oracle数据库登陆密码)
注意:登陆Oracle数据库的帐号密码必须有权限登陆指定的数据库
*******************************************************************/
/* 链接 DataBaseName 数据库(SID:orcl) */
libname DataBaseName oracle user=MyUserName password=MyPassWord path='orcl' schema=DataBaseName; /
在使用sas进行行转列的字符串合并时,发现sas中并没有合适的方法,而oracle在10g之后包含了WMSYS.WM_CONCAT函数,可以轻松的解决这类问题:
select t.rank, t.Name from t_menu_item t;
10 CLARK
10 KING
10 MILLER
20 ADAMS
20 FORD
20 JONES
20 SCOTT
20 SMITH
30 ALLEN
30 BLAKE
30 JAMES
30 MARTIN
30 TURNER
30 WARD
--------------------------------
我们通过 10g 所提供的 WMSYS.WM_CONCAT 函数即可以完成 行转列的效果
select t.rank, WMSYS.WM_CONCAT(t.Name) TIME From t_menu_item t GROUP BY t.rank;
DEPTNO ENAME
------ ----------
10 CLARK, KING, MILLER
20 ADAMS, FORD, JONES, SCOTT, SMITH
30 ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD
例子如下:
SQL create table idtable (id number,name varchar2(30));
Table created
SQL insert into idtable values(10,'ab');
1 row inserted
SQL insert into idtable values(10,'bc');
1 row inserted
SQL insert into idtable values(10,'cd');
1 row inserted
SQL insert into idtable values(20,'hi');
1 row inserted
SQL insert into idtable values(20,'ij');
1 row inserted
SQL insert into idtable values(20,'mn');
1 row inserted
SQL select * from idtable;
ID NAME
---------- ------------------------------
10 ab
10 bc
10 cd
20 hi
20 ij
20 mn
6 rows selected
SQL select id,wmsys.wm_concat(name) name from idtable
2 group by id;
ID NAME
---------- --------------------------------------------------------------------------------
10 ab,bc,cd
20 hi,ij,mn
SQL select id,wmsys.wm_concat(name) over (order by id) name from idtable;
ID NAME
---------- --------------------------------------------------------------------------------
10 ab,bc,cd
10 ab,bc,cd
10 ab,bc,cd
20 ab,bc,cd,hi,ij,mn
20 ab,bc,cd,hi,ij,mn
20 ab,bc,cd,hi,ij,mn
6 rows selected
SQL select id,wmsys.wm_concat(name) over (order by id,name) name from idtable;
ID NAME
---------- --------------------------------------------------------------------------------
10 ab
10 ab,bc
10 ab,bc,cd
20 ab,bc,cd,hi
20 ab,bc,cd,hi,ij
20 ab,bc,cd,hi,ij,mn
6 rows selected
个人觉得这个用法比较有趣.
SQL select id,wmsys.wm_concat(name) over (partition by id) name from idtable;
ID NAME
---------- --------------------------------------------------------------------------------
10 ab,bc,cd
10 ab,bc,cd
10 ab,bc,cd
20 hi,ij,mn
20 hi,ij,mn
20 hi,ij,mn
6 rows selected
SQL select id,wmsys.wm_concat(name) over (partition by id,name) name from idtable;
ID NAME
当前的SAS系统提供了许多数据库管理的功能,包括数据库视图和一套扩展的ANSI SQL语言。SAS包括了几个用来获取关系型数据库的过程。我们将探讨如何基于SAS系统平台来实现网络工作站与远程Oracle服务器的连接。
虽然这里讨论的是如何使用SAS/Access和SAS/SQL来连接Oracle数据库的,但原理同样适用于DB2、Sybase、Informix、ODBC、OLE DB、SQL Server以及Teradata等客户端/服务器系统。SAS/Access是基于客户端/服务器系统而开发的,这就需要独立的数据库引擎来为本地应用提供数据服务。转载,仅供参考。
1、将SPSS数据另存为sas格式
2、在SAS中将数据导入oracle中
libname wsw oracle user='wsw' password='wsw' path='phis5s';
run;
将sas中的数据表创建在ORACLE数据库中
proc sql;
create table wsw.wswa as
select * from wswa;
quit;
run;