2015-02-04 2 views
0

[HKAB] [1] 웹 사이트에서 최신 HIBOR 요금을 받고 싶습니다. 여기SAS 웹 스크 레이 핑

내가 시도 다음 코드입니다 : 그것은

data parm; 
    format yyyymmdd $8.; 

    yyyymmdd = put(date(), yymmddn8.); 

    yyyy = put(substr(yyyymmdd, 1, 4), $4.); 
    mm = put(substr(yyyymmdd, 5, 2), $2.); 
    dd = put(substr(yyyymmdd, 7, 2), $2.); 
    *url = 'http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year='||yyyy||'&month='||mm||'&day='||dd;; 
    format url $1024.; 
    url = 'http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year=' || yyyy || '&month=' || mm || '&day=' || dd; 
    url2 = 'curl ' || url; 
    call symput('url',url); 
    call symput('url',url); 
    call symput('url',url); 
    call symput('url',url); 
    call symput('url2',url2); 

    put _all_; 
run; 

%put &url2.; 
filename hiborpage url &url.; 


    [1]: http://www.hkab.org.hk/hibor/listRates.do?lang=en&Submit=Search&year=2015&month=1&day=26 
+1

유효한 URL 따옴표가 필요 예컨대 :, 매크로 변수에 앰퍼샌드를 마스크 매크로 기능 %nrstr()를 사용하여 이러한 경고를 방지하려면? 왜 다중 호출 symput ('url')입니까? – Reeza

+0

이 질문을보십시오, 당신이 당신이 찾고있는 것을 찾을 것이라고 생각합니다 ... http://stackoverflow.com/questions/24584928/sas-and-curl-env-in-url-causes- 오류 –

답변

2

귀하의 fileref 8자를 초과하는 파일 이름 문에서 오류를주고 있지만. hibor과 같이 hiborpage을 더 짧게 변경하십시오. 또한 Reeza가 말했듯이 &url을 큰 따옴표로 묶으십시오. 매크로 변수는 작은 따옴표로 해결되지 않습니다. 오류를 수정해야합니다.

URL에 앰퍼샌드가 있습니다. 일반적으로 작은 따옴표로 문자열을 넣을 수 있지만 매크로 변수에 있기 때문에 큰 따옴표가 필요합니다. 문제는 SAS가 URL에서 매크로 변수라고 생각하는 것을 해결하려고 시도하고 실패 할 경우 경고를 표시합니다.

%let url3 = %nrstr(&url); 
filename hibor url "&url3."; 
관련 문제