Страница 1 из 2

Добавление новой таблицы

Добавлено: 07 мар 2012, 11:43
Руслан
Хотел добавить таблицу в словарь данных Галактики. Отключил журнализацию, затранкейтил журнальные таблицы, отключил протект, попытался скомпилировать следующий код:

Код: Выделить всё

Alter Dictionary;
create table D_USER.formlogs "Учет информации о запусках отчетов"
with table_Code = 32507
with replace
with tableOptions header, journal
(
FORMID : double "Идентификатор отчета",
FORMTYPEID: double "Тип отчета",
EXECID : string "Уникальный ID отчета",
REPPARAMETR:  string "Дополнительный параметр",
EVENTS:string "Описание события"
)
with index
(
formlogs01 = formid,
formlogs02 = formtypeid,
formlogs03 = execid,
formlogs04 = events,
formlogs05 = formtypeid+events
formlogs06 = repparametr
) ;
!UPDATE x$files WHERE xf$code = 33001 SET xf$checksum = 0;
Компиляция прошла с ошибками:
07.03.2012 08:29:23 []:

SELECT XF$FLAGS FROM GAL810."X$FILES" WHERE XF$CODE=0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT T0.ATL_LASTDATE,T0.ATL_LASTTIME,RAWTOHEX(T0.NAME),T0.OFFICENO,T1.ATL_LASTDATE,T1.ATL_LASTTIME,T1.PROTECTON,T1.TYPEREGEVENTS, RAWTOHEX(T1.NAME) FROM GAL810."X$JOURNALCONFIG" T0,GAL810."ABONENTS" T1 WHERE T0.OFFICENO = T1.OFFICENO AND ROWNUM < 2
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT XF$FLAGS FROM GAL810."X$FILES" WHERE XF$CODE = 0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT XF$NAME FROM GAL810."X$FILES" WHERE XF$CODE=0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

Fetch
ORA-24338: statement handle not executed

07.03.2012 08:29:23 []:

SELECT XU$FLAG FROM GAL810."X$USERS" WHERE XU$USEROFFICE = 0 AND XU$LOGINNAME$UP = 'GORNASHEVICHRA'
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT TABLESPACE_NAME FROM DBA_TS_QUOTAS WHERE USERNAME = 'GAL810'
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

Fetch
ORA-24338: statement handle not executed

07.03.2012 08:29:23 []:

BEGIN GAL810."EXECUTE"(:P1); END;
ORA-06550: line 1, column 7:
PLS-00201: identifier 'GAL810.EXECUTE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

---Bind variable values---
:P1 ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL
--------------------------

07.03.2012 08:29:23 []:

ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL
ORA-06550: line 1, column 7:
PLS-00201: identifier 'GAL810.EXECUTE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

---Bind variable values---
:P1 ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL
--------------------------

При попытке запуска саппорта вылетает ошибка:
Невозможно присоединиться к серверу БД. Подробности в ORA90DRV.LOG !
Ошибка соединения с БД !
Ошибка открытия словаря базы данных. [345]

В логе пишет ту же ошибку, что и при компиляции.
База данных ORACLE 10

Re: Добавление новой таблицы

Добавлено: 07 мар 2012, 16:08
Masygreen
1)поробуйте её грохнуть

Код: Выделить всё

alter dictionary;
drop table ваша таблица;
как вариант без alter dictionary;

2) в ручную в Ora удалите таблицу

3)

Код: Выделить всё

UPDATE X$FILES WHERE XF$CODE = 0 SET XF$CheckSum = 0;

Re: Добавление новой таблицы

Добавлено: 07 мар 2012, 16:40
Руслан
Masygreen, в том то и дело, что эта таблица не создалась в базе. Компиляция
прошла с ошибками (лог смотри выше). Те таблицы, которые он якобы не видит, на самом деле через DEVELOPER я их вижу, на базу даны права DBA. Проблема теперь в том, что не могу саппорт запустить, (не может найти базу и ошибка открытия словаря данных) хотя в tnsnames.ora все прописано правильно.

Re: Добавление новой таблицы

Добавлено: 07 мар 2012, 19:19
vasya_serega
В логе при запуске саппорта ошибки
ORA-00942: table or view does not exist ?

А можно текст ORA90DRV.LOG ?

Re: Добавление новой таблицы

Добавлено: 08 мар 2012, 16:13
Masygreen
чтоб зайти в саппрорт грохните предварительно эту таблицу описанным способом, после этого пытайтесь создать таблицу верно .. чеки всякие прогоните, скрипты проверте (имя таблицы, описание таблицы, права )

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 12:45
Руслан
Вот лог, не находит таблицы
07.03.2012 08:29:23 []:

SELECT XF$FLAGS FROM GAL810."X$FILES" WHERE XF$CODE=0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT T0.ATL_LASTDATE,T0.ATL_LASTTIME,RAWTOHEX(T0.NAME),T0.OFFICENO,T1.ATL_LASTDATE,T1.ATL_LASTTIME,T1.PROTECTON,T1.TYPEREGEVENTS, RAWTOHEX(T1.NAME) FROM GAL810."X$JOURNALCONFIG" T0,GAL810."ABONENTS" T1 WHERE T0.OFFICENO = T1.OFFICENO AND ROWNUM < 2
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT XF$FLAGS FROM GAL810."X$FILES" WHERE XF$CODE = 0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT XF$NAME FROM GAL810."X$FILES" WHERE XF$CODE=0
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

Fetch
ORA-24338: statement handle not executed

07.03.2012 08:29:23 []:

SELECT XU$FLAG FROM GAL810."X$USERS" WHERE XU$USEROFFICE = 0 AND XU$LOGINNAME$UP = 'GORNASHEVICHRA'
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

SELECT TABLESPACE_NAME FROM DBA_TS_QUOTAS WHERE USERNAME = 'GAL810'
ORA-00942: table or view does not exist

07.03.2012 08:29:23 []:

Fetch
ORA-24338: statement handle not executed

07.03.2012 08:29:23 []:

BEGIN GAL810."EXECUTE"(:P1); END;
ORA-06550: line 1, column 7:
PLS-00201: identifier 'GAL810.EXECUTE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

---Bind variable values---
1 ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL
--------------------------

07.03.2012 08:29:23 []:

ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL
ORA-06550: line 1, column 7:
PLS-00201: identifier 'GAL810.EXECUTE' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

---Bind variable values---
1 ALTER USER "GORNASHEVICHRA" DEFAULT ROLE ALL

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 12:46
Руслан
Masygreen
, а есть последовательность действий, как правильно докомполить словарь данных???

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 17:37
edward_K
1. Для ваших таблиц Alter Dictionary; не нужен.
просто в сапорте sql выполняете типа

Код: Выделить всё

Create Table D_USER.Partyprice "Цены по партиям"
  With Table_CODE = 32762
  With TableOptions header, journal
(
   cparty         : comp   "Партия"
  ,cpodr          : comp   "Подразделение"
  ,price          : double "цена"
)
with index
(
  in1 = cparty
 ,in2 = cparty+cpodr
);
и все
2. Посмотрите alter_zar

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 18:36
Руслан
edward_K, саппорт не запускается после попытки докомпилить словарь (лог см. выше).
А если компилить без ALTER DICTIONARY, то выкидывает ошибку, что нужно указать словарь, куда помещать таблицу. Из-за чего такая лажа???

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 18:58
edward_K
Пытались докомпилить через сапорт?
Не запускается только сапорт или остальное тоже?
Интересно чего вы там транкейтили. Можно попробовать перенести x$files c другой базы.

Re: Добавление новой таблицы

Добавлено: 09 мар 2012, 19:33
Руслан
Компилил через vip. Транкейтил журналы. Сама Галактика тоже не запускается,
пишет, что неправильно указан путь на временную директорию и т.д.

Re: Добавление новой таблицы

Добавлено: 10 мар 2012, 17:57
vasya_serega
SELECT XF$FLAGS FROM GAL810."X$FILES" WHERE XF$CODE=0
ORA-00942: table or view does not exist

SELECT T0.ATL_LASTDATE,T0.ATL_LASTTIME,RAWTOHEX(T0.NAME),T0.OFFICENO,T1.ATL_LASTDATE,T1.ATL_LASTTIME,T1.PROTECTON,T1.TYPEREGEVENTS, RAWTOHEX(T1.NAME) FROM GAL810."X$JOURNALCONFIG" T0,GAL810."ABONENTS" T1 WHERE T0.OFFICENO = T1.OFFICENO AND ROWNUM < 2
ORA-00942: table or view does not exist

После всех ваших манипуляций таблицы еще в базе хоть есть? Зайдите тоадом или чем-нибудь подобным и посмотрите, что там делается в базе

Re: Добавление новой таблицы

Добавлено: 10 мар 2012, 18:20
Руслан
В том то и дело, что девелопером напрямую к базе все эти запросы выполняются, все таблицы видит.

Re: Добавление новой таблицы

Добавлено: 10 мар 2012, 18:26
vasya_serega
А вы каким пользователем девелопером коннектитесь? Тем же, из под которого Галактику пытаетесь запустить?

Re: Добавление новой таблицы

Добавлено: 10 мар 2012, 18:58
Руслан
vasya_serega , да