Firebird“列不属于引用表”

时间:2012-10-15 11:21:31

标签: sql firebird

我正在尝试使用ibexpert gui在firebird 2.5上创建我的第一个程序。

该过程将返回属于特定“PROCESS_ID”的“PROCESS_DATE”。我准备了以下代码:

begin
  OUTPUT_DATE = (select PROCESS_DATE from PROCESSES
                 where PROCESS_ID = INPUT_ID);
  suspend;
end

输入参数:'INPUT_ID' - >输入'INTEGER'
输出参数:'OUTPUT_DATE' - >输入'DATE'

但是当我尝试编译它时会返回以下错误:

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
INPUT_ID.
At line 9, column 48.

我不知道如何处理这个错误。

我试图在互联网上找到其他问题的解决方案,但我找不到初学者的基本,可理解的答案。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

试试这个:

CREATE PROCEDURE MyP (INPUT_ID INTEGER)
  RETURNS (OUTPUT_DATE DATE)
AS 
BEGIN
  FOR
    SELECT PROCESS_DATE FROM PROCESSES
    WHERE PROCESS_ID = :INPUT_ID  
    INTO :OUTPUT_DATE
  DO
    SUSPEND;
END

始终在参数名称前加上“:”。唯一不允许“:”的地方位于“=”运算符的左侧。