11.11.2020 01:12
MrSTEP
 
Здравствуйте! У нас в супермаге есть один заказной отчет в формате .rep, который работает на движке Oracle Reports. Сейчас на одном из магазинов никак не могу его запустить. Сперва при запуске появлялось окно с запросом логина-пароля-БД для подключения, хотя сам RBE писал ошибку про неверный параметр NLS_LANG. Её кое-как поборол, но появилась другая:
Код:
Запускается отчет R_TOVR~2 [Wed Nov 11 00:57:19 2020] ...
ORA-00942: таблица или представление пользователя не существует
SELECT l.name storename,to_char(null) opname, to_number(null) optype, to_char(null) GR3, to_char(null) GR3_INN, 
to_char(null) clientname, to_char(null) clientINN, to_char(null) GR_DOC, to_char(null) id, to_date(null), 0,round(sum(nvl(m.quantity,0)),:
Конец отчета R_TOVR~2 [Wed Nov 11 00:57:25 2020].
Нажмите на изображение для увеличения
Название: 16 rbe.PNG
Просмотров: 19
Размер:	15.6 Кб
ID:	11139
И с ней я уже справиться не могу. Перепробовал наверно все, что знаю на этот счет - файлы tnsnames, пути в переменной path (первый клиент, потом сервер, потом отчеты и сам Супермаг), поставил .NET FX проверенной версии 4.6.2 - все без толку.

Немного предыстории: ранее этот сервер крутил базу магазина, вместе с этим же отчетом. На сервере стояли компоненты Reports, Client, Database 11.2.0.1 x32 (на системе х64 Win7 Pro SP1). В прошлом году магазин закрылся. В этом году его собрались открыть на новом адресе, и перед созданием новой БД я удалил Database 11.2.0.1 x32 и установил 11.2.0.4 x64. И вроде бы все хорошо и красиво, но кроме этого отчета (который очень нужен). Подскажите, куда еще можно копнуть?
11.11.2020 07:47
OlegON
 
запрос неполный, а в полном будет видна таблица, которой нет в новой базе.
полагаю, что либо версия супермага изменилась, либо какой-то инсталляционный скрипт не прогнали, либо, наконец, права не дали...
для проверки последнего можешь запустить отчёт из под пользователя supermag
11.11.2020 10:49
MrSTEP
 
Однако да, под юзером supermag отчет сформировался. Правда, изначально не было прав на раздел Отчеты, но я нарезал. Проверил свои права - в модуле Отчеты все разрешено, модуль Пользовательские отчеты тоже доступен, но в нем ничего нет.

Что касается установочного скрипта, там ничего необычного.
SQL код:
update SMReps set REPFILE='r_tovrep_zakupprice.rep', [B]REPDRIVER='0'[/B]
where ID=1248;
COMMIT
При этом REPDRIVER я уже сам дописал.

А как можно посмотреть полный запрос, чтобы увидеть таблицу?
11.11.2020 12:28
OlegON
 
Цитата:
MrSTEP А как можно посмотреть полный запрос, чтобы увидеть таблицу?
посмотреть содержимое самого файла отчета не помогает?
11.11.2020 13:07
MrSTEP
 
Помогло, однако... Из Notepad++ даже можно кое-что прочитать
SQL код:
SELECT l.name storename,o.name || ' ' || u.title opname,decode(d.LocationTo,l.id,0,1optype,c.name GR3,c.INN||' ' GR3_INNdecode(d.clientindex,null,l.name,c.nameclientname,c.INN ClientINN,d.id || to_char(d.createdat,'YYYYMMDD'GR_DOC,d.idd.createdat,10 vatrate,(s.quantityqty,(s.totalsum*s.quantitysum_doc,(s.totalvat*s.quantityvat_doc,(s.totalsumtotalsum,(s.totalvat*10vat,(s.quantity+1qty_pack,(s.totalsum*s.quantity+1sum_doc_pack,(s.totalvat*s.quantity+1vat_doc_pack,(s.totalsum+1totalsum_pack,(s.totalvat*10+1vat_pack FROM  supermag.SMStoreLocations l,supermag.SMClientInfo c,supermag.ffspec ssupermag.ffdocuments d,supermag.saoperation o,supermag.smuserop u where 1=0(далее непереводимая игра иероглифов)   aЁ 
      ь 
Проверил все перечисленные здесь таблицы, все в наличии. Подключился к базе под собой, таблиц и представлений нет, вообще. Впрочем, в других базах, созданных бывшими коллегами, таблиц и представлений под моей учеткой так же не видно.
11.11.2020 13:10
OlegON
 
Наличие - это одно. Я говорил еще и про права на таблицы.
11.11.2020 13:31
MrSTEP
 
Но как мне их проверить? Нажал ПКМ на таблице FFSPEC, выбрал Редактировать привелегии. Открылось окно с пользователями, далее - Привелегий недостаточно. Мне вообще надо сюда залазить, или искать где-то еще?
Миниатюры
Нажмите на изображение для увеличения
Название: прив.PNG
Просмотров: 16
Размер:	42.3 Кб
ID:	11141  
11.11.2020 16:27
vdm
 
Туда лезть не надо. Под своим юзером незачем искать объекты супермага. Права на объекты назначаются на роли, а роли юзера супермаг подключает динамически при старте сессии.

Можно сравнить список прав на таблицы запроса,
в базе где он работает и где не работает.
Примерно так (под supermag):
SQL код:
SELECT p.table_name,
       
p.privilege,
       
r.role
  FROM all_tab_privs p
,
       
dba_roles r
 WHERE p
.grantee r.role
   
AND p.table_name in ('SMSTORELOCATIONS','SMCLIENTINFO','FFSPEC','FFDOCUMENTS','SAOPERATION','SMUSEROP')
 
ORDER BY table_nameroleprivilege
Где не хватает - выдать соответствующий grant.

Только не факт, что реальный запрос соответствует тому, что ты видишь в файле. Даже гарантированно не соответствует. В реальном запросе могут появиться другие таблицы, или например функции, на которые тоже нужны права. В тяжелом случае придется трейсить сессию.
12.11.2020 15:59
MrSTEP
 
Цитата:
vdm Можно сравнить список прав на таблицы запроса,
в базе где он работает и где не работает.
Сравнил. В рабочей базе отобралось 174 записи, в новой - 131. Сопоставил их в экселе на всякий случай, вот фрагмент:
Нажмите на изображение для увеличения
Название: фрагм.PNG
Просмотров: 20
Размер:	35.1 Кб
ID:	11143
Приведите пример правильного запроса на выдачу грантов, пожалуйста.
12.11.2020 16:04
MrSTEP
 
Посмотрел еще на одном магазине, втором по свежести, там 136 записей.
Часовой пояс GMT +3, время: 06:21.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.