2017-12-20 6 views
0

10 진수 값이 1.449043781 인 열이있는 새 테이블을 만들려면 CSV 파일을로드하고 있습니다.숫자 유형에 대한 입력 구문 오류가 잘못되었습니다. V1

여기

CREATE TABLE table (
    v1 float 
); 

포스트 그레스는 값이 부동 경우에도 숫자 유형에 대한 유효하지 않은 입력 구문 오류가 없다는 오류를 뱉어 내 코드입니다. 데이터 형식 선언을 십진법 (15,13)으로 바꾸지 않으려 고 시도했습니다. 내가 여기서 무엇을 놓치고 있니?

입력 해 주셔서 감사합니다.

+1

테이블을로드하는 데 copy 명령을 사용하고 있습니까? 파일에 헤더 행이 있습니까? PostgreSQL으로부터 정확한 메시지를 제공 할 수 있습니까? 각 행의 번호 앞에 파일의 다른 필드가 있습니까? 이 값은 삽입이있는 float로 이동하므로 아무 문제가 없습니다 (단, 6 자리의 정밀도를 유지하려면 데이터 유형이 "배정도"이어야 함). –

+1

오류 메시지는 "v1"문자열을 숫자로 해석하려고한다는 것을 의미합니다. CSV 자체에 열 이름'v1'이 표시된다는 사실은 파일에 머리글 행이 있음을 나타내고,'COPY IN '이이 행을 데이터로 해석하려고한다는 사실은 당신이'HEADER' 옵션을 지정하지 않았 음을 의미합니다 . –

답변

0

가 재생할 수없는 - 사본을 오류없이 9.6에 : 또한

t=# CREATE TABLE t (
    v1 float 
); 
CREATE TABLE 
t=# copy t from stdin; 
Enter data to be copied followed by a newline. 
End with a backslash and a period on a line by itself. 
>> 1.449043781 
>> \. 
COPY 1 
t=# select v1,pg_typeof(v1) from t; 
    v1  | pg_typeof 
-------------+------------------ 
1.449043781 | double precision 
(1 row) 

당신의 오류에서, 당신이 숫자와 테이블을 생성 보인다 떠 없습니다. And they are not the same (모두 1.449043781을 수락합니다)