복붙노트

[SQL] 어떻게 PSQL 출력에서 ​​숨기기 결과 세트 장식에

SQL

어떻게 PSQL 출력에서 ​​숨기기 결과 세트 장식에

당신은 어떻게 psql 프로그램의 출력에서 ​​열 이름과 행 수를 숨길 수 있습니까?

나는와 psql를 통해 SQL 쿼리를 실행 해요 :

psql --user=myuser -d mydb --output=result.txt -c "SELECT * FROM mytable;"

나는 출력을 같이 기대하고 있습니다 :

1,abc
2,def
3,xyz

대신 내가 얻을 :

id,text
-------
1,abc
2,def
3,xyz
(3 rows)

물론, 그것은 사실 후에 상단 두 개의 행과 아래 행을 필터링하는 것은 불가능 아니지만,이 방법은 psql를 함께 할 수 있나요? 그 맨 위에 읽는, 나는 외부 출력을 숨기는 필드 구분 기호를 제어하기위한 옵션,하지만 아무것도를 참조하십시오.

해결법

  1. ==============================

    1.당신은 -t 또는 --tuples 전용 옵션을 사용할 수 있습니다 :

    당신은 -t 또는 --tuples 전용 옵션을 사용할 수 있습니다 :

    psql --user=myuser -d mydb --output=result.txt -t -c "SELECT * FROM mytable;"

    (년 이상 이상) 추가 수정 됨 :

    또한 COPY 명령을 확인 할 수 있습니다. 나는 더 이상으로 시험에 편리한 어떤 PostgreSQL의 인스턴스가없는,하지만 난 당신이 라인을 따라 뭔가를 쓸 수 있다고 생각합니다 :

    psql --user=myuser -d mydb -c "COPY mytable TO 'result.txt' DELIMITER ','"

    (그 이외에는의 Result.txt 절대 경로 될 필요가있다). 복사 명령은 더 지능 CSV 형식을 지원; 그 설명서를 참조하십시오.

  2. ==============================

    2.또한 psql 프로그램 내에서 출력을 리디렉션과 같은 옵션을 사용할 수 있습니다. 사용 \ o를 (단지 행 개수 "바닥 글"을 해제 또는 \ PSET) 만 출력 파일을 설정하고 출력 튜플 \ t합니다.

    또한 psql 프로그램 내에서 출력을 리디렉션과 같은 옵션을 사용할 수 있습니다. 사용 \ o를 (단지 행 개수 "바닥 글"을 해제 또는 \ PSET) 만 출력 파일을 설정하고 출력 튜플 \ t합니다.

    \o /home/flynn/queryout.txt
    \t on
    SELECT * FROM a_table;
    \t off
    \o
    

    또한,

    \o /home/flynn/queryout.txt
    \pset footer off
    . . .
    
  3. ==============================

    3.당신은 psql의 생성 된 출력을 구문 분석 할 때 보통은 -A 및 -F를 설정할 것입니다 ...

    당신은 psql의 생성 된 출력을 구문 분석 할 때 보통은 -A 및 -F를 설정할 것입니다 ...

        # generate t.col1, t.col2, t.col3 ...
        while read -r c; do test -z "$c" || echo  , $table_name.$c  | \
           perl -ne 's/\n//gm;print' ; \
           done < <(cat << EOF | PGPASSWORD=${postgres_db_useradmin_pw:-} \
           psql -A -F  -v -q -t -X -w -U \
           ${postgres_db_useradmin:-} --port $postgres_db_port --host $postgres_db_host -d \
           $postgres_db_name -v table_name=${table_name:-}
        SELECT column_name
        FROM information_schema.columns
        WHERE 1=1
        AND table_schema = 'public'
        AND table_name   =:'table_name'  ;
        EOF
        )
        echo -e "\n\n"
    

    당신은 여기에 전체 bash는 호출의 예를 찾을 수있다 :

  4. from https://stackoverflow.com/questions/9934264/how-to-hide-result-set-decoration-in-psql-output by cc-by-sa and MIT license