문제

Firebird 데이터베이스에서 저장된 절차의 매개 변수 유형을 읽어야합니다.

입력 또는 출력 매개 변수 인 경우 이름을 읽을 수 있지만 유형은 어디에서 얻을 수 있습니까? 아니면 이것을 어떻게 해결합니까?

도움이 되었습니까?

해결책

당신은 그것의 조합을 사용해야합니다 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

이러한 유형 정의에 대한 자세한 내용은 인터베이스 언어 참조를 참조하십시오.

다른 팁

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top