获取存储过程的参数的类型
-
22-07-2019 - |
题
我需要读取在火鸟数据库中的存储程序参数的类型。
我能读懂他们的名字,如果他们输入或输出参数,但是我在哪里可以得到他们的类型?或者,你是怎么解决这个问题?
解决方案
您需要使用的RDB$PROCEDURE_PARAMETERS
和RDB$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
在RDB $字段的字段类型值定义如下:
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语言参考关于这些类型定义更多的信息。
其他提示
SELECT rdb$procedure_name,
rdb$procedure_parameters.rdb$parameter_name,
rdb$fields.rdb$field_name,
rdb$fields.rdb$field_type,
CASE rdb$fields.RDB$FIELD_TYPE
WHEN 7 THEN 'SMALLINT'
WHEN 8 THEN 'integer'
WHEN 9 THEN 'QUAD'
WHEN 10 THEN 'FLOAT'
WHEN 11 THEN 'D_FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN 'INT64'
WHEN 27 THEN 'DOUBLE'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
WHEN 40 THEN 'CSTRING'
WHEN 261 THEN 'BLOB'
END AS FIELD_TYPE
FROM rdb$procedure_parameters,
rdb$fields
WHERE rdb$fields.rdb$field_name = rdb$procedure_parameters.rdb$field_source
不隶属于 StackOverflow