2017-03-16 1 views
0

을 통해 원격 SQL 서버의 (모든 행 삭제) 테이블을 자르는 방법 내 응용 프로그램 (Linux)에서 원격 SQL 서버 테이블에로드해야하는 .DAT 파일이 매일 수신됩니다. 요구 사항에 따라 테이블에 .DAT 파일을로드하기 전에이 테이블에서 잘라야합니다 (또는 모든 행을 삭제해야합니다).로컬 리눅스 머신

나는 명령

mysql -h <servername>,<port-number> -u <username> -p <password> -e "DELETE from <DB_name>.<Schema_name>.<Table_name>" 

아래 시도했지만 그것은 오류

-ksh 실패한다 : mysql : 나는 밖으로 도달

[해당 파일 또는 디렉터리]를 발견하지 우리 팀의 리눅스 전문가에게 "mysql"에 대한 검색을 수행했으며 그 결과로 MYSQL이 로컬 Linux 컴퓨터에 설치되어 있지 않다고 해석했습니다.

는 또한 나는 아래의 메시지와 함께 실패 BCP

bcp "Delete from [DB_name].[schema_name].[table_name]" queryout <output_file_full_path> -S <servername>,<port-number> -m 0 -e <error_file_full_path> -T -c -t '|' 

을 시도

시작 사본 ... SQLSTATE = S1000, NativeError = 0 오류 = [마이크로 소프트] [ODBC SQL 용 드라이버 (11) 서버] BCP 호스트 파일에 적어도 하나의 열 이 있어야합니다. SQLState = S1000, NativeError = 0 오류 = [Microsoft] [SQL Server 용 Microsoft] [ODBC 드라이버 11] 열 수준 데이터 정렬을 확인할 수 없음

나는 BCP 쿼리 결과가 파일에 저장 될 것을 요구하지만 삭제는 BCP 실패를 반환하지 않는다는 것을 이해합니다.

따라서 로컬 Linux 컴퓨터를 통해 원격 SQL 테이블에서 데이터를 삭제하는 대체 방법이 있는지 알고 싶습니다.

+0

을 그래서, SQL Server 또는 MySQL은 무엇입니까? 그것들은 매우 다른 두 가지 제품이며 다른 제품에 연결하는 도구를 사용할 수 없습니다. 태그를 수정하십시오. 그것은 MySQL의 경우 왜 그 컴퓨터에 클라이언트 도구를 설치하지? 또한 잘라내 기는 일반적으로 모두 삭제하는 것보다 빠릅니다. –

+0

안녕 사미, 미안, 믹스에 대한 질문을 편집했습니다. 그것은 SQL 서버입니다.그래서 내가 -h MySQL은, -u -p -e를 사용할 수 없습니다 생각 "에서 삭제합니다. . 을"오전 잘못된 경우께요 알고있다. 절충 된 동의는 모두 삭제보다 나은 옵션입니다. 현재 MYSQL이없는 로컬 Linux 컴퓨터를 통해 Remote Sql Server의 TRUNCATE 테이블에 대한 구문을 찾고 있습니다. – ManojKumar

답변

0

Microsoft SQL Server에 연결하려는 경우 sqlcmd/bcp + ODBC 드라이버를 사용하는 것이 좋습니다.

은 이렇게하려면 다음

귀하의 Windows 컴퓨터를 다시 시작하고 SQL Server에 연결 : https://www.microsoft.com/en-us/download/details.aspx?id=53339

  • 여기에서 SQLCMD/BCP 도구를 다운로드 다음을 사용 :

    sqlcmd -S myserver -d Adventure_Works -U myuser -P [email protected] -I 
    

    여기에 몇 가지 예를 체크 아웃, BCP를 사용하고 싶습니다 : 당신이 리눅스에있는 경우 https://msdn.microsoft.com/en-us/library/ms162802.aspx

    을,이 따르 https://blogs.msdn.microsoft.com/sqlnativeclient/2017/02/04/odbc-driver-13-1-for-linux-released/

  • 관련 문제