Hola Marcos.
Para listar todas las claves foráneas, proba de este modo:
Código SQL
[-]
SELECT RC.RDB$CONSTRAINT_NAME AS CONSTRAINT_NAME,
I.RDB$RELATION_NAME AS TABLE_NAME,
S.RDB$FIELD_NAME AS FIELD_NAME,
I.RDB$DESCRIPTION AS DESCRIPTION,
RC.RDB$DEFERRABLE AS IS_DEFERRABLE,
RC.RDB$INITIALLY_DEFERRED AS IS_DEFERRED,
REFC.RDB$UPDATE_RULE AS ON_UPDATE,
REFC.RDB$DELETE_RULE AS ON_DELETE,
REFC.RDB$MATCH_OPTION AS MATCH_TYPE,
I2.RDB$RELATION_NAME AS REFERENCES_TABLE,
S2.RDB$FIELD_NAME AS REFERENCES_FIELD,
S.RDB$FIELD_POSITION + 1 AS FIELD_POSITION
FROM RDB$INDEX_SEGMENTS S
LEFT JOIN RDB$INDICES I ON I.RDB$INDEX_NAME = S.RDB$INDEX_NAME
LEFT JOIN RDB$RELATION_CONSTRAINTS RC ON RC.RDB$INDEX_NAME = S.RDB$INDEX_NAME
LEFT JOIN RDB$REF_CONSTRAINTS REFC ON RC.RDB$CONSTRAINT_NAME = REFC.RDB$CONSTRAINT_NAME
LEFT JOIN RDB$RELATION_CONSTRAINTS RC2 ON RC2.RDB$CONSTRAINT_NAME = REFC.RDB$CONST_NAME_UQ
LEFT JOIN RDB$INDICES I2 ON I2.RDB$INDEX_NAME = RC2.RDB$INDEX_NAME
LEFT JOIN RDB$INDEX_SEGMENTS S2 ON I2.RDB$INDEX_NAME = S2.RDB$INDEX_NAME
WHERE RC.RDB$CONSTRAINT_TYPE = 'FOREIGN KEY'
ORDER BY S.RDB$FIELD_POSITION
Saludos.