2025 년 9 월 4 일 :젠 토토 18 RC 1 릴리스!
지원되는 버전 :현재(17) /16 / 15 / 14 / 13
개발 버전 :18 / Devel
지원되지 않는 버전 :12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
이 문서는 지원되지 않는 버전의 젠 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

젠 토토

이름

복사-파일과 테이블 사이의 데이터 복사

시놉시스

젠 토토table_name[(column_name[, ...])]
    에서  'filename' | 프로그램 '명령' | stdin
    [ [ 와 함께 ] (옵션[, ...])]

복사table_name[(column_name[, ...]) | (쿼리)
    에게  'filename' | 프로그램 '명령' | stdout
    [ [ 와 함께 ] (옵션[, ...])여기서옵션중 하나 일 수 있습니다 :형식format_nameoids [부울]
    동결 [부울]
    Delimiter 'delimiter_character'
    NULL 'null_string'
    헤더 [부울]
    인용하다 'QUOTE_CHARACTER'
    탈출하다 'Escape_character'
    force_quote (column_name[, ...]) | *
    force_not_null (column_name[, ...])
    인코딩 'encoding_name'

설명

젠 토토간에 데이터 이동젠 토토표 및 표준 파일 시스템 파일.복사a의 내용을 복사합니다 테이블to파일, while젠 토토 FROM데이터 사본From테이블에 파일 (추가 이미 테이블에있는 모든 것에 대한 데이터).복사 에게a의 결과도 복사 할 수 있습니다select쿼리.

열 목록이 지정된 경우젠 토토지정된 열의 데이터 만 또는 파일. 테이블에없는 열이없는 경우 열 목록,복사삽입 해당 열의 기본값.

젠 토토파일 이름으로 지시젠 토토직접 읽을 수있는 서버 파일에서 쓰거나 쓰십시오. 파일은에 의해 액세스 할 수 있어야합니다.젠 토토사용자 (사용자 ID 서버가 실행되며 이름은 관점에서 지정되어야합니다. 서버의. 언제프로그램지정되어 있습니다. 서버는 주어진 명령을 실행하고 표준에서 읽습니다. 프로그램의 출력 또는 표준 입력에 씁니다. 프로그램. 명령은 서버,에 의해 실행 가능합니다.젠 토토사용자. 언제Stdin또는StdoutIS 지정된 데이터는 클라이언트와 서버.

매개 변수

table_name

기존 테이블의 이름 (선택적으로 스키마 자격).

column_name

복사 할 열의 선택적 목록. 열 목록이없는 경우 지정, 테이블의 모든 열이 복사됩니다.

쿼리

aselect또는결과가있는 명령 복사. 쿼리 주변에는 괄호가 필요합니다.

filename

입력 또는 출력 파일의 경로 이름. 입력 파일 이름 절대적 또는 상대 경로 일 수 있지만 출력 파일 이름은 절대적인 경로가 되십시오. Windows 사용자는를 사용해야 할 수도 있습니다.e ''문자열 및 두 배의 백 슬래시 경로 이름.

프로그램

실행하라는 명령. 안에젠 토토 From, 입력은 명령의 표준 출력에서 ​​읽습니다.복사, 출력은 명령의 표준 입력.

명령이 쉘에 의해 호출되므로 필요한 경우 신뢰할 수없는 쉘 명령에 인수를 전달하십시오. 출처, 당신은 특별한 모든 것을 제거하거나 탈출하도록 조심해야합니다. 쉘에 대한 특별한 의미를 가질 수있는 문자. 을 위한 보안상의 이유, 고정 명령 문자열을 사용하는 것이 가장 좋습니다. 최소한 사용자 입력을 전달하지 마십시오.

Stdin

입력이 클라이언트 응용 프로그램에서 제공되는 것을 지정합니다.

stdout

출력이 클라이언트 응용 프로그램으로 이동하는 것을 지정합니다.

부울

선택한 옵션을 켜야하는지 여부를 지정하거나 끄다. 당신은 쓸 수 있습니다true, on또는1옵션 및false, off또는0비활성화하려면. 그만큼부울값도 가능합니다 생략, 어떤 경우trueIS 꾸민.

형식

읽거나 쓸 수있는 데이터 형식을 선택합니다 :텍스트, CSV(쉼표가 분리되었습니다 값), 또는BINAGE. 기본값은텍스트.

OIDS

각 행의 OID 복사를 지정합니다. (오류가 발생하면OIDS하는 테이블에 대해 지정되어 있습니다 OID가 없거나 복사하는 경우쿼리.)

동결

데이터를 이미 동결 한 행로 데이터 복사 요청과 마찬가지로 를 실행 한 후에있을 것입니다.진공 동결명령. 이것은 초기 데이터의 성능 옵션으로 고안되었습니다. 로딩. 로드 된 테이블에있는 경우에만 행이 얼어 붙습니다. 현재의 하위 트랜잭션에서 생성되거나 잘 렸습니다. 커서가 열리지 않으며 이것에 의해 보관 된 오래된 스냅 샷이 없습니다. 거래.

다른 모든 세션은 즉시 데이터가 성공적으로로드되면 데이터. 이것은 정상을 위반합니다 MVCC 가시성 규칙 및 지정된 사용자는 잠재적 인 문제가 발생할 수 있습니다.

Delimiter

각 행 내 열을 분리하는 문자를 지정합니다 파일의 (라인). 기본값은 텍스트 형식의 탭 문자입니다. 쉼표CSV형식. 이것은이어야합니다 단일 1 바이트 문자. 이 옵션을 사용할 때는이 옵션이 허용되지 않습니다BINAGE형식.

NULL

널 값을 나타내는 문자열을 지정합니다. 기본값 이다\ n17488_17553CSV형식. 너 텍스트 형식으로도 빈 문자열을 선호 할 수 있습니다. 당신은 널을 빈 줄과 구별하고 싶지 않습니다. 이 옵션 사용시 허용되지 않습니다BINAGE형식.

참고 :사용시젠 토토 From이 문자열과 일치하는 데이터 항목은 널 값으로 저장됩니다. 따라서 사용한 것과 동일한 문자열을 사용해야합니다. 와 함께복사.

헤더

파일에 이름이있는 헤더 라인이 포함되어 있음을 지정합니다. 파일의 각 열. 출력시 첫 번째 줄에는 다음을 포함합니다 테이블의 열 이름과 입력시 첫 번째 줄은 무시했습니다. 이 옵션은를 사용할 때만 허용됩니다.CSV형식.

QUOTE

데이터 값이있을 때 사용할 인용 문자를 지정합니다. 인용. 기본값은 이중 인용입니다. 이것은 단일 1 바이트 여야합니다 성격. 이 옵션은를 사용할 때만 허용됩니다.CSV형식.

탈출

데이터 앞에 나타나야하는 문자를 지정합니다 일치하는 캐릭터QUOTE값. 기본값은와 동일합니다.QUOTE값 (따라서 인용 문자가 데이터). 이것은 하나의 1 바이트 문자 여야합니다. 이 옵션은입니다 사용할 때만 허용CSV형식.

Force_quote

모든 비에 대해 사용하도록 인용하는 힘NULL지정된 각 열의 값.NULL출력은 인용되지 않습니다. 만약에*지정되어 있습니다.NULL값은 모든 열에 인용됩니다. 이 옵션은 허용됩니다 안에복사, 그리고 사용할 때만CSV형식.

force_not_null

널에 대한 지정된 열의 값과 일치하지 마십시오. 끈. 널 문자열이 비어있는 기본 케이스에서 빈 값은 오히려 제로 길이 문자열로 읽을 것임을 의미합니다. 인용되지 않은 경우에도 널보다. 이 옵션은 허용됩니다 만젠 토토, 그리고 사용할 때만CSV형식.

인코딩

파일이 인코딩되어 있음을 지정합니다encoding_name. 이 옵션이 생략되면 현재 클라이언트 인코딩이 사용됩니다. 자세한 내용은 아래 메모를 참조하십시오 세부.

출력

성공적인 완료시 A젠 토토명령은 양식의 명령 태그를 반환

젠 토토count

thecount는 행의 수입니다 복사.

노트

젠 토토는 평원과 함께 만 사용할 수 있습니다 보기가 아닌 테이블. 그러나 쓸 수 있습니다젠 토토 (select * fromViewName) to ....

젠 토토특정 테이블 만 처리합니다 이름; 자식 테이블에 데이터를 복사하지 않습니다. 따라서 예젠 토토테이블to동일한 데이터를 보여줍니다.선택 * From Only테이블. 하지만복사 (선택 *에서테이블) to ...상속에 모든 데이터를 덤프하는 데 사용할 수 있습니다. 계층.

값이있는 테이블에 선정 된 권한이 있어야합니다. 읽기복사및 권한을 삽입하십시오 값이 삽입되는 테이블젠 토토. 열이 충분합니다 명령에 나열된 열의 권한.

a에 명명 된 파일젠 토토명령을 읽습니다 또는 클라이언트 응용 프로그램이 아닌 서버에서 직접 작성합니다. 따라서 데이터베이스에 상주하거나 액세스 할 수 있어야합니다. 클라이언트가 아닌 서버 시스템. 그들은 접근 할 수 있어야합니다 읽기 또는 쓰기 가능젠 토토user (서버가 실행되는 사용자 ID AS), 클라이언트가 아닙니다. 마찬가지로 명령은프로그램에 의해 직접 실행됩니다 클라이언트 응용 프로그램이 아닌 서버는에 의해 실행 가능해야합니다.젠 토토사용자.젠 토토파일 또는 명령의 이름 지정 만 허용됩니다 데이터베이스 슈퍼 사용자는 파일을 읽거나 쓸 수 있으므로 서버에 액세스 권한이 있습니다.

혼동하지 마십시오젠 토토withPSQL명령어\ 젠 토토. \ 젠 토토호출복사 Stdin에서또는stdout에 복사및 그런 다음 데이터를 가져 오거나 저장하여에 액세스 할 수있는 파일에 저장합니다.PSQL클라이언트. 따라서 파일 접근성 및 액세스 권한은 서버\ 젠 토토사용됩니다.

사용 된 파일 이름이 권장됩니다.젠 토토항상 절대 경로로 지정됩니다. 이것 의 경우 서버에 의해 시행됩니다.복사 에게하지만젠 토토당신은 있습니다 상대 경로로 지정된 파일에서 읽는 옵션. 그만큼 경로는 작업 디렉토리와 관련하여 해석됩니다. 서버 프로세스 (일반적으로 클러스터의 데이터 디렉토리)가 아닙니다 클라이언트의 작업 디렉토리.

명령 실행프로그램운영 체제의 액세스 제어 메커니즘에 의해 제한되며 Selinux와 같은.

복사트리거를 호출합니다 대상 테이블에서 제약 조건을 확인하십시오. 그러나 그렇지 않을 것입니다 규칙을 호출하십시오.

젠 토토입력 및 출력에 의해 영향을받습니다Datestyle. 다른 사람에 대한 이식성을 보장하려면젠 토토설치 비 디폴트를 사용할 수 있습니다Datestyle설정,Datestyle로 설정해야합니다ISO사용하기 전복사. 또한 데이터를 덤프하지 않도록하는 것도 좋은 생각입니다.IntervalStyle설정sql_standard24391_24497IntervalStyle.

입력 데이터는에 따라 해석됩니다.인코딩옵션 또는 현재 클라이언트 인코딩 및 출력 데이터가 인코딩 됨인코딩또는 데이터가 전달되지 않더라도 현재 클라이언트 인코딩 클라이언트이지만 섬기는 사람.

젠 토토첫 번째 작업을 중지합니다 오류. 이것은 A의 경우 문제를 일으키지 않아야합니다.복사그러나 대상 테이블은 이미입니다 A에서 이전 행을 받았습니다.복사. 이 행은 보이거나 접근 할 수 없지만 여전히 점유합니다. 디스크 공간. 이것은 상당한 양의 낭비 일 수 있습니다 장애가 큰 사본으로 잘 발생한 경우 디스크 공간 작업. 당신은 호출하고 싶을 것입니다진공낭비 된 공간을 복구하려면

파일 형식

텍스트 형식

언제텍스트형식이 사용됩니다 읽거나 쓰여진 것은 테이블 행당 한 줄의 텍스트 파일입니다. 열 연속으로 구분자 문자로 분리됩니다. 열 값 자체는 출력 함수에 의해 생성 된 문자열이거나 각 속성의 데이터 유형의 입력 함수에 허용됩니다. 지정된 널 문자열은 열 대신 사용됩니다. 널.젠 토토오류가 발생하면 오류가 발생합니다 입력 파일의 줄은 예상되는. 만약에OIDS지정되어 있으며 OID는입니다 사용자 데이터 앞에 읽거나 첫 번째 열로 작성하십시오. 열.

데이터 종료는 단 한 줄로 표시 될 수 있습니다. Backslash-period (\.). 데이터 끝 파일에서 읽을 때 마커가 필요하지 않습니다. 파일은 완벽하게 잘 작동합니다. 데이터를 복사 할 때만 필요합니다 또는 Pre-3.0 클라이언트 프로토콜을 사용한 클라이언트 응용 프로그램에서.

BackSlash 문자 (\)를 사용할 수 있습니다 그만큼젠 토토데이터 문자를 인용 할 데이터 그렇지 않으면 행 또는 열 구분자로 사용될 수 있습니다. ~ 안에 특히 다음 문자필수백 슬래시가 앞에옵니다 그들은 열 값의 일부로 나타납니다 : Backslash 자체, Newline, 캐리지 리턴 및 현재 구분 기호 문자.

지정된 널 문자열은에 의해 전송됩니다.복사 에게백 슬래시를 추가하지 않고; 거꾸로,복사입력과 널 스트링과 일치합니다 백 슬래시를 제거하기 전에. 따라서와 같은 널 문자열\ n실제 데이터와 혼동 될 수 없습니다 값\ n(\\ n).

다음 특수 백 슬래시 시퀀스는에 의해 인식됩니다.젠 토토 From:

시퀀스 대표
\ b 백 스페이스 (ASCII 8)
\ f 양식 피드 (ASCII 12)
\ n Newline (ASCII 10)
\ r 캐리지 리턴 (ASCII 13)
\ t 탭 (ASCII 9)
\ V 수직 탭 (ASCII 11)
\Digits 백 슬래시 뒤에 1 ~ 3 개의 옥탈 숫자가 해당 숫자 코드가있는 문자
\ xDigits backslashx그 뒤에 하나 또는 두 개의 16 진 숫자는 해당 숫자 코드로 문자를 지정합니다
현재,복사결코 방출하지 않을 것입니다 Octal 또는 Hex-Figits Backslash 시퀀스이지만 다른 사람을 사용합니다. 해당 제어 문자에 대해 위에 나열된 시퀀스.

위의 테이블은 자체를 나타 내기 위해 촬영됩니다. 그러나 조심하십시오 우연히 발생할 수 있으므로 백 슬래시를 불필요하게 추가합니다 데이터 끝 마커와 일치하는 문자열을 생성합니다 (\.) 또는 널 문자열 (\ n기본적으로). 이 문자열은 다른 곳보다 먼저 인식됩니다 백 슬래시 처리가 완료되었습니다.

응용 프로그램이 생성하는 것이 좋습니다젠 토토데이터 변환 데이터 신형 및 캐리지가로 돌아갑니다.\ nand\ r각각 시퀀스. 현재는 가능합니다 백 슬래시 및 캐리지로 데이터 캐리지 리턴을 나타냅니다. 리턴, 백 슬래시와 신규 라인에 의해 데이터 신규 라인을 나타냅니다. 그러나 이러한 표현은 미래에 받아 들여지지 않을 수 있습니다 릴리스. 그들은 또한 부패에 매우 취약합니다.젠 토토파일은 다른 곳에서 전송됩니다 기계 (예 : UNIX에서 Windows 또는 그 반대로).

복사각 행을 a 유닉스 스타일의 Newline ("\ n"). Microsoft Windows에서 실행되는 서버 대신 출력 캐리지 리턴/Newline ("\ r \ n")하지만 만젠 토토서버 파일로; 일관성을 위해 플랫폼에서stdout에 복사항상 Sends"\ n"서버 플랫폼에 관계없이.복사Newlines, Carriage Returns 또는 Or으로 끝나는 선을 처리 할 수 ​​있습니다 운송 반환/신생. 그로 인해 오류의 위험을 줄입니다 백 스플래쉬 된 신약 또는 마차 반환 데이터,복사라인이 불만을 제기합니다 입력의 결말은 모두 비슷하지 않습니다.

CSV 형식

이 형식 옵션은 쉼표를 가져오고 내보내는 데 사용됩니다. 분리 된 값 (CSV) 사용 된 파일 형식 스프레드 시트와 같은 다른 많은 프로그램. 탈출 대신 사용하는 규칙젠 토토's 표준 텍스트 형식, 공통 CSV를 생성하고 인식합니다. 탈출 메커니즘.

각 레코드의 값은에 의해 분리됩니다.Delimiter문자. 값에 포함 된 경우 Delimiter 캐릭터,QUOTE캐릭터, 그만큼NULL문자열, 캐리지 리턴, OR 라인 피드 문자, 그러면 전체 값이 접두사 및 접미사됩니다. 에 의해QUOTE캐릭터 및 발생 내에서QUOTE캐릭터 또는 그만큼탈출캐릭터는 다음과 같습니다 탈출 캐릭터. 당신은 또한 사용할 수 있습니다Force_quote출력시 따옴표를 강제로합니다 비NULL특정 열의 값.

theCSV형식에는 표준 방법이 없습니다 A 구별NULL빈 값 끈.젠 토토's젠 토토인용하여 이것을 처리합니다. 에이null출력으로NULL매개 변수 문자열 및 인용되지 않지만 비NULL값 일치NULL매개 변수 문자열이 인용됩니다. 예를 들어 기본 설정, ANULL비어있는 문자열 데이터 값은 인용되지 않은 빈 문자열입니다. 이중 인용문으로 작성 (""). 독서 값은 비슷한 규칙을 따릅니다. 사용할 수 있습니다force_not_null방지하려면NULL특정 열에 대한 입력 비교.

Backslash가 특별한 캐릭터가 아니기 때문에CSV형식,\., 데이터 종료 마커도 데이터 값으로 나타날 수도 있습니다. 피하기 위해 오해, A\.데이터 값 라인의 고독한 항목으로 나타나는 것은 자동으로 인용됩니다. 출력 및 입력에 따라 인용 된 경우 데이터 끝 마커. 다른 파일이 만든 파일을로드하는 경우 단일 인용되지 않은 열이 있고 의 가치\., 당신은 그것을 인용해야 할 수도 있습니다 입력 파일의 값.

참고 :inCSV형식, 모두 캐릭터는 중요합니다. 흰색으로 둘러싸인 인용 된 값 공간 또는 이외의 다른 문자Delimiter에는 해당 문자가 포함됩니다. 이것은 할 수 있습니다 패드가있는 시스템에서 데이터를 가져 오면 오류가 발생합니다CSV공백이 고정 된 너비로 선이있는 선. 그러한 상황이 발생하면 전처리해야 할 수도 있습니다.CSV후행 흰색을 제거하려면 파일 공간, 데이터를 가져 오기 전젠 토토.

참고 :CSV 형식은 CSV를 인식하고 생산합니다 내장 된 캐리지 리턴이 포함 된 인용 된 값이있는 파일 라인 피드. 따라서 파일은 테이블 행당 한 줄이 아닙니다. 텍스트 형식 파일처럼.

참고 :많은 프로그램이 이상하고 때로는 생산됩니다 Parverse CSV 파일이므로 파일 형식은 기준. 따라서 할 수없는 일부 파일이 발생할 수 있습니다 이 메커니즘을 사용하여 수입하고젠 토토다른 프로그램이 처리 할 수없는 파일을 생성 할 수 있습니다.

이진 형식

theBINAGE형식 옵션은 모두 원인입니다 데이터는 텍스트가 아닌 이진 형식으로 저장/읽습니다. 그것은 텍스트보다 다소 빠르고CSV형식이지만 이진 형식 파일은 기계에서 휴대용이 덜 휴대용입니다. 건축 및젠 토토버전. 또한 이진 형식은 매우 데이터 유형에 따라 다릅니다. ~을 위한 예는 a에서 바이너리 데이터를 출력하는 데 작동하지 않습니다.smallint열을 읽고Integer열은 잘 작동하지만 텍스트 형식.

theBINAGE파일 형식은 a로 구성됩니다 파일 헤더, 행 데이터가 포함 된 0 이상의 튜플 및 파일 트레일러. 헤더와 데이터는 네트워크 바이트 순서입니다.

참고 : 젠 토토7.4 전에 릴리스 다른 바이너리 파일 형식을 사용했습니다.

파일 헤더

파일 헤더는 15 바이트의 고정 필드로 구성되며 가변 길이 헤더 확장 영역에 의해. 고정 필드 이다:

서명

11 바이트 시퀀스pg젠 토토 \ n \ 377 \ r \ n \ 0- 제로 바이트는 서명의 필수 부분입니다. (그만큼 Signature는 파일을 쉽게 식별 할 수 있도록 설계되었습니다. 8 비트 청소 양도에 의해 MUNGED가되었습니다. 이 서명은 할 것입니다 종말 번역 필터에 의해 변경되고, 제로 바이트를 떨어 뜨 렸고, 높은 비트를 떨어 뜨리거나 패리티 변경.)

플래그 필드

파일의 중요한 측면을 나타내는 32 비트 정수 비트 마스크 체재. 비트는 0 (에서 번호가 매겨집니다.LSB) ~ 31 (MSB). 이 필드는 네트워크에 저장됩니다 바이트 순서 (가장 중요한 바이트 우선), 모든 정수와 마찬가지로 파일 형식에 사용 된 필드. 비트 16-31은 예약되어 있습니다 중요한 파일 형식 문제; 독자가 찾을 경우 중단해야합니다 이 범위에서 예상치 못한 비트가 설정됩니다. 비트 0-15는 신호로 예약되어 있습니다 후진 호환 형식 문제; 독자는 단순히 무시해야합니다 이 범위에 설정된 예상치 못한 비트. 현재 플래그 비트가 하나뿐입니다 정의되고 나머지는 0이어야합니다.

비트 16

1이면 OID가 데이터에 포함됩니다. 0이면

헤더 확장 영역 길이

32 비트 정수, 나머지 헤더의 바이트 길이, 자기 포함. 현재 이것은 0이고 첫 번째 튜플입니다 즉시 따릅니다. 형식에 대한 향후 변경이 허용 할 수 있습니다 헤더에있는 추가 데이터. 독자가해야합니다 헤더 확장 데이터를 조용히 건너 뛰십시오. .

헤더 확장 영역은 시퀀스를 포함하도록 구상되었습니다. 자기 식별 청크. 플래그 필드는 말할 수 없습니다 독자 확장 영역에있는 내용. 헤더의 특정 디자인 연장 내용은 나중에 릴리스를 위해 남겨 둡니다.

이 디자인은 뒤로 호환 헤더를 모두 허용합니다 추가 (헤더 확장 덩어리 추가 또는 저차 플래그 비트 설정) 및 비 백워드 호환 변경 (고차 플래그 비트를 설정하십시오 이러한 변경 사항을 알리고 확장 영역에 지원 데이터를 추가하십시오. 필요한 경우).

튜플

각 튜플은 16 비트 정수 수로 시작됩니다. 튜플의 들판. (현재, 테이블의 모든 튜플은 가질 것입니다 the same count, but that might not always be true.) Then, repeated 튜플의 각 필드마다 32 비트 길이 단어가 있습니다. 많은 바이트의 필드 데이터에 의해. (길이 단어에는 포함되지 않습니다 그 자체, 그리고 0 일 수 있습니다.) 특별한 경우, -1은 null을 나타냅니다. 필드 값. 널 케이스에서는 값 바이트가 따르는 것이 없습니다.

정렬 패딩 또는 기타 추가 데이터가 없습니다. 전지.

현재 이진 형식 파일의 모든 데이터 값이 가정됩니다. 이진 형식 (형식 코드 1)으로 사용됩니다. a 향후 확장자는 컬럼 당 허용하는 헤더 필드를 추가 할 수 있습니다. 지정할 형식 코드.

실제 튜플에 적합한 이진 형식을 결정합니다. 데이터를 참조해야합니다젠 토토소스, 특히*sendand*recv각 열의 데이터 유형에 대한 함수 (일반적으로 이러한 기능은에 있습니다.SRC/백엔드/utils/adt/소스의 디렉토리 분포).

OID가 파일에 포함 된 경우 OID 필드는 즉시 필드 카운트 단어를 따릅니다. 그것은 그것을 제외하고는 정상적인 필드입니다 현장 계수에 포함되지 않습니다. 특히 길이 단어가 있습니다 -이것은 4 바이트 대 8 바이트 OID를 처리 할 수 ​​있습니다. 많은 고통, 그리고 그 어느 때에도 Oids가 귀무로 표시 될 수 있습니다. 바람직하다.

파일 트레일러

파일 트레일러는 16 비트 정수 단어로 구성됩니다. -1. 이것은 튜플의 필드 카운트와 쉽게 구별됩니다 단어.

필드 카운트 단어가 아닌 경우 리더는 오류를보고해야합니다. -1 또는 예상 열 수. 이것은 추가 점검을 제공합니다 어떻게 든 데이터와 동기화되는 것에 대해.

예제

다음 예제는 수직 막대 (|) 필드로 Delimiter :

국가 복사 국가를 stdout (delimiter '|');

파일의 데이터를 파일로 복사하려면Country테이블 :

'/usr1/proj/bray/sql/country_data';에서 나온 국가 복사 국가

이름이 시작된 국가 만 파일에 복사하려면 '에이':

젠 토토 (Country_Name이 'A%'와 같은 국가에서 선택 *)에서 '/usr1/proj/bray/sql/a_list_countries.젠 토토';

압축 파일로 복사하려면 출력을 파이프 할 수 있습니다. 외부 압축 프로그램 :

젠 토토 COPITION TO PROGRAM 'gzip /usr1/proj/bray/sql/country_data.gz';

다음은 테이블에서 복사하는 데 적합한 데이터 샘플입니다.Stdin:

AF 아프가니스탄
알 알바니아
DZ 알제리
ZM 잠비아
ZW 짐바브웨

각 라인의 공백은 실제로 탭입니다. 성격.

다음은 동일한 데이터이며 이진 형식의 출력입니다. 그만큼 UNIX 유틸리티를 통해 필터링 한 후 데이터가 표시OD -C. 테이블에는 세 개의 열이 있습니다. 첫 번째는 있습니다 유형char (2), 두 번째는 유형이 있습니다텍스트, 세 번째는 유형이 있습니다Integer. 모든 행은 세 번째로 널 값을 갖습니다. 열.

0000000 p g c o p y \ n 377 \ r \ n \ 0 \ 0 \ 0 \ 0 \ 0 \ 0
0000020 \ 0 \ 0 \ 0 \ 0 003 \ 0 \ 0 \ 0 002 A F \ 0 \ 0 \ 013 A
0000040 F G H A N I S T A N 377 377 377 377 \ 0 003
0000060 \ 0 \ 0 \ 0 002 A L \ 0 \ 0 \ 0 007 A L B A N I
0000100 A 377 377 377 377 \ 0 003 \ 0 \ 0 \ 0 002 D Z \ 0 \ 0 \ 0 \ 0
0000120 007 A L G E R I A 377 377 377 377 \ 0 003 \ 0 \ 0
0000140 \ 0 002 Z M \ 0 \ 0 \ 0 006 Z A M B I A 377 377
0000160 377 377 \ 0 003 \ 0 \ 0 \ 0 002 Z W \ 0 \ 0 \ 0 \ B Z I
0000200 M B A B W E 377 377 377 377 377 377

호환성

없음젠 토토SQL의 명령문 기준.

다음 구문이 전에 사용되었습니다젠 토토버전 9.0 지원 :

젠 토토table_name[(column_name[, ...])]
    에서  'filename' | stdin
    [ [ 와 함께 ]
          [바이너리]
          [OIDS]
          [Delimiter [as] 'Delimiter' ]]
          [null [as] 'NULL String' ]]
          [CSV [헤더]
                [인용 [as] 'QUOTE' ]]
                [탈출 [AS] '탈출' ]]
                [힘이 아님column_name[, ...]]]]

복사table_name[(column_name[, ...]) | (쿼리)
    에게  'filename' | stdout
    [ [ 와 함께 ]
          [바이너리]
          [OIDS]
          [Delimiter [as] 'Delimiter' ]]
          [null [as] 'null 문자열' ]]
          [CSV [헤더]
                [인용 [as] 'QUOTE' ]]
                [탈출 [AS] '탈출' ]]
                [힘 견적column_name[, ...] | *]]]

이 구문에서에 유의하십시오.binaryCSV독립 키워드로 취급됩니다. a의 주장이 아닙니다.형식옵션.

다음 구문이 전에 사용되었습니다젠 토토버전 7.3이며 여전히입니다 지원 :

복사 [binary]table_name[OIDS와]
    에서  'filename' | stdin
    [[사용] Delimiters 'Delimiter' ]]
    [NULL으로 'NULL String' ]]

복사 [binary]table_name[OIDS와]
    에게  'filename' | stdout
    [[사용] Delimiters 'Delimiter' ]]
    [NULL으로 'NULL String' ]