ORA-02199: отсутствует предложение DATAFILE / TEMPFILE - PullRequest
0 голосов
/ 08 мая 2018

Я экспортировал базу данных, и она создала для меня файл sql с create и insert, но я получаю сообщение об ошибке ORA-02199: missing DATAFILE/TEMPFILE clause

in sql plus Я запускаю сценарий sql и получаю кучу ORA-00942: table or view does not exist Затем я заметил, что когда он создает таблицу, он имеет TABLESPACE "LOCALDEV" ; Поэтому я ввожу CREATE tablespace LOCALDEV

До всего, что я ввожу create user localdev identified by localdev;

и

grant ALTER SESSION, CREATE SESSION, CREATE DATABASE LINK, CREATE MATERIALIZED VIEW, CREATE PROCEDURE, CREATE PUBLIC SYNONYM, CREATE ROLE,CREATE SEQUENCE, CREATE SYNONYM, CREATE TABLE, CREATE TRIGGER, CREATE TYPE, CREATE VIEW, UNLIMITED TABLESPACE to localdev;

SQL> создать файл данных localdev для табличного пространства '/u01/app/localdev.dbf' размер 100м;

ERROR at line 1:
ORA-01119: error in creating database file '/u01/app/localdev.dbf'
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 13: Permission denied
Additional information

: 1

Я не получаю сообщение об ошибке, пока не запускаю скрипт sql. Если бы у меня был BDA, чтобы спросить, я бы не Любые советы будут с благодарностью.

1 Ответ

0 голосов
/ 08 мая 2018

Я экспортировал базу данных, и она создала для меня файл sql с помощью create и вставить, но я получаю сообщение об ошибке: ORA-02199: отсутствует DATAFILE / TEMPFILE пункт (бла бла бла)

По-моему, самый первый шаг, который вы сделали, был неверным. Если вы хотите экспортировать"базу данных" (я предполагаю, что это, на самом деле, "схема" (то есть "пользователь")), то вам следовало бы это сделать. Oracle предлагает Data Pump утилиты, экспорт и импорт.

Если вы выполнили экспорт, вы бы взяли файл DMP с собой и импортировали его в другую базу данных, используя насос для импорта данных с параметром REMAP_TABLLESPACE, который принимает два значения: старое, «исходное» табличное пространство и новое, « целевое табличное пространство, разделенное двоеточием. Например:

impdp scott/tiger@new_database REMAP_TABLESPACE=localdev:users DIRECTORY=dump_dir DUMPFILE=scott.dmp 

В качестве альтернативы , поскольку в настоящее время у вас есть текстовый файл, содержащий операторы CREATE & INSERT, почему вы не открыли его в каком-либо текстовом редакторе и заменил старый имя табличного пространства (localdev) с именем табличного пространства, используемым в вашей новой базе данных (в моем примере IMPDP это было бы "пользователи")?

Это занимает несколько секунд, вы запускаете его, все создается, и вам не нужно заново изобретать колесо, выполняя все, что вы делали после первого предложения (это будет bla bla part).

...