获取存储过程参数的类型

o..*_*..o 2 firebird types stored-procedures

我需要在Firebird数据库中读取存储过程的参数类型.

我能够读出他们的名字,如果他们是输入或输出参数,但我在哪里可以得到他们的类型?或者你是如何解决这个问题的?

Gab*_*eid 8

您需要使用RDB$PROCEDURE_PARAMETERSRDB$FIELDS视图的组合,如下所示:

SELECT rdb$procedure_name, rdb$procedure_parameters.rdb$parameter_name, 
    rdb$fields.rdb$field_name, rdb$fields.rdb$field_type 
FROM rdb$procedure_parameters, rdb$fields 
WHERE rdb$fields.rdb$field_name = rdb$procedure_parameters.rdb$field_source
Run Code Online (Sandbox Code Playgroud)

RDB $ FIELDS中的字段类型值定义如下:

BLOB - 261
CHAR - 14
CSTRING - 40
D_FLOAT - 11
DOUBLE - 27
FLOAT - 10
INT64 - 16
INTEGER - 8
QUAD - 9
SMALLINT - 7
DATE - 12
TIME - 13
TIMESTAMP - 35
VARCHAR - 37

有关这些类型定义的详细信息,请参阅Interbase语言参考.