![第8章數(shù)據(jù)裝載與數(shù)據(jù)集管理_第1頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/26/ef00c54a-c97a-49a8-812e-f9b642fa9b82/ef00c54a-c97a-49a8-812e-f9b642fa9b821.gif)
![第8章數(shù)據(jù)裝載與數(shù)據(jù)集管理_第2頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/26/ef00c54a-c97a-49a8-812e-f9b642fa9b82/ef00c54a-c97a-49a8-812e-f9b642fa9b822.gif)
![第8章數(shù)據(jù)裝載與數(shù)據(jù)集管理_第3頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/26/ef00c54a-c97a-49a8-812e-f9b642fa9b82/ef00c54a-c97a-49a8-812e-f9b642fa9b823.gif)
![第8章數(shù)據(jù)裝載與數(shù)據(jù)集管理_第4頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/26/ef00c54a-c97a-49a8-812e-f9b642fa9b82/ef00c54a-c97a-49a8-812e-f9b642fa9b824.gif)
![第8章數(shù)據(jù)裝載與數(shù)據(jù)集管理_第5頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/26/ef00c54a-c97a-49a8-812e-f9b642fa9b82/ef00c54a-c97a-49a8-812e-f9b642fa9b825.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第8章章 數(shù)據(jù)裝載與數(shù)據(jù)集管理數(shù)據(jù)裝載與數(shù)據(jù)集管理數(shù)據(jù)裝載與數(shù)據(jù)集管理數(shù)據(jù)裝載與數(shù)據(jù)集管理vSAS功能的強(qiáng)大之處還在于SAS與關(guān)系數(shù)據(jù)庫(kù)的結(jié)合應(yīng)用,強(qiáng)強(qiáng)聯(lián)合。vSAS對(duì)海量數(shù)據(jù)的處理能力使SAS在金融行業(yè)、電信行業(yè)、醫(yī)藥行業(yè)處于數(shù)據(jù)處理的領(lǐng)先地位。Append過(guò)程vAppend過(guò)程是SAS系統(tǒng)已經(jīng)編譯好的過(guò)程,實(shí)現(xiàn)把一個(gè)數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫(kù)表的數(shù)據(jù)添加到一個(gè)新數(shù)據(jù)集或數(shù)據(jù)庫(kù)表中。 通過(guò)append過(guò)程可以根據(jù)需求用where語(yǔ)句等條件過(guò)濾。 Appended過(guò)程同時(shí)可以實(shí)現(xiàn)把數(shù)據(jù)文件生成的數(shù)據(jù)集裝載到數(shù)據(jù)庫(kù)表中等功能。Append過(guò)程語(yǔ)法vAppend過(guò)程是SAS系統(tǒng)已經(jīng)編譯好的過(guò)程,實(shí)現(xiàn)把一
2、個(gè)數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫(kù)表的數(shù)據(jù)添加到一個(gè)新數(shù)據(jù)集或數(shù)據(jù)庫(kù)表中。 通過(guò)append過(guò)程可以根據(jù)需求用where語(yǔ)句等條件過(guò)濾。 Appended過(guò)程同時(shí)可以實(shí)現(xiàn)把數(shù)據(jù)文件生成的數(shù)據(jù)集裝載到數(shù)據(jù)庫(kù)表中等功能。Append過(guò)程語(yǔ)法vAppend過(guò)程是把一個(gè)數(shù)據(jù)集裝載到另一個(gè)數(shù)據(jù)集或數(shù)據(jù)倉(cāng)庫(kù)或關(guān)系數(shù)據(jù)庫(kù)中的表中。v語(yǔ)法格式:vProc append base=數(shù)據(jù)集名v;vProc:過(guò)程關(guān)鍵字,指明用來(lái)調(diào)用SAS內(nèi)部過(guò)程。vAppend:調(diào)用的過(guò)程名。vAppend過(guò)程說(shuō)明如下:表8-1 append過(guò)程說(shuō)明選項(xiàng)選項(xiàng)說(shuō)明說(shuō)明Base=定義目標(biāo)數(shù)據(jù)集名或數(shù)據(jù)庫(kù)表名,把data=源數(shù)據(jù)集或數(shù)據(jù)庫(kù)表追加到ba
3、se=數(shù)據(jù)集或數(shù)據(jù)庫(kù)表中,可以具有數(shù)據(jù)集選項(xiàng)設(shè)置。Data=指明源數(shù)據(jù)集名或數(shù)據(jù)庫(kù)表名,即data=數(shù)據(jù)集名或數(shù)據(jù)庫(kù)表名具有的數(shù)據(jù)要添加到base=指定的目錄數(shù)據(jù)集名或關(guān)系數(shù)據(jù)庫(kù)表名中force強(qiáng)制追加源數(shù)據(jù)集或表到目標(biāo)數(shù)據(jù)集或表,可選項(xiàng)。v功能:實(shí)現(xiàn)把一個(gè)數(shù)據(jù)集中的數(shù)據(jù)追加到另一個(gè)數(shù)據(jù)集中或關(guān)系數(shù)據(jù)庫(kù)的表中?!咀⒁狻縜ppend過(guò)程運(yùn)行時(shí)先讀取base=數(shù)據(jù)集名和data=數(shù)據(jù)集名兩個(gè)數(shù)據(jù)集的描述信息,看數(shù)據(jù)集各自的對(duì)應(yīng)變量、類型和變量長(zhǎng)度是否一致,如果base=數(shù)據(jù)集中的變量在data=數(shù)據(jù)集中不存在,base=數(shù)據(jù)集中的相應(yīng)變量為缺失值,用點(diǎn)(.)表示;如果data=數(shù)據(jù)集中的相應(yīng)變量在
4、對(duì)應(yīng)的base=數(shù)據(jù)集中沒有找到,此時(shí)追加數(shù)據(jù)的過(guò)程不會(huì)被執(zhí)行,如果加上force參數(shù),這些缺失的變量在base=數(shù)據(jù)集中會(huì)被刪除,程序會(huì)繼續(xù)執(zhí)行下去;v如果base=數(shù)據(jù)集中的變量和data=數(shù)據(jù)集中的變量相同類型不一致,SAS會(huì)報(bào)錯(cuò)并停止執(zhí)行,加上force可以強(qiáng)制執(zhí)行,但以base=數(shù)據(jù)集中的變量為數(shù)據(jù)類型。v說(shuō)明:實(shí)際應(yīng)用中,append過(guò)程中的base=和data=v指明的兩個(gè)數(shù)據(jù)集或關(guān)系數(shù)據(jù)庫(kù)中的表其數(shù)據(jù)結(jié)構(gòu)一v樣.實(shí)現(xiàn)數(shù)據(jù)追加,也就是裝載,不對(duì)data=數(shù)據(jù)集做任何處理。同時(shí),如果重復(fù)運(yùn)行append過(guò)程,base=指定數(shù)據(jù)集或表數(shù)據(jù)會(huì)出現(xiàn)重復(fù)數(shù)據(jù)。Append過(guò)程應(yīng)用實(shí)例vAp
5、pend 過(guò)程可以實(shí)現(xiàn)數(shù)據(jù)集裝載。vAppend過(guò)程對(duì)兩個(gè)結(jié)構(gòu)相同的數(shù)據(jù)集進(jìn)行裝載,相當(dāng)于一個(gè)復(fù)制功能,只是append過(guò)程是將選取的一個(gè)數(shù)據(jù)集的數(shù)據(jù)追加到另一個(gè)數(shù)據(jù)集,對(duì)源數(shù)據(jù)集不做處理。v1.兩個(gè)數(shù)據(jù)集的數(shù)據(jù)結(jié)構(gòu)一樣,即數(shù)據(jù)集定義的變量名和類型都一樣?!咀⒁狻縱通過(guò)append過(guò)程實(shí)現(xiàn)了把班級(jí)class2的數(shù)據(jù)追加到班級(jí)class1中,實(shí)現(xiàn)了數(shù)據(jù)的合并。雖然data步通過(guò)set語(yǔ)句也可以實(shí)現(xiàn),但data步要對(duì)兩個(gè)數(shù)據(jù)集處理后才生成新數(shù)據(jù)集,v而append過(guò)程只是追加數(shù)據(jù),不對(duì)源數(shù)據(jù)集v進(jìn)行處理,append步執(zhí)行效率高。Append過(guò)程應(yīng)用實(shí)例v2. base=語(yǔ)句中的數(shù)據(jù)集為空數(shù)據(jù)集v
6、Base=語(yǔ)句中的數(shù)據(jù)集為空數(shù)據(jù)集,不存在,即只是給“base=”語(yǔ)句賦了一個(gè)數(shù)據(jù)集名稱,數(shù)據(jù)集之前沒有被創(chuàng)建,通過(guò)append過(guò)程,把“data=”語(yǔ)句指明的數(shù)據(jù)集追加到“base=”語(yǔ)句中的數(shù)據(jù)集。Append過(guò)程應(yīng)用實(shí)例v3. data=語(yǔ)句中的數(shù)據(jù)集有選擇地追加數(shù)據(jù)vAppend過(guò)程中的“data=”語(yǔ)句中可以使用data步具有的條件語(yǔ)句,有選擇地追加數(shù)據(jù),也就是過(guò)濾條件語(yǔ)句的應(yīng)用。v4.force選項(xiàng)的應(yīng)用vAppend過(guò)程中,對(duì)于“base=”語(yǔ)句中指定的數(shù)據(jù)集與“data=”語(yǔ)句中指定的數(shù)據(jù)集中的變量不完全匹配的情況下如果需要追加數(shù)據(jù),必須用force選項(xiàng)強(qiáng)迫追加。SAS與ora
7、cle數(shù)據(jù)庫(kù)連接vAppend過(guò)程與oracle關(guān)系數(shù)據(jù)庫(kù)結(jié)合,體現(xiàn)了SAS系統(tǒng)與關(guān)系數(shù)據(jù)庫(kù)強(qiáng)大的交互能力,通過(guò)append過(guò)程可以把SAS數(shù)據(jù)集裝載到oracle數(shù)據(jù)庫(kù)對(duì)應(yīng)目標(biāo)表中。vSAS系統(tǒng)與oracle關(guān)系數(shù)據(jù)庫(kù)建立連接的方式有以下三種方式。v1.通過(guò)邏輯庫(kù)建立SAS與oracle關(guān)系數(shù)據(jù)庫(kù)的連接通道和斷開通道v語(yǔ)法格式: libname 邏輯庫(kù)名 庫(kù)引擎 user=登錄數(shù)據(jù)庫(kù)用戶名 password=登錄數(shù)據(jù)庫(kù)密碼 path=登錄數(shù)據(jù)庫(kù)實(shí)例;v【語(yǔ)法解讀】“庫(kù)引擎”為連接關(guān)系數(shù)據(jù)庫(kù)的庫(kù)引擎,如連接oracle關(guān)系數(shù)據(jù)庫(kù),其庫(kù)引擎為“oracle”,對(duì)于連接不同的關(guān)系數(shù)據(jù)庫(kù)其庫(kù)引擎是不
8、同的。v 通過(guò)邏輯庫(kù)建立SAS與oracle關(guān)系數(shù)據(jù)庫(kù)連接的通道,用戶要知道登錄數(shù)據(jù)庫(kù)的用戶名、密碼和登錄數(shù)據(jù)庫(kù)實(shí)例。v對(duì)于邏輯庫(kù)建立SAS與關(guān)系數(shù)據(jù)庫(kù)連接的通道,可以通過(guò)以下語(yǔ)句取消邏輯庫(kù)的連接通道,實(shí)際應(yīng)用中對(duì)不再需要的連接通道要斷開,以提高程序效率,減輕負(fù)載。v語(yǔ)法格式: libname 邏輯庫(kù)名 clear;v【語(yǔ)法解讀】邏輯庫(kù)名是準(zhǔn)備斷開與關(guān)系數(shù)據(jù)庫(kù)連接的邏輯庫(kù)名稱; clear是取消連接邏輯庫(kù)的關(guān)鍵字,告訴SAS系統(tǒng)斷開與此邏輯庫(kù)的連接。2.通過(guò)宏變量建立SAS與oracle關(guān)系數(shù)據(jù)庫(kù)的連接通道v語(yǔ)法格式: %let 宏變量名=user=登錄數(shù)據(jù)庫(kù)用戶名 password=登錄數(shù)據(jù)
9、庫(kù)密碼 path=登錄數(shù)據(jù)庫(kù)實(shí)例;v【語(yǔ)法解讀】“%let”是定義宏變量的關(guān)鍵字,宏變量名是用戶自己起的變量名,后面是登錄數(shù)據(jù)庫(kù)實(shí)例的用戶名、密碼和數(shù)據(jù)庫(kù)實(shí)例信息。3.通過(guò)sql過(guò)程建立SAS與關(guān)系數(shù)據(jù)庫(kù)的連接v語(yǔ)法格式: proc sql vConnect to oracle (user=登錄數(shù)據(jù)庫(kù)用戶名 password=登錄數(shù)據(jù)庫(kù)密碼 path=登錄數(shù)據(jù)庫(kù)實(shí)例);vDisconnect from oracle;vQuit;3.通過(guò)sql過(guò)程建立SAS與關(guān)系數(shù)據(jù)庫(kù)的連接v【語(yǔ)法解讀】通過(guò)sql過(guò)程,使用sql過(guò)程語(yǔ)句建立SAS與關(guān)系數(shù)據(jù)庫(kù)的連接通道。v(1)“connect to orac
10、le”是連接oracle數(shù)據(jù)庫(kù)的語(yǔ)句, 是固定的,括號(hào)內(nèi)為登錄數(shù)據(jù)庫(kù)的用戶名、密碼和登錄數(shù)據(jù)庫(kù)實(shí)例信息。v(2)“disconnect from oracle”是斷開SAS與oracle數(shù)據(jù)庫(kù)連接的語(yǔ)句.Append與oracle數(shù)據(jù)庫(kù)結(jié)合應(yīng)用vAppend過(guò)程裝載“data=”語(yǔ)句指明的數(shù)據(jù)集到oracle數(shù)據(jù)庫(kù)表中,對(duì)“base=”語(yǔ)句指明的表,表中的一些變量屬性要進(jìn)行設(shè)置。vBase=語(yǔ)句中,對(duì)oracle數(shù)據(jù)庫(kù)而言常用的變量屬性設(shè)置語(yǔ)句如下。v1. bulkload=選項(xiàng)v對(duì)于將SAS中的數(shù)據(jù)集裝載到oracle數(shù)據(jù)庫(kù)表中,append過(guò)程對(duì)“bulkload=”語(yǔ)句的設(shè)置可以告訴SA
11、S系統(tǒng)是用oracle的sql.load方式裝載,還是不用vsql.load方式裝載。v【注意】bulkload=yes是數(shù)據(jù)裝載到oracle數(shù)據(jù)庫(kù)表中最快的方式。vBulkload=no選擇以事務(wù)形式插入行,以下選項(xiàng)都可以有效設(shè)置: dbcomit=、dbforce=、vErrlimit=、insertbuff=、nullchar=和nullcharval=。通過(guò)對(duì)這些選項(xiàng)的設(shè)置來(lái)提高插入數(shù)據(jù)到oracle數(shù)據(jù)庫(kù)表中的效率,同時(shí)還可以對(duì)變量進(jìn)行設(shè)置,告訴oracle插入數(shù)據(jù)的類型,是一種更準(zhǔn)確的數(shù)據(jù)裝載。v對(duì)于大數(shù)據(jù)量,不需要精確值的可以用bulkload=yes的方式,交給oracle數(shù)
12、據(jù)庫(kù)用sql*loader方式裝載。切記對(duì)列變量為日期或數(shù)值類型的、需要精確定義的不要選此方式,數(shù)據(jù)會(huì)裝不進(jìn)去而報(bào)錯(cuò)。v表8-2 bulklod=選項(xiàng)說(shuō)明bulkload 說(shuō)說(shuō) 明明yesBulkload=yes,調(diào)用oracle的sql*loader方式裝載noBulkoad=no,調(diào)用SAS系統(tǒng)的SAS/access模塊動(dòng)態(tài)邏輯庫(kù)引擎裝載數(shù)據(jù)到oracle表中。v2. Dbsastype=選項(xiàng)v該選項(xiàng)指明裝載到oracle數(shù)據(jù)庫(kù)表中的變量的數(shù)據(jù)類型,告訴oracle此裝載變量是什么類型,如日期還是數(shù)值類型。默認(rèn)此選項(xiàng)忽略。v語(yǔ)法格式: dbsastype=()v【語(yǔ)法解讀】多個(gè)數(shù)據(jù)庫(kù)列名對(duì)
13、應(yīng)SAS數(shù)據(jù)類型用空格分隔。通過(guò)此選項(xiàng)可以改變默認(rèn)數(shù)據(jù)類型。v【注意】(1)列名1至n指的是oracle數(shù)據(jù)庫(kù)表中的列名.v(2)SAS數(shù)據(jù)集中的數(shù)據(jù)類型指的是SAS定義的變量數(shù)據(jù)類型,可以取的數(shù)據(jù)類型如下:char(長(zhǎng)度)、numeric、vDatatime、date和time.v3. insertbuff=選項(xiàng)v該選項(xiàng)定單個(gè)oracle執(zhí)行時(shí)緩沖區(qū)中一次批量提交插入的行數(shù)。默認(rèn)是對(duì)邏輯庫(kù)語(yǔ)句libname中加入此項(xiàng)。此選項(xiàng)的合理設(shè)置可以提高程序裝載數(shù)據(jù)到oracle表中的效率,具體要根據(jù)實(shí)際操作系統(tǒng)環(huán)境設(shè)置insertbuff=的合適值,并不是越大越好。v語(yǔ)法格式:insertbuff=正
14、整數(shù)值;v【注意】如果指定dbcommit=選項(xiàng),指定一次提交的記錄數(shù),insertbuff=無(wú)效。v3. nullchar=與nullcharval=選項(xiàng)vnullchar=選項(xiàng)指定對(duì)數(shù)據(jù)庫(kù)中的表做插入或更新時(shí)缺失值的處理方式,一般和nullcharval一起使用,選項(xiàng)設(shè)置如下表: 表8-3 nullchar=選項(xiàng)設(shè)置Nullchar=取值取值說(shuō)明說(shuō)明SAS數(shù)據(jù)庫(kù)中的表允許空時(shí),SAS數(shù)據(jù)集中的字符類型變量缺失值以空處理,其他情況下取nullcharval=值yes數(shù)據(jù)庫(kù)中的表允許空時(shí),SAS數(shù)據(jù)集中的字符類型變量缺失值以空處理,其他情況下以錯(cuò)誤返回no指定SAS數(shù)據(jù)集中的缺失字符類型值以n
15、ullcharval=值替換v【注意】nullchar=與nullcharval=通常一起應(yīng)用。vnullcharval=在想數(shù)據(jù)庫(kù)中的表插入或更新數(shù)據(jù)時(shí),對(duì)SAS數(shù)據(jù)集中缺失的字符值定義替換的字符串。v語(yǔ)法格式:nullcharval=字符串v【注意】如果nullcharval=指定的字符串比列定義的最大長(zhǎng)度大,用dbforce=yes選項(xiàng),替換串被截取到合適定義長(zhǎng)度;用dbforce=no選項(xiàng),則替換失敗。宏過(guò)程調(diào)用append過(guò)程應(yīng)用v宏過(guò)程可以實(shí)現(xiàn)功能的封裝,通過(guò)宏過(guò)程內(nèi)部調(diào)用append過(guò)程實(shí)現(xiàn)數(shù)據(jù)的追加。v語(yǔ)法格式:%macro 宏名 (v_parameter1, v_parame
16、ter2);vProc append base=&v_parameter 1 data=&v_parameter2;v%mend;v% macro: 宏過(guò)程開始標(biāo)志。v宏名 (v_parameter1, v_parameter2):定義的宏名稱,并定義了兩個(gè)宏參數(shù)。vAppend:過(guò)程步所調(diào)用的過(guò)程名。v% mend:宏結(jié)束標(biāo)志。v【注意】%宏名(實(shí)參):調(diào)用宏過(guò)程Dbload過(guò)程vDbload過(guò)程可以創(chuàng)建oracle數(shù)據(jù)庫(kù)表,并通過(guò)load方式裝載數(shù)據(jù)到oracle數(shù)據(jù)庫(kù)表中,通過(guò)SAS/access模塊接口連接oracle關(guān)系數(shù)據(jù)庫(kù)。對(duì)于數(shù)據(jù)要求不是很嚴(yán)格的,可以通過(guò)此方式
17、裝載數(shù)據(jù)。v實(shí)際開發(fā)中經(jīng)常用dbload過(guò)程裝載數(shù)據(jù)到oracle關(guān)系數(shù)據(jù)庫(kù)中,效率還是比較低的。v語(yǔ)法格式:vProc dbload dbms=oracledata=數(shù)據(jù)集名;v基本語(yǔ)句;vRun;vDbload:SAS內(nèi)部的dbload過(guò)程名。vDbms=oracle:指明是連接oracle庫(kù)引擎中的文件,如果是其他類型,不是連接oracle數(shù)據(jù)庫(kù),可以替換此項(xiàng)。vdbms=oracledata=數(shù)據(jù)集名:指定輸入的數(shù)據(jù)集,省略此項(xiàng)時(shí),默認(rèn)是當(dāng)前創(chuàng)建的最新數(shù)據(jù)集。vAppend:加入此項(xiàng)是告訴SAS系統(tǒng)把數(shù)據(jù)集追加到vOracle的目標(biāo)表中,此語(yǔ)句是和table=語(yǔ)句一起使用。 表8-4
18、dbload常用基本語(yǔ)句基本語(yǔ)句基本語(yǔ)句說(shuō)明說(shuō)明Table=指定在指定在oracle數(shù)據(jù)庫(kù)中要?jiǎng)?chuàng)建的表名數(shù)據(jù)庫(kù)中要?jiǎng)?chuàng)建的表名User=指定登錄指定登錄oracle數(shù)據(jù)庫(kù)的用戶名數(shù)據(jù)庫(kù)的用戶名Orapw=指定登錄指定登錄oracle數(shù)據(jù)庫(kù)的密碼數(shù)據(jù)庫(kù)的密碼Tablespace=指定指定oracle數(shù)據(jù)庫(kù)表存儲(chǔ)數(shù)據(jù)的表空間數(shù)據(jù)庫(kù)表存儲(chǔ)數(shù)據(jù)的表空間Path=指定登錄指定登錄oracle數(shù)據(jù)庫(kù)的實(shí)例數(shù)據(jù)庫(kù)的實(shí)例Accdesc=指定連接指定連接oracle數(shù)據(jù)庫(kù)的描述數(shù)據(jù)庫(kù)的描述Delete=指定刪除數(shù)據(jù)集不需要的變量指定刪除數(shù)據(jù)集不需要的變量Where=選擇數(shù)據(jù)集自己裝載到選擇數(shù)據(jù)集自己裝載到orac
19、le數(shù)據(jù)庫(kù)目標(biāo)表數(shù)據(jù)庫(kù)目標(biāo)表Load=提交數(shù)據(jù)裝載,相當(dāng)于數(shù)據(jù)庫(kù)中的提交數(shù)據(jù)裝載,相當(dāng)于數(shù)據(jù)庫(kù)中的commit數(shù)據(jù)步數(shù)據(jù)裝載v數(shù)據(jù)步和連接oracle數(shù)據(jù)庫(kù)的邏輯庫(kù)結(jié)合,可以把數(shù)據(jù)集裝載到oracle關(guān)系數(shù)據(jù)庫(kù)中,這也是一種裝載方式。語(yǔ)法格式如下:vLibname 邏輯庫(kù)名 oracle user=登錄數(shù)據(jù)庫(kù)用戶名vPassword=登錄數(shù)據(jù)庫(kù)密碼 path=登錄數(shù)據(jù)庫(kù)實(shí)例;vvData 邏輯庫(kù)名.表名;vSet 數(shù)據(jù)集名;vRun;【語(yǔ)法解讀】v首先建立連接數(shù)據(jù)庫(kù)的邏輯庫(kù)。對(duì)于數(shù)據(jù)集不是存儲(chǔ)在work臨時(shí)邏輯庫(kù)中的,要建立存儲(chǔ)路徑邏輯庫(kù).vData 邏輯庫(kù)名.表名:指定數(shù)據(jù)集裝載到oracl
20、e 數(shù)據(jù)庫(kù)目標(biāo)表中,表不存在時(shí)自動(dòng)創(chuàng)建。vSet: set語(yǔ)句讀入要裝載的數(shù)據(jù)集。v【注意】數(shù)據(jù)步裝載數(shù)據(jù)集到oracle數(shù)據(jù)庫(kù)中,在數(shù)據(jù)步創(chuàng)建的新數(shù)據(jù)集指定bulkload=yes,告訴SASv系統(tǒng)使用oracle的sql*loader方式裝載。Sql過(guò)程數(shù)據(jù)裝載vSql過(guò)程實(shí)現(xiàn)數(shù)據(jù)集裝載到oracle數(shù)據(jù)庫(kù)目錄表中,也是實(shí)現(xiàn)數(shù)據(jù)裝載的一種方式,可以加入選項(xiàng)語(yǔ)句設(shè)置裝載方式。語(yǔ)法格式如下:vlibname 邏輯庫(kù)名 oracle user=登錄數(shù)據(jù)庫(kù)用戶名vpassword=登錄數(shù)據(jù)庫(kù)密碼 path=登錄數(shù)據(jù)庫(kù)實(shí)例;vvproc sql noprint;vcreate table 邏輯庫(kù)名.
21、表名 vas select * from 數(shù)據(jù)集名;vrun;語(yǔ)法解讀vSql過(guò)程裝載利用了“create table”創(chuàng)建表語(yǔ)句,相當(dāng)于把“select * from”查詢出來(lái)的數(shù)據(jù)集信息裝載到所創(chuàng)建的表。v表8-5 常用選項(xiàng)說(shuō)明選項(xiàng)選項(xiàng)說(shuō)明說(shuō)明bulkload指定是否用oracle的sql*loader方式Bl_options指定sql*loader方式允許的錯(cuò)誤條數(shù),默認(rèn)值為1000000Bl_delete_datafile刪除產(chǎn)生的數(shù)據(jù)文件Sort過(guò)程數(shù)據(jù)集整理vSort過(guò)程主要用來(lái)對(duì)數(shù)據(jù)集進(jìn)行排序,根據(jù)by語(yǔ)句指定的變量對(duì)數(shù)據(jù)集排序,同時(shí)可以將過(guò)濾出來(lái)的重復(fù)記錄輸出到另一個(gè)數(shù)據(jù)集存儲(chǔ)
22、。v語(yǔ)法格式:proc sort ;vBy 變量名1 變量名2;vRun;v表8-6 sort過(guò)程常用選項(xiàng)說(shuō)明v【注意】force是對(duì)有索引的想強(qiáng)制排序和替換選項(xiàng)選項(xiàng)說(shuō)明說(shuō)明v表8-7 指定按類型排序選項(xiàng)【注意】by: by語(yǔ)句指定排序變量,默認(rèn)為升序,指定多個(gè)排序變量時(shí)用空格分隔,排序時(shí)sort過(guò)程先按by語(yǔ)句指定的第一個(gè)變量排序,然后再按第二個(gè)變量排序,依次類推。選項(xiàng)選項(xiàng)說(shuō)明說(shuō)明ASCII指定按ASCII碼排序EBCDIC指定按EBCDIC碼排序DANISH指定按DANISH碼排序FINNISH指定按FINNISH碼排序NORWEGIAN指定按NORWEGIAN碼排序SWEDISH指定按S
23、WEDISH碼排序NATIONAL指定按習(xí)慣順序排序SORTSEQ指定按上面所列任一類型排序v1.dupout=選項(xiàng)與nodupkey=語(yǔ)句的聯(lián)合應(yīng)用vDupout=選項(xiàng)指定數(shù)據(jù)集名,此數(shù)據(jù)集存放過(guò)濾掉的重復(fù)數(shù)據(jù)信息,此項(xiàng)必須與nodupkey或noduprecs任一項(xiàng)一起使用。v2.dupout=選項(xiàng)與noduprecs語(yǔ)句的聯(lián)合應(yīng)用vNoduprecs刪除完全相同的記錄,不根據(jù)id判斷。v【注意】使用dupout=語(yǔ)句指定時(shí)對(duì)原數(shù)據(jù)集進(jìn)行了修改。v3.out=語(yǔ)句應(yīng)用vOut=語(yǔ)句將排好序的數(shù)據(jù)集輸出到out=語(yǔ)句指定的數(shù)據(jù)集保存,對(duì)原數(shù)據(jù)集不做修改,保存原數(shù)據(jù)集原樣。v【注意】?jī)牲c(diǎn)關(guān)于選
24、項(xiàng)區(qū)別的總結(jié)v(1)out=與dupout=的不同之處:vOut=:將原數(shù)據(jù)集排好序的數(shù)據(jù)集輸出到out=語(yǔ)句指定的數(shù)據(jù)集存儲(chǔ),對(duì)原數(shù)據(jù)集不做任何修改。vdupout=: 對(duì)原數(shù)據(jù)進(jìn)行了修改,去掉重復(fù)數(shù)據(jù),同時(shí)將刪除的重復(fù)數(shù)據(jù)存儲(chǔ)到dupout=語(yǔ)句指定的數(shù)據(jù)集中。此選項(xiàng)要與nodupkey或noduprecs中的一個(gè)選項(xiàng)一起使用才有效。v(2)nodupkey與noduprecs的不同之處:vNodupkey:根據(jù)by語(yǔ)句指定的變量,刪除重復(fù)數(shù)據(jù)。vNoduprecs:刪除完全相同的觀測(cè)記錄。Datasets過(guò)程數(shù)據(jù)集整理vDatasets過(guò)程主要用來(lái)管理SAS數(shù)據(jù)邏輯庫(kù)中的成員,通過(guò)這個(gè)過(guò)
25、程,可以實(shí)現(xiàn)對(duì)邏輯庫(kù)中的成員輸出列表、改名、添加或修改邏輯庫(kù)成員中的信息等功能;能改變變量名,并可以定義輸出格式、輸入格式和變量標(biāo)簽,其中append過(guò)程、contents過(guò)程和copy過(guò)程都可以在此過(guò)程中使用。Datasets過(guò)程語(yǔ)法vDatasets過(guò)程的功能比較強(qiáng)大,該過(guò)程默認(rèn)處理的數(shù)據(jù)庫(kù)成員信息是對(duì)臨時(shí)庫(kù)work中的成員進(jìn)行處理,如果要處理其他邏輯庫(kù)中的成員信息,必須用邏輯庫(kù)語(yǔ)句指定。v語(yǔ)法格式: proc datasets ;v基本操作語(yǔ)句;vRun;v表8-8 dataset過(guò)程的選項(xiàng)說(shuō)明選項(xiàng)選項(xiàng)說(shuō)明說(shuō)明detalls指定日志信息中包含觀測(cè)數(shù)、變量數(shù)、索引數(shù)和數(shù)據(jù)集標(biāo)簽nodetalls指定日志信息中不包含觀測(cè)數(shù)、變量數(shù)、索引數(shù)和數(shù)據(jù)集標(biāo)簽force遇到錯(cuò)誤,強(qiáng)制執(zhí)行kill刪除邏輯庫(kù)中對(duì)應(yīng)的所有成員Memtype=限制邏輯庫(kù)中某個(gè)類型成員的處理nolist不打印輸出邏輯庫(kù)中成員的信息nowran對(duì)于語(yǔ)句中成員不在當(dāng)前邏輯庫(kù)中的錯(cuò)誤信息,不輸出錯(cuò)誤信息pw對(duì)此邏輯庫(kù)指定讀、寫或更改訪問(wèn)權(quán)限Read=對(duì)此邏輯庫(kù)指定讀訪問(wèn)權(quán)限D(zhuǎn)atasets過(guò)程基本語(yǔ)句v1. append語(yǔ)句v語(yǔ)法格式:append base=數(shù)據(jù)集名 data=數(shù)據(jù)集名;v語(yǔ)法解讀:append 語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)追加功能,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人信用擔(dān)保借款合同范文
- DB6103T 83-2025 巨菌草栽培技術(shù)規(guī)范
- 不動(dòng)產(chǎn)投資合伙合同模板
- 個(gè)人司機(jī)勞動(dòng)合同范本
- 個(gè)人承包道路施工工程合同模板
- 個(gè)人房屋改建工程合同范本
- 二手房交易中介服務(wù)合同樣本
- 產(chǎn)品銷售合同談判進(jìn)展
- 上市公司采購(gòu)供應(yīng)合同范本
- 個(gè)人家居裝修合同模板大全
- 公司安全生產(chǎn)事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)工作制度
- H3CNE認(rèn)證考試題庫(kù)官網(wǎng)2022版
- 感統(tǒng)訓(xùn)練培訓(xùn)手冊(cè)(適合3-13歲兒童)
- 公司章程范本(完整版)
- 廠房委托經(jīng)營(yíng)管理合同范本
- 煙草企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化規(guī)范1-200題附有答案
- FZ∕T 54007-2019 錦綸6彈力絲行業(yè)標(biāo)準(zhǔn)
- 人教部編版四年級(jí)語(yǔ)文下冊(cè)課內(nèi)外閱讀訓(xùn)練2《鄉(xiāng)下人家》(有答案)
- ??停?024年智能制造校園招聘白皮書
- 住院病人燙傷的應(yīng)急演練
- 新入職消防員考核試卷題庫(kù)(240道)
評(píng)論
0/150
提交評(píng)論