Si lo quieres hacer todo dentro de un procedimiento prueba lo siguiente :
Código SQL
[-]begin
//Obtenemos el campo sección como un entero
FOR SELECT Cast(max(seccion) as integer) FROM SECCIONES
WHERE RECTORIA = :c_rectoria and DIVISION = :c_division and DEPARTAMENTO = :c_depto
INTO :c_seccionint DO
begin
//Si es nulo lo inicializamos a 0
if (c_seccionint is null) then
c_seccion = 0;
//Aumentamos el contador
c_seccionint = c_seccionint + 1;
//Pasamos el campo a VarChar(3)
c_seccion = Cast(c_seccionint as VarChar(3))
//Comprobamos que el campo tenga siempre tres caracteres,
//esto lo pongo porque creo que quieres que el campo tenga
//el formato 001 y no 1. Si te vale la forma 1 olvidate del while.
while length(c_seccion) < 3 do
c_seccion = '0' || c_seccion;
//Para finalizar con el campo c_seccion ejecutas la acción que
//desees, un insert, update, ...
end
end
Espero que te sirva
Un saúdo.