2009-12-11 2 views
-2

안녕 필수 즉각적인 응답을 사용하여 Oracle 10g의 테이블의 덤프를 복용? 누구나 덤프를 수행 할 수있는 절차를 제공 할 수 있습니까?는</p> 내가 스키마에서 일부 선택된 테이블의 덤프를 먹고 싶어 <p>, 어떤 시체는이 가능 말해 줄 수, PL/SQL 프로 시저

스키마, 테스트 사용자 및 테이블 (T1, T2, T3, T5, T9)이 있는데 T1 & T5 만 덤프하려고합니다. 이 명령으로 미리

+4

SO는 "즉각적인 대응"을위한 곳이 아닙니다. 이것은 지원 계약을 맺는 대신 할 수 없습니다. – APC

답변

0

에서

덕분에 당신은 바이너리 오라클 덤프 얻을 것이다 : 특급 스캇/호랑이 파일 = mydump.dmp 테이블 = (T1, T5)를

나는이 링크를 권장합니다 http://www.orafaq.com/wiki/Import_Export_FAQ

+0

PL/SQL 프로 시저를 사용하여이 작업을 원합니다. –

0

PL/SQL을 사용해야하고 파일을 만들려고하는 경우 사용자에게 쓰기 권한이 부여 된 디렉터리를 정의해야합니다. DBA가 할 수있는 일입니다. "디렉토리 생성"명령을 참조하십시오.

(1) 파일을 열고 행을 쓰기 위해 UTL_FILE을 호출하거나 (2) "EXTERNAL TABLE"을 작성하여 정보를 복사하거나 (3) DBMS_XMLGEN 또는 (4) 다른 여러 가지 방법 중 하나를 사용하여 실제로 데이터베이스의 데이터를 파일에 씁니다. 이 모든 것은 오라클 문서에 있습니다. PL/SQL Packages and Types 설명서는 이와 같은 것들을 당신의 친구입니다.

실제 파일 시스템 디렉토리는 데이터베이스가있는 서버에 있어야합니다. 따라서 파일을 복사하려면 서버에 액세스해야하거나 누군가가 마운트를 설정해야 할 수도 있습니다.

또는 데이터를 얻기 위해 호출 할 수있는 plsql 웹 서비스를 설정할 수 있습니다.

하지만 개인적으로 저는 단지 exp 만 사용합니다. 또는 Toad 또는 다른 프론트 엔드 도구 (SQL * Plus 포함)를 사용할 수없는 경우 간단한 SQL 스크립트를 작성하고 결과를 저장할 수 있습니다.

숙제를 위해이 작업을 수행하는 경우 UTL_FILE 솔루션을 원할 것입니다.

3

당신이 the Data Pump API하여이 작업을 수행 할 수 10g에에있는 것처럼. 대상 OS 디렉토리에 매핑되는 디렉토리 객체에 대한 읽기 및 쓰기 액세스가 필요합니다.

다음 예에서는 EMP 및 DEPT라는 두 테이블을 DATA_PUMP_DIR로 식별되는 디렉터리의 EMP.DMP라는 파일로 내보내고 있습니다.

SQL> declare 
    2  dp_handle  number; 
    3 begin 
    4  dp_handle := dbms_datapump.open(
    5  operation => 'EXPORT', 
    6  job_mode => 'TABLE'); 
    7 
    8 dbms_datapump.add_file(
    9  handle => dp_handle, 
10  filename => 'emp.dmp', 
11  directory => 'DATA_PUMP_DIR'); 
12 
13 dbms_datapump.add_file(
14  handle => dp_handle, 
15  filename => 'emp.log', 
16  directory => 'DATA_PUMP_DIR', 
17  filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE); 
18 
19 dbms_datapump.metadata_filter(
20  handle => dp_handle, 
21  name => 'NAME_LIST', 
22  value => '''EMP'',''DEPT'''); 
23 
24 dbms_datapump.start_job(dp_handle); 
25 
26 dbms_datapump.detach(dp_handle); 
27 end; 
28/ 

PL/SQL procedure successfully completed. 

SQL> 

@DerekMahar 묻습니다 :

, 모두

데이터 펌프 "를 클라이언트 측에서 실행을위한 유사한 데이터 펌프 도구 또는 API 사용할 수 있나요" PL/SQL API 및 OS 유틸리티는 Oracle 디렉토리에 씁니다. Oracle 디렉토리는 데이터베이스에서 볼 수있는 OS 디렉토리를 나타내야합니다. 보통 이론적으로는 PC 드라이브를 네트워크에 매핑하는 것이 가능하다고 생각하지만 일반적으로 서버의 디렉토리입니다. 네트워크 관리자에게 이것이 좋은 생각이라고 설득해야합니다. 왜냐하면 그렇지 않기 때문에 어려운 판매입니다. ...

이전 IMP 및 EXP 유틸리티는 클라이언트 디렉토리에서 읽고 쓴 것이므로 이론적으로 가능한 로컬 덤프 파일을 원격 데이터베이스에 IMP로 가져올 수 있습니다. 그러나 이것이 실제적인 접근법이라고 생각하지 않습니다. 파일의 특성상 덤프 파일이 큰 경향이 있으므로 네트워크를 통해 가져 오는 속도가 느리고 실패하는 경향이 있습니다. 덤프 파일을 압축하여 서버에 복사하고 거기에서 가져 오는 것이 훨씬 더 좋은 해결책입니다.

+0

클라이언트 측에서 실행 가능한 데이터 펌프 도구 또는 API가 있습니까? –