Hae*_*ger 7 sql-server-2005 sas
我有一个sql server 2005数据库,其中包含一个数据类型为bit的列.当我查看sql server management studio中的数据时,我看到列值为0或1,当我用SAS拉动时我看到0或-1,就像SAS正在否定1值.有人对此有解释吗?谢谢.
我估计你必须使用libname oledb从SAS连接到SQL Server.我能在这里复制你的问题: -
SQL Server代码生成虚拟数据
create table dbo.tbl (
tblId int identity(1,1) not null
constraint pk_tbl_tblId primary key,
bool bit not null,
)
go
insert into dbo.tbl(bool) values(0)
insert into dbo.tbl(bool) values(1)
Run Code Online (Sandbox Code Playgroud)
使用OLEDB的SAS代码
libname imm oledb provider=sqloledb
properties=(
"Integrated Security"=SSPI
"Persist Security Info"=False
"Initial Catalog"=test
"Data Source"=localhost
);
proc print data=imm.tbl; run;
Run Code Online (Sandbox Code Playgroud)
打印出来的是: -
Obs tblId bool
1 1 0
2 2 -1
Run Code Online (Sandbox Code Playgroud)
使用PROC SQL的SAS代码
似乎使用PROC SQL应该解决您的问题.
proc sql noprint;
connect to sqlservr (
server='localhost'
database='test'
'Integrated Security'='SSPI'
'Persist Security Info'='False'
);
create table test as
select *
from connection to sqlservr (
select * from dbo.tbl
);
disconnect from sqlservr;
quit;
proc print data=test; run;
Run Code Online (Sandbox Code Playgroud)
打印出来的是: -
Obs tblId bool
1 1 0
2 2 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |