Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Illegal SPL Routine Entry / 6 сообщений из 6, страница 1 из 1
27.12.2006, 13:28
    #34227782
standalone
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
Добрый день,господа! Есть IDS 9.21.UC4 на Unixware 7.1.3. При попытке сделать dbschema -d dbase, вылетает с ошибкой: Illegal SPL Routine Entry. Как вычислить процедуру или функцию, из-за которой это происходит?
...
Рейтинг: 0 / 0
27.12.2006, 14:22
    #34227993
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
Код: plaintext
select 'dbschema -d dbase -t '||tabname from systables where tabid> 99 
...
Рейтинг: 0 / 0
27.12.2006, 14:56
    #34228139
standalone
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
Cкрипт, насколько я понял, делает dbschemы всех таблиц БД, не трогая процедур и прочего???Или я не правильно понял?=) Дело в том что dbexport, который делается каждую ночь, тоже вылетает с той же ошибкой...
...
Рейтинг: 0 / 0
27.12.2006, 15:03
    #34228172
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
standaloneCкрипт, насколько я понял, делает dbschemы всех таблиц БД, не трогая процедур и прочего???Или я не правильно понял?=) Дело в том что dbexport, который делается каждую ночь, тоже вылетает с той же ошибкой...Это не решение, это пинок в нужном направлении.
Код: plaintext
select select 'dbschema -d dbase -p '||procname from sysprocedures WHERE mode not in ('P','o','r','d','p')
...
Рейтинг: 0 / 0
27.12.2006, 15:09
    #34228190
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
standaloneДобрый день,господа! Есть IDS 9.21.UC4 на Unixware 7.1.3. При попытке сделать dbschema -d dbase, вылетает с ошибкой: Illegal SPL Routine Entry. Как вычислить процедуру или функцию, из-за которой это происходит?
Помню, что ранее такая ошибка периодически мучила наших программеров, особенно тех, кто использовал делфийский SQL explorer, т.к. при модификации процедуры вначале автоматом всегда
вставляется первая строка drop procedure и если ее вовремя не закоментировать и она попадет в текст созданной процедуры, то именно тогда и появляется невозможность выгрузки такой процедуры. В принципе, у меня даже был стандартный запрос на эту тему procbody_dropproc.sql
-------------------------------------------------------------
-- Find procedure with wrong text proc body (drop procedure)
-- resolve dbexport error - 'Illegal Stored Procedure Entry'
--
-- V.Shulzhenko DBA_Tools
-------------------------------------------------------------
select p.procname
,p.owner
,p.procid
,b.seqno
,b.data
from sysprocedures p,sysprocbody b
WHERE b.datakey = 'T'
and p.procid =b.procid
and b.data matches '*drop procedure*'
and b.data not matches '*--drop procedure*'
order by 1,2,3,4

А в своих архивах я нашел ответ Daugava 5-летней давности на эту тему:
=======================
"Andrey Kotlyarenko" <isiit@isiit.mns.gov.ua>; wrote:

>dbschema -d databasename -f all даёт ошибку Illegal SPL Routine Entry.
>А базу нужно срочно перенести на другую машину. Что можно сделать ?
Стало проще.
Проблема возникает со всеми процедурами или с какой-нибудь одной?
Рекомендую порыться на google (http://groups.google.com/groups?q=dbschema+informix+Illegal&hl=en).
Из своего опыта могу сказать, что проблема может быть в каком-нибудь "левом" символе от которого у dbschem-ы едет крыша, символы могут меняться от версии к версии и поиск виновного весьма неприятен.
Art S. Kagel в таких случаях рекомендует пользоваться его утилитой myschema.ec из пакета utils2_ak (брать на www.iiug.org). Данный способ работает в случае, если тест процедуры доступен (например его видно через dbaccess).

В CDI (comp.databases.informix) я также нашел еще одно сообщение:
This is probably because after installing the SPs the programmer (or the software vendor) removed the source
(delete from sysprocbody where datakey = "T" and procid > 1) from the database.
This would lead to the "illegal stored procedure" error from dbaccess
Если это так, то базу перенести через текст тебе не удастся :-(.

Regards, Igor.
...
Рейтинг: 0 / 0
27.12.2006, 15:20
    #34228230
standalone
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Illegal SPL Routine Entry
Спасибо, пинок был куда надо!=)
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Illegal SPL Routine Entry / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]