[firebase-br] VERIFICAR O TIPO DE DADOS DE UMA COLUNA NO FIREBIRD
Marcio Gleyson Silva
sistemsdeveloper em gmail.com
Seg Set 26 12:44:50 -03 2011
CREATE PROCEDURE SP_COLUM_TYPE (LNTABELA VARCHAR(50))
returns (CAMPO VARCHAR(50),
TIPO VARCHAR(50),
STATUS INTEGER)
AS
begin
FOR
SELECT
DISTINCT
CAMPOS.RDB$FIELD_NAME AS CAMPO,
CASE
WHEN
DADOSCAMPO.RDB$FIELD_PRECISION > 0 THEN 'NUMERIC'
WHEN TIPOS.RDB$TYPE_NAME = 'LONG' THEN 'INTEGER'
WHEN TIPOS.RDB$TYPE_NAME = 'SHORT' THEN 'SMALLINT'
WHEN TIPOS.RDB$TYPE_NAME = 'INT64' THEN 'NUMERIC'
WHEN TIPOS.RDB$TYPE_NAME = 'VARYING' THEN 'STRING'
WHEN TIPOS.RDB$TYPE_NAME = 'TEXT' THEN 'CHAR'
WHEN TIPOS.RDB$TYPE_NAME = 'DOUBLE' THEN 'FLOAT'
WHEN TIPOS.RDB$TYPE_NAME = 'FLOAT' THEN 'FLOAT'
WHEN TIPOS.RDB$TYPE_NAME = 'TIMESTAMP' THEN 'DATE'
WHEN TIPOS.RDB$TYPE_NAME = 'DATE' THEN 'DATE'
WHEN TIPOS.RDB$TYPE_NAME = 'BLOB' THEN 'BLOB'
END AS TIPO,
CASE
WHEN
DADOSCAMPO.RDB$FIELD_PRECISION > 0 THEN 2
WHEN TIPOS.RDB$TYPE_NAME = 'LONG' THEN 0
WHEN TIPOS.RDB$TYPE_NAME = 'SHORT' THEN 0
WHEN TIPOS.RDB$TYPE_NAME = 'INT64' THEN 0
WHEN TIPOS.RDB$TYPE_NAME = 'VARYING' THEN 1
WHEN TIPOS.RDB$TYPE_NAME = 'TEXT' THEN 1
WHEN TIPOS.RDB$TYPE_NAME = 'DOUBLE' THEN 2
WHEN TIPOS.RDB$TYPE_NAME = 'FLOAT' THEN 2
WHEN TIPOS.RDB$TYPE_NAME = 'DATE' THEN 3
WHEN TIPOS.RDB$TYPE_NAME = 'TIMESTAMP' THEN 3
WHEN TIPOS.RDB$TYPE_NAME = 'BLOB' THEN 4
END AS STATUS
FROM
RDB$RELATIONS TABELAS, RDB$RELATION_FIELDS CAMPOS, RDB$FIELDS
DADOSCAMPO,
RDB$TYPES TIPOS WHERE TABELAS.RDB$RELATION_NAME = :lnTabela AND
TIPOS.RDB$FIELD_NAME = 'RDB$FIELD_TYPE' AND TABELAS.RDB$RELATION_NAME
=
CAMPOS.RDB$RELATION_NAME AND CAMPOS.RDB$FIELD_SOURCE =
DADOSCAMPO.RDB$FIELD_NAME AND DADOSCAMPO.RDB$FIELD_TYPE =
TIPOS.RDB$TYPE
ORDER BY
CAMPOS.RDB$FIELD_POSITION
/* SELECT * FROM RDB$TYPES */
INTO
:Campo, :Tipo, :Status
DO
BEGIN
SUSPEND;
END
end
Em 26 de setembro de 2011 11:49, Diego Maccari <diegomaccari em ig.com.br>escreveu:
> Bom dia Pessoal
>
> Gostaria de saber se é possível verificar que tipo de dados é uma
> determinada coluna no firebird,
> gostaria de fazer isso no próprio DB alguém saberia me dizer se existe
> alguma forma de fazer isso no FB.
>
> Att
>
> Diego M.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista