我们正在为 interbase-firebird 和 Firebird 3.0.5 使用 SQL 管理器。我们正在创建一个程序并且工作正常。
但是,从我们将 psql 变量添加到过程中的那一刻起,我们得到以下错误。当我们删除变量时,可以再次执行该过程。在已添加的变量下方(也请参见下图)。
Declare variable ikke integer;
错误消息说:
不允许在程序上使用授予选项。
详细的错误信息说:
授予对“文本”的引用以使用授予选项来处理 GETTEXTCAINING;
因此,似乎通过使用 psql 变量,添加了从表“TEXT”到存储过程的引用,这显然是不允许的。
所以,这听起来像是一个许可的事情。但是,当我们授予该过程的权限时,参考区域是灰色的,因此我们无法授予权限,就像我们在执行级别所做的那样。
如果我们查看表格文本上的权限级别,则会给出参考权限,但是不可能添加“具有授予的权限”(手形图标)。
我不知道问题是什么以及如何解决它,有什么想法吗?
更新 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;
下面是错误的一些附加打印屏幕。