2011-03-17 19 views
7

में थोड़ा डेटा प्रकार पढ़ रहा है मेरे पास एक एसक्यूएल सर्वर 2005 डेटाबेस है जिसमें डेटा प्रकार बिट के कॉलम वाला एक टेबल है। जब मैं एसक्यूएल सर्वर प्रबंधन स्टूडियो में डेटा देखता हूं तो मुझे कॉलम मान 0 या 1 के रूप में दिखाई देता है, जब मैं एसएएस के साथ खींचता हूं तो मुझे 0 या -1 दिखाई देता है, जैसे एसएएस 1 मान को अस्वीकार कर रहा है। किसी के पास इसके लिए कोई स्पष्टीकरण है? धन्यवाद।एसएएस एसक्यूएल सर्वर 2005

+0

यह अभी भी एसएएस 9.3 में एक मुद्दा है, इसलिए हम बीआईटी डेटा प्रकार से बचने के लिए हमारे टेबल रचना कर रहे हैं। कोई विचार नहीं, ऐसा लगता है कि इस पर एसएएस नोट होना चाहिए .. –

उत्तर

5

मुझे लगता है कि एसएएस से SQL सर्वर से कनेक्ट करने के लिए आपको libname oledb का उपयोग करना होगा। मैं यहाँ अपने समस्या को दोहराने के लिए सक्षम हूं: -

एसक्यूएल सर्वर कोड OLEDB

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; 

बाहर का उपयोग करते हुए प्रिंट है डमी डेटा

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) 

एसएएस कोड उत्पन्न करने के लिए: -

Obs   tblId bool 

1    1  0 
2    2  -1 

एसएसी कोड प्रोसी एसक्यूएल

ऐसा लगता है कि प्रोसी एसक्यूएल का उपयोग करने से आपकी समस्या ठीक होनी चाहिए।

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; 

प्रिंट आउट है: -

Obs   tblId bool 

1    1  0 
2    2  1 
+2

यह मेरे लिए काम करेगा, लेकिन एसएएस के साथ डेटाबेस से कनेक्ट होने वाले किसी भी व्यक्ति को प्रो एसक्यूएल का उपयोग करने की आवश्यकता होगी; मुझे लगता है कि यह सुनिश्चित करने के लिए कि डेटा एसएएस के साथ कैसे पहुंच है, इस पर ध्यान दिए बिना डेटा को टिनिंट में परिवर्तित करना होगा। – Haeflinger

संबंधित मुद्दे