Es muy frecuente para quienes están empezando a usar Firebird que no sepan cuando deben usar los dos puntos delante del nombre de las variables o parámetros.

La regla es la siguiente:

  • Si las variables o parámetros están siendo usados dentro del contexto del stored procedure (o sea en una asignación o en una comparación), no se usan los dos puntos. En cambio, cuando la variable o el parámetro aparecen en un comando SELECT, INSERT, DELETE, UPDATE o en la llamada a otro stored procedure sí se deben usar los dos puntos.
-- Aquí no se usan los dos puntos, porque es una comparación
IF (MiNumero1 > MiNumero2) THEN

-- Aquí sí se deben usar los dos puntos
 SELECT
    COLUMNA1,
    COLUMNA2
FROM
    MiTabla
INTO
    :MiVariable1,
    :MiVariable2 ;

-- Aquí sí se deben usar los dos puntos
EXECUTE PROCEDURE MiStoredProcedure(:MiNumero1, :MiNumero2);