Tengo una tabla con el siguiente esquema

COLUMN_NAME, ORDINAL_POSITION,…., NUMERIC_PRECISION_INTEGER
«año»;1;»»;»SÍ»;»numérico»;;;17;10;17
«month_num»;2;»»;»SÍ»;»numérico»;;;17;10;17
«month_name»;3;»»;»SÍ»;»texto»; 1073741824;;;
«week_of_month»;4;»»;»SÍ»;»numérico»;;;17;10;17
«count_of_contracts»;5;»»;»SÍ»;»bigint»;;;64;2;0

pero cuando inserto el siguiente en que

insert into contract_fact values(2011, 8, 'Aug', 1, 367)  

Aparece el siguiente error

De ERROR: campo numérico de desbordamiento
SQL estado: 22003
Detalle: Un campo con precisión 17, escala de 17 años deben redondear a un valor absoluto menor que 1.

Este no es un esquema, pero un volcado de algunos internos postgres tabla. Si usted podría tener la cortesía de producir algo legible, como la salida de \d <tablename> o la instrucción CREATE TABLE que se utilizó para crear esta tabla (pgAdmin3 puede ayudar con esto)? También, un campo declarado numérico(X,Y) puede utilizar hasta X los lugares, Y los decimales a la derecha de la coma. Lo que significa que si X=Y sólo puede almacenar los valores de < 1.
También, por favor incluya la lista de columnas en las plantillas, en función de cualquier orden de las columnas es una mala idea.

OriginalEl autor daydreamer | 2011-09-07

2 Comentarios

  1. 57

    Parece que usted tiene su year y week_of_month columnas definidas como numeric(17,17), lo que significa 17 dígitos, de los cuales 17 están detrás de la coma decimal. Por lo que el valor debe estar entre 0 y 1. Usted probablemente significaba numeric(17,0), o tal vez usted debe utilizar un tipo entero.

    +1, buen partido a pesar de la caótica formato

    OriginalEl autor Peter Eisentraut

  2. 0

    He tenido un problema similar, incluso sin haber establecido un límite superior.
    Si esto le sucede a usted, usted puede ser que desee ver en el mundial de PostgreSQL límites aquí: https://www.postgresql.org/docs/9.6/static/datatype-numeric.html

    Por ejemplo de marca de tiempo son de un tipo BIGINT con un límite de 9223372036854775807 así que puede que desee validar que el entero de su fallecimiento en su consulta está por debajo de ese valor.

    OriginalEl autor Natim

Dejar respuesta

Please enter your comment!
Please enter your name here