특정 열만 Open()하는 방법<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕하세요, 큰 JMP 데이터 테이블이 있는 경우 특정 열에서만 로드되는 Open()에 메시지를 보낼 수 있는 방법이 있습니까?이렇게 하면 대용량 파일의 파일 로드 시간이 크게 줄어듭니다.예를 들어 이 파일이 있는 경우:
열기("c:\temp\fruit.jmp");
fruit.jmp에 서로 다른 과일 유형의 200개 열이 포함되어 있고 이 모든 항목에 액세스해야 할 수도 있지만 현재로서는 "Apple" 열 하나만 로드하면 되므로 파일 로드 시간이 단축됩니다.후속 Subset()을 수행하면 큰 데이터 파일을 먼저 열어야 하고 여기의 목적은 필요한 열만 로드하여 파일 로드 시간을 줄이는 것이기 때문에 목적을 달성하지 못합니다.나는 다음과 같은 것이 효과가 있기를 바랐지만 물론 그렇지 않습니다.
Open("c:\temp\fruit.jmp",columns("애플"));
제안?thx... 디제이
특정 열만 Open()하는 방법좋아, 나는 이것을 알아 냈을 수 있다고 생각합니다.결국 과거의 유용한 게시물을 찾았습니다.스크립팅 가이드에서 모든 Open() 속성을 검색했는데 대신 Open Database() 명령을 사용하지 않고는 이를 수행할 방법이 없습니다.기본적으로 먼저 소스 .jmp를 .xls 파일로 변환하면 됩니다.다른 사람에게 도움이 될까 해서 이것을 게시하고 싶었습니다.디제이
http://communities.sas.com/message/50379#50379
그래서 먼저 "fruit.jmp"를 "fruit.xls"로 변환합니다.그렇게 하면 JSL이 Excel ODBC DSN 연결과 약간의 SQL 코드를 사용하여 필요한 열만 가져올 수 있습니다.내 Excel 데이터 테이블에 "Sheet1" 워크시트가 있고 그 안에 "Apple"이라는 열이 있고 시간을 절약하기 위해 이 열만 로드하고 이 워크시트의 다른 열은 로드하지 않으려고 합니다.아래 코드는 트릭을 수행합니다.
dt=데이터베이스 열기("DSN=Excel Files;DBQ=c:\temp\fruit.xls;DriverId=790;MaxBufferSize=2048;PageTimeout=5;","SELECT Apple FROM `Sheet1$`" , "과일 테이블" );