Я хочу экспортировать схему, используя expdp со следующим SQL-оператором -> ORA-39001 - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу экспортировать схему базы данных со следующим SQL-оператором.На данный момент я использую SQLDeveloper.В будущем я хочу использовать это заявление с Java.

DECLARE
  schemaName    VARCHAR2(200) := 'Example';
  dirName       VARCHAR2(200) := '/dir/exampleDir';
  dumpFile      VARCHAR2(200) := 'TestFile.dmp';
  directory     VARCHAR(100)  := 'EXPORT_DIR_' || schemaName;
  handle        NUMBER;
  status        VARCHAR2(20);

BEGIN
  EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY ' || directory || ' AS ''' || dirName || '''';

  handle := DBMS_DATAPUMP.OPEN(
    operation => 'EXPORT',
    job_mode  => 'SCHEMA',
    job_name  => 'TEST_EXPORT_' || schemaName);

  DBMS_DATAPUMP.ADD_FILE(handle, dumpFile, directory);

  DBMS_DATAPUMP.METADATA_FILTER(
    handle => handle,
    name   => 'SCHEMA_EXPR',
    value  => 'IN (' || schemaName || ')');

  DBMS_DATAPUMP.START_JOB(handle);
  DBMS_DATAPUMP.WAIT_FOR_JOB(handle, status);

  EXECUTE IMMEDIATE 'DROP DIRECTORY ' || directory;

END;

Я получаю сообщение об ошибке "ORA-39001"

Может кто-нибудь помочь мне, пожалуйста?Я не знаю, как я могу решить эту проблему.Я прочитал любую информацию об этой ошибке массажа.Проблема в каталоге или в чем?Я был бы очень благодарен, если бы вы могли мне помочь.Я сожалею о моих плохих знаниях английского языка.

1 Ответ

0 голосов
/ 24 апреля 2018

Большое спасибо.

также '' / dir / exampleDir '- я не думаю, что это допустимое имя Oracle DIRECTORY.Каталог оракула - это объект db, который ссылается на каталог в вашей файловой системе

, это только пример.Я знаю, что oracle Directory - это объект db, который ссылается на каталог в файловой системе.Но каталог в моем операторе sql и каталог в файловой системе совпадают.

...