Oracle
 sql >> база данни >  >> RDS >> Oracle

Вземане на дъмп на таблици в oracle 10g чрез PL/SQL процедура

Тъй като сте на 10g, можете да направите това с API на Data Pump. Трябва да имате достъп за четене и запис на обект от директория, който се съпоставя с директорията на целевата операционна система.

В следващия пример експортирам две таблици, EMP и DEPT, във файл, наречен EMP.DMP в директория, идентифицирана от DATA_PUMP_DIR.

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 за изпълнение от страна на клиента“

DataPump, както PL/SQL API, така и помощната програма на ОС, пишат в директории на Oracle. Директорията на Oracle трябва да представлява директория на OS, която е видима за базата данни. Обикновено това е директория на сървъра, въпреки че предполагам, че теоретично е възможно да се насочи компютърно устройство към мрежата. Ще трябва да убедите мрежовия си администратор, че това е добра идея, трудно се продава, защото не е...

По-старите IMP и EXP помощни програми четат и записват от клиентски директории, така че теоретично е възможно да се IMP файл за локален дъмп в отдалечена база данни. Но не мисля, че това е практически подход. По своето естество дъмп файловете обикновено са големи, така че импортирането в мрежа е бавно и податливо на неуспех. Много по-добро решение е да архивирате дъмп файла, да го копирате на сървъра и да го импортирате от там.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Многократно вмъкване на SQL оракул

  2. ORA-01618

  3. Как да настроите или тествате производителността на PLSQL кода в Oracle D2k Forms

  4. Oracle:има ли значение редът на колоните в индекс?

  5. Поправете „Приложението „SQLDeveloper.app“ не може да бъде отворено.“