2013-04-25 3 views
0

SQL Server 테이블의 일부 데이터에서 텍스트 파일을 만들어야합니다. 내가 그것에 대한 쿼리를 만들었습니다.SQL 서버 내부에서 텍스트 파일 크기 읽기

일단 파일이 생성되면 트리거 파일이나 행 수, 파일 날짜, 이름 등과 같은 정보가 포함 된 다른 텍스트 파일을 만들어야합니다.이 트리거 파일과는 별도로 파일 크기 정보가 있어야합니다.

데이터 수집 쿼리에서 데이터를 수집 할 때 트리거 테이블을 만들고 행 수, 파일 이름, 날짜와 같은 다른 정보로 업데이트한다는 것을 알았습니다. 그러나 내 쿼리 내부에서 트리거 파일의 파일 크기를 가져 오는 방법에 대해 혼란 스럽습니다.

나는 어떤 아이디어라도 감사 할 것입니다.

+2

TSQL을 사용하여 데이터베이스 외부의 파일이나 다른 파일을 사용하는 것은 대개 데이터베이스 조작 언어가 아니고 범용 프로그래밍 언어가 아니기 때문에 작업하기가 매우 어렵습니다. 파일을 관리하고 파일 크기 데이터로 데이터베이스를 업데이트하는 외부 스크립트 또는 응용 프로그램을 작성하는 것이 좋습니다. TSQL을 사용하는 것보다 거의 확실합니다. – Pondlife

답변

0

모든 입력에 감사드립니다. 파일 크기를 읽고 데이터베이스를 업데이트하는 .net 실행 파일을 만들었습니다.

1

필자는 개인적으로 Windows와 상호 작용해야하는 작업을 수행하기 위해 Powershell을 사용 하겠지만 매우 흥미로운 것은 아닙니다.

  1. xp_cmdshell을 기본적으로 꺼져 :

    exec xp_cmdshell 'dir c:\temp\test.txt' 
    
        Output 
        Volume in drive C is System 
        Volume Serial Number is A227-BF7F 
        NULL 
        Directory of c:\temp 
        NULL 
        26/04/2013 10:52 AM    20 test.txt 
           1 File(s)    20 bytes 
           0 Dir(s) 214,210,105,344 bytes free 
        NULL 
    

    그래도 단점 몇 가지가 있습니다 xp_cmdshell을 :

    은 내가 생각할 수있는 두 개의 SQL 기반의 솔루션이 있습니다. (메시지 15281, 수준 16, 상태 1, 프로 시저 xp_cmdshell, 줄 1 이 구성 요소가이 서버의 보안 구성의 일부로 해제되어 있으므로 SQL Server에서 'xp_cmdshell'구성 요소의 프로 시저 'sys.xp_cmdshell'에 대한 액세스를 차단했습니다. 관리자는 sp_configure를 사용하여 'xp_cmdshell'을 사용하도록 설정할 수 있습니다. 'xp_cmdshell'을 사용하도록 설정하는 방법에 대한 자세한 내용은 SQL Server 온라인 설명서의 "노출 영역 구성"을 참조하십시오.) 출력을 구문 분석해야합니다.

OPENROWSET

select datalength(bulkcolumn) from openrowset(bulk 'c:\temp\test.txt', single_clob) a 

는 텍스트 파일이며, 당신이 정말로 운영 체제에 의해보고 정확한 수를 필요로하지 않는 가정 할 때, 당신은 당신의 텍스트에 포함 된 바이트 수를 셀 수 파일.

희망은 아이디어를 줄 것입니다.