source

sqlldr을 사용하여 원격 DB에 데이터 로드

manysource 2023. 8. 23. 21:51

sqlldr을 사용하여 원격 DB에 데이터 로드

sqlldr을 사용하여 원격 db에 데이터를 로드하고 싶었습니다.다음 명령을 사용하여 수행했습니다.

>sqlldr GANUKA/GANUKA@jdbc:oracle:thin:@172.21.0.180:1521:orcl control=D:\Work\CLSTMAS.ctl 
log=D:\Work\CLSTMAS.log

그러나 다음과 같은 오류가 발생합니다.

SQL*Loader-704: Internal error: ulconnect: OCIServerAttach [0]
ORA-12154: TNS:could not resolve the connect identifier specified

도움이 필요합니다.

당신은 여기서 두 개의 다른 세계를 혼동하고 있습니다.하나는 sqldr이 사는 OCI 세계입니다.TNSNAMES에 정의된 Oracle 인스턴스 이름이 필요합니다.ORA(또는 유사한 서비스).다른 세계는 "jdbc" 또는 "thin"과 같은 단어가 있는 연결 식별자를 사용하는 JDBC 세계입니다.

두 가지 옵션이 있습니다.

  • 사용자 환경에 적절한 TNS 설정이 있는 경우 명령줄을 다음과 같이 변경해야 합니다.sqlldr GANUKA/GANUKA@MONTY.CORP control=...

  • 그렇지 않은 경우 Easy Connect 문자열을 사용할 수 있습니다.sqlldr GANUKA/GANUKA@//172.21.0.180:1521/orcl control=...

결국 씬 클라이언트 연결 문자열을 사용해야 했습니다.@Codo의 해결책을 찾을 수 없었습니다.

sqlldr \'username/passwd@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost.com)(PORT=1111)))(CONNECT_DATA=(SID=MYSIDE)(SERVER=DEDICATED)))\' control=loader.ctl data=data.csv

언급URL : https://stackoverflow.com/questions/3895632/load-data-to-remote-db-using-sqlldr