Мы используем SQL менеджер для interbase-firebird, а также Firebird 3.0.5. Мы создаем процедуру, и она отлично работает.
Однако с того момента, как мы добавили переменную psql в процедуру, мы получаем ошибку ниже. Когда мы удаляем переменную, процедура может быть выполнена снова. Ниже добавленной переменной (см. Рисунок ниже).
Declare variable ikke integer;
Сообщение об ошибке гласит:
ИСПОЛЬЗОВАНИЕ GRANT OPTION В ПРОЦЕДУРЕ НЕ РАЗРЕШЕНО.
Подробная информация об ошибке гласит:
GRANT ССЫЛКИ НА «Текст» ДЛЯ ПРОЦЕДУРЫ GETTEXTCONTAINING С GRANT OPTION;
Таким образом, кажется, что при использовании psql переменная Добавлена ссылка из таблицы «ТЕКСТ» на хранимую процедуру, и которая, по-видимому, недопустима.
Итак, это звучит как разрешение вещей. Однако, когда мы даем разрешение на процедуру, области ссылки становятся серыми, поэтому мы не можем дать разрешение, как мы делали на уровне выполнения.
И если мы посмотрим на уровне разрешений в тексте таблицы дается справочное разрешение, однако добавить «разрешение с грантом» (значок руки) невозможно.
Я не знаю, в чем проблема и как ее решить, есть идеи?
ОБНОВЛЕНИЕ 27/02/2012 Если я добавлю тот же код в блок выполнения, это работает хорошо. Есть идеи?
execute block
RETURNS(ID BIGINT, TEXTNAME VARCHAR(1000))
AS
DECLARE ikke VARCHAR(50);
BEGIN
Id = 0;
Textname = '';
ikke = '%a%';
FOR
SELECT "ID", "enUS" FROM "Text" WHERE "enUS" like :ikke INTO :Id, :Textname
DO
BEGIN
SUSPEND;
END
END;
Ниже приведены некоторые дополнительные распечатки ошибок.