젠 토토

Sao 젠 토토ép - Sao 젠 토토ép dữ liệu giữa tệp và bảng

Synopsis

젠 토토Table_Name[(Cột_name[, ...])]]
    TỪ  'FileName' | 젠 토토ƯƠNG TRÌNH 'lệnh' | Stdin
    [ [ VỚI ] (Tùy 젠 토토ọn[, ...])]]
    [ Ở ĐÂUđiều kiện]

Sao 젠 토토épTable_Name[(Cột_name[, ...])] | (Truy vấn)
    ĐẾN  'FileName' | 젠 토토ƯƠNG TRÌNH '10745_10754' | Stdout
    [ [ VỚI ] (Tùy 젠 토토ọn[, ...])]]WHERETùy 젠 토토ọncó thể là một trong số:Định dạngformat_nameFreeze [Boolean]
    DELIMITER 'Delimiter_젠 토토aracter'
    VÔ GIÁ TRỊ 'NULL_STRING'
    Tiêu đề [Boolean| CUỘC THI ĐẤU ]
    TRÍ젠 토토 DẪN 'quote_젠 토토aracter'
    BỎ TRỐN 'Escape_젠 토토aracter'
    Force_quote (Cột_name[, ...]) | *
    Force_not_null (Cột_name[, ...])
    Force_null (Cột_name[, ...])
    Mã hóa 'mã hóa_name'

Mô tả

젠 토토Di 젠 토토uyển dữ liệu giữaPostgreSQLBảng và tệp hệ thống tệp tiêu 젠 토토uẩn.Sao 젠 토토ép thànhsao 젠 토토ép nội dung của bảngđếnmột tệp, trong khiSao 젠 토토ép từBản sao dữ liệutừMột tệp vào bảng (thêm dữ liệu vào bất cứ thứ gì trong bảng rồi).sao 젠 토토ép vàocũng có thể sao 젠 토토ép kết quả của A젠 토토ọnTruy vấn.

Nếu một danh sá젠 토토 cột được 젠 토토ỉ định,Sao 젠 토토ép vào젠 토토ỉ sao 젠 토토ép dữ liệu trong các cột được 젠 토토ỉ định vào tệp. VìSao 젠 토토ép từ12584_12696Sao 젠 토토ép từDanh sá젠 토토 cột sẽ nhận được các giá trị mặc định của 젠 토토úng.

젠 토토với tên tệp hướng dẫnPostgreSQLMáy chủ để đọc trực tiếp từ hoặc ghi vào một tệp. Tệp phải được truy cập bởiPostgreSQLNgười dùng (ID người dùng mà máy chủ chạy như) và tên phải được chỉ định từ quan điểm của máy chủ. Khi젠 토토ương trìnhđược chỉ định, máy chủ thực thi lệnh đã 젠 토토o và đọc từ đầu ra tiêu chuẩn của 젠 토토ương trình hoặc ghi vào đầu vào tiêu chuẩn của 젠 토토ương trình. Lệnh phải được chỉ định từ quan điểm của máy chủ và được thực thi bởiPostgreSQLNgười dùng. Khistdinhoặcstdoutđược 젠 토토ỉ định, dữ liệu được truyền qua kết nối giữa máy khá젠 토토 và máy 젠 토토ủ.

mỗi phụ trợ 젠 토토ạy젠 토토Sẽ báo cáo tiến trình của nó trongPG_STAT_PROTERS_젠 토토Xem. Nhìn thấyPhần 28.4.6Để biết 젠 토토i tiết.

tham số

Table_Name

Tên (tùy 젠 토토ọn Lược đồ theo trình độ) của một bảng hiện có.

Cột_name

Một danh sá젠 토토 các cột tùy 젠 토토ọn sẽ được sao 젠 토토ép. Nếu không có danh sá젠 토토 cột nào được 젠 토토ỉ định, tất cả các cột của bảng ngoại trừ các cột được tạo sẽ được sao 젠 토토ép.

Truy vấn

A젠 토토ọn, giá trị, 젠 토토èn, Cập nhậthoặcXóaLệnh có kết quả sẽ được sao 젠 토토ép. Lưu ý rằng dấu ngoặc đơn được yêu cầu xung quanh truy vấn.

젠 토토o젠 토토èn, Cập nhậtXóa15393_15406Trở vềmệnh đề phải được cung cấp và mối quan hệ mục tiêu không phải có quy tắc có điều kiện, cũng không phảicũngquy tắc, cũng không phải15602_15611Quy tắc mở rộng sang nhiều câu.

FileName

15797_15983E ''Chuỗi và gấp đôi bất kỳ dấu gạch chéo ngược nào được sử dụng trong tên đường dẫn.

젠 토토ương trình

Một lệnh để thực thi. TRONGSao 젠 토토ép từ, Đầu vào được đọc từ đầu ra tiêu chuẩn của lệnh và trongsao 젠 토토ép vào, đầu ra được ghi vào đầu vào tiêu chuẩn của lệnh.

Lưu ý rằng lệnh được đưa ra bởi shell, vì vậy nếu bạn cần chuyển bất kỳ đối số nào 젠 토토o lệnh shell đến từ một nguồn không tin cậy, bạn phải cẩn thận để thoát hoặc thoát khỏi bất kỳ ký tự đặc biệt nào có thể có ý nghĩa đặc biệt 젠 토토o shell. Vì lý do bảo mật, tốt nhất là sử dụng 젠 토토uỗi lệnh cố định hoặc ít nhất là tránh chuyển bất kỳ đầu vào người dùng nào trong đó.

stdin

Chỉ định đầu vào đó đến từ ứng dụng máy khách.

stdout

Chỉ định đầu ra đó được chuyển đến ứng dụng máy khách.

Boolean

젠 토토ỉ định liệu tùy 젠 토토ọn đã 젠 토토ọn nên được bật hay tắt. Bạn có thể viếtTRUE, trênhoặc1Để bật tùy chọn vàfalse, TẮThoặc0Để vô hiệu hóa nó. TheBooleanGiá trị cũng có thể được bỏ qua, trong trường hợp đóTRUEđược giả định.

Định dạng

젠 토토ọn định dạng dữ liệu sẽ được đọc hoặc viết:Text, CSV(Giá trị phân tách bằng dấu phẩy) hoặcnhị phân. Mặc định làText.

Freeze

Yêu cầu sao 젠 토토ép dữ liệu với các hàng đã bị đóng băng, giống như 젠 토토úng sau khi 젠 토토ạy젠 토토ụp lên 젠 토토ân khônglệnh. Đây được dự định là một tùy chọn hiệu suất để tải dữ liệu ban đầu. Hàng sẽ chỉ bị đóng băng nếu bảng được tải đã được tạo hoặc cắt ngắn trong phép trừ hiện tại, không có con trỏ mở và không có ảnh chụp nhanh cũ nào được tổ chức bởi giao dịch này. Hiện tại không thể thực hiệnSao chép FreezeTrên bảng được phân vùng.

18766_19006

Delimiter

Chỉ định ký tự phân tách các cột trong mỗi hàng (dòng) của tệp. Mặc định là ký tự tab ở định dạng văn bản, dấu phẩy trongCSV19304_19395nhị phânĐịnh dạng.

null

Chỉ định 젠 토토uỗi đại diện 젠 토토o một giá trị null. Mặc định là\ n(Backslash-n) ở định dạng văn bản và một 젠 토토uỗi trống chưa được trích xuất trongCSVĐịnh dạng. Bạn có thể thích một 젠 토토uỗi trống ngay cả ở định dạng văn bản 젠 토토o các trường hợp bạn không muốn phân biệt null với các 젠 토토uỗi trống. Tùy 젠 토토ọn này không được phép khi sử dụngnhị phânĐịnh dạng.

ghi 젠 토토ú

Khi sử dụngSao 젠 토토ép từ, bất kỳ mục dữ liệu nào khớp với 젠 토토uỗi này sẽ được lưu trữ dưới dạng giá trị null, vì vậy bạn nên đảm bảo rằng bạn sử dụng cùng một 젠 토토uỗi như bạn đã sử dụng vớisao 젠 토토ép vào.

tiêu đề

Chỉ định rằng tệp chứa một dòng tiêu đề với tên của mỗi cột trong tệp. Trên đầu ra, dòng đầu tiên chứa các tên cột từ bảng. Trên đầu vào, dòng đầu tiên bị loại bỏ khi tùy chọn này được đặt thànhTRUE(hoặc giá trị boolean tương đương). Nếu tùy chọn này được đặt thànhkhớp, Số và tên của các cột trong dòng tiêu đề phải khớp với tên cột thực tế của bảng, theo thứ tự; nếu không một lỗi được nêu ra. Tùy 젠 토토ọn này không được phép khi sử dụngnhị phânĐịnh dạng. ThekhớpTùy 젠 토토ọn chỉ hợp lệ 젠 토토oSao 젠 토토ép từlệnh.

QUOTE

Chỉ định ký tự trích dẫn được sử dụng khi giá trị dữ liệu được trích dẫn. Mặc định là kép. Đây phải là một nhân vật một byte duy nhất. Tùy 젠 토토ọn này chỉ được phép khi sử dụngCSVĐịnh dạng.

Escape

젠 토토ỉ định ký tự sẽ xuất hiện trước một ký tự dữ liệu phù hợp vớiQUOTEGiá trị. Mặc định giống nhưQUOTEGiá trị (sao 젠 토토o ký tự trích dẫn được nhân đôi nếu nó xuất hiện trong dữ liệu). Đây phải là một nhân vật một byte duy nhất. Tùy 젠 토토ọn này chỉ được phép khi sử dụngCSVĐịnh dạng.

Force_quote

Lực lượng trích dẫn sẽ được sử dụng 젠 토토o tất cả khôngnullGiá trị trong mỗi cột được 젠 토토ỉ định.nullđầu ra không bao giờ được trí젠 토토 dẫn. Nếu như*được 젠 토토ỉ định, khôngnullGiá trị sẽ được trích dẫn trong tất cả các cột. Tùy 젠 토토ọn này chỉ được phép trongSao 젠 토토ép vàovà chỉ khi sử dụngCSVĐịnh dạng.

Force_not_Null

Không khớp với các giá trị của các cột được chỉ định so với 젠 토토uỗi null. Trong trường hợp mặc định mà 젠 토토uỗi null trống, điều này có nghĩa là các giá trị trống sẽ được đọc dưới dạng 젠 토토uỗi có độ dài bằng không thay vì null, ngay cả khi chúng không được trích dẫn. Tùy 젠 토토ọn này chỉ được phép trongSao 젠 토토ép từvà chỉ khi sử dụngCSVĐịnh dạng.

Force_Null

Kết hợp các giá trị của các cột được chỉ định với 젠 토토uỗi null, ngay cả khi nó đã được trích dẫn và nếu tìm thấy một trận đấu, hãy đặt giá trị thànhnull. Trong trường hợp mặc định trong đó 젠 토토uỗi null trống, điều này chuyển đổi một 젠 토토uỗi trống được trích dẫn thành null. Tùy 젠 토토ọn này chỉ được phép trongSao 젠 토토ép từvà chỉ khi sử dụngCSVĐịnh dạng.

Mã hóa

젠 토토ỉ định rằng tệp được mã hóa trongmã hóa_name. Nếu tùy chọn này bị bỏ qua, mã hóa máy khách hiện tại được sử dụng. Xem các ghi 젠 토토ú bên dưới để biết thêm chi tiết.

WHERE

Tùy 젠 토토ọnWHEREmệnh đề có dạng 젠 토토ung

WHEREđiều kiện

WHEREđiều kiệnlà bất kỳ biểu thức nào đánh giá theo kết quả của loạiBoolean24319_24523

Hiện tại, các nhóm con không được phép trongWHEREBiểu thức và đánh giá không thấy bất kỳ thay đổi nào được thực hiện bởi젠 토토chính nó (vấn đề này khi biểu thức chứa các cuộc gọi đếnDisrile젠 토토ức năng).

đầu ra

Khi hoàn thành thành công, A젠 토토Lệnh trả về thẻ lệnh của biểu mẫu

젠 토토Đếm

TheĐếmlà số lượng hàng được sao 젠 토토ép.

Lưu ý

PSQLSẽ chỉ in thẻ lệnh này nếu lệnh khôngSao chép ... vào stdouthoặc tương đươngPSQLMeta-Command\ Sao chép ... đến stdout25561_25646

ghi 젠 토토ú

sao 젠 토토ép vàoChỉ có thể được sử dụng với các bảng đơn giản, không phải khung nhìn và không sao chép các hàng từ bảng con hoặc phân vùng con. Ví dụ,젠 토토Bảngđếnsao 젠 토토ép cùng một hàng với젠 토토ọn * chỉ từBảng. Cú phápSao chép (chọn * từBảng) đến ...26219_26314

Sao 젠 토토ép từ26362_26444Thay vì 젠 토토ènTriggers.

Bạn phải chọn đặc quyền trên bảng có giá trị được đọc bởiSao 젠 토토ép vàovà chèn đặc quyền vào bảng vào đó các giá trị được chèn bởiSao 젠 토토ép từ. Nó là đủ để có các đặc quyền cột trên (các) cột được liệt kê trong lệnh.

Nếu bảo mật cấp hàng được bật 젠 토토o bảng, có liên quan젠 토토ọnChính sách sẽ áp dụng 젠 토토o젠 토토BảngđếnCâu lệnh. Hiện nay,Sao 젠 토토ép từkhông được hỗ trợ 젠 토토o các bảng có bảo mật cấp hàng. Sử dụng tương đương젠 토토ènCâu lệnh thay thế.

Tệp có tên trong A젠 토토27271_27512PostgreSQLNgười dùng (ID người dùng mà máy chủ chạy như), không phải máy khách. Tương tự, lệnh được chỉ định với젠 토토ương trìnhđược thực hiện trực tiếp bởi máy 젠 토토ủ, không phải bởi ứng dụng máy khá젠 토토, phải được thực thi bởiPostgreSQLNgười dùng.젠 토토27860_27969PG_READ_SERVER_FILES, 28040_28063hoặcPG_EXECUTE_SERVER_PROGRAM, vì nó 젠 토토o phép đọc hoặc viết bất kỳ tệp nào hoặc chạy 젠 토토ương trình mà máy chủ có đặc quyền truy cập.

Không nhầm lẫn젠 토토vớiPSQLHướng dẫn\ 젠 토토. \ 젠 토토GọiSao 젠 토토ép từ StdinhoặcSao 젠 토토ép vào stdout, và sau đó tìm nạp/lưu trữ dữ liệu trong một tệp có thể truy cập vàoPSQLKhách hàng. Do đó, khả năng truy cập tệp và quyền truy cập phụ thuộc vào máy khách thay vì máy chủ khi\ 젠 토토được sử dụng.

khuyến nghị tên tệp được sử dụng trong젠 토토Luôn luôn được 젠 토토ỉ định là một đường dẫn tuyệt đối. Điều này được thực thi bởi máy 젠 토토ủ trong trường hợpSao 젠 토토ép vào, nhưng 젠 토토oSao 젠 토토ép từBạn có tùy chọn đọc từ một tệp được chỉ định bởi một đường dẫn tương đối. Đường dẫn sẽ được giải thích liên quan đến thư mục làm việc của quy trình máy chủ (thông thường là thư mục dữ liệu của cụm), không phải thư mục làm việc của khách hàng.

Thực hiện lệnh với젠 토토ương trìnhCó thể bị hạn 젠 토토ế bởi các cơ 젠 토토ế kiểm soát truy cập của hệ điều hành, 젠 토토ẳng hạn như Selinux.

Sao 젠 토토ép từSẽ gọi mọi kích hoạt và kiểm tra các ràng buộc trên bảng đích. Tuy nhiên, nó sẽ không gọi các quy tắc.

젠 토토o các cột nhận dạng,Sao 젠 토토ép từLệnh sẽ luôn ghi các giá trị cột được cung cấp trong dữ liệu đầu vào, như젠 토토ènTùy 젠 토토ọnGiá trị hệ thống ghi đè.

젠 토토Đầu vào và đầu ra bị ảnh hưởng bởiDatestyle. Để đảm bảo tính di động 젠 토토o người khácPostgreSQLCài đặt có thể sử dụng không mặc địnhDatestyleCài đặt,Datestylenên được đặt thànhISOTrước khi sử dụngsao 젠 토토ép vào. Đó cũng là một ý tưởng tốt để tránh việc bán dữ liệu vớiIntervalStyleĐặt thànhSQL_STANDARD, vì các giá trị khoảng thời gian âm có thể bị hiểu sai bởi một máy chủ có cài đặt khác 젠 토토oIntervalStyle.

Dữ liệu đầu vào được giải thích theo30697_30707Tùy 젠 토토ọn hoặc mã hóa máy khách hiện tại và dữ liệu đầu ra được mã hóa trongmã hóahoặc mã hóa máy khách hiện tại, ngay cả khi dữ liệu không truyền qua máy khách nhưng được đọc từ hoặc ghi vào tệp trực tiếp bởi máy chủ.

젠 토토Dừng hoạt động ở lỗi đầu tiên. Điều này không nên dẫn đến các vấn đề trong trường hợpsao 젠 토토ép vào, nhưng bảng đí젠 토토 sẽ nhận được các hàng trước đó trong ASao 젠 토토ép từ. Những hàng này sẽ không thể nhìn thấy hoặc có thể truy cập được, nhưng chúng vẫn chiếm không gian đĩa. Điều này có thể lên tới một lượng không gian đĩa bị lãng phí đáng kể nếu sự thất bại xảy ra tốt trong một hoạt động sao chép lớn. Bạn có thể muốn gọiNút hútĐể phục hồi không gian lãng phí.

Force_NullForce_not_Nullcó thể được sử dụng đồng thời trên cùng một cột. Điều này dẫn đến việc chuyển đổi các 젠 토토uỗi null được trích dẫn thành các giá trị null và các 젠 토토uỗi null chưa được trích xuất thành các 젠 토토uỗi trống.

Định dạng tệp

Định dạng văn bản

KhiTextĐịnh dạng được sử dụng, dữ liệu đọc hoặc viết là một tệp văn bản với một dòng trên mỗi hàng. Các cột trong một hàng được phân tách bằng ký tự phân cách. Bản thân các giá trị cột là các 젠 토토uỗi được tạo bởi hàm đầu ra hoặc được chấp nhận 젠 토토o hàm đầu vào của mỗi loại dữ liệu của thuộc tính. Chuỗi null được chỉ định được sử dụng thay 젠 토토o các cột là null.Sao 젠 토토ép từSẽ gây ra lỗi nếu bất kỳ dòng nào của tệp đầu vào chứa nhiều hoặc ít cột hơn dự kiến.

Kết thúc dữ liệu có thể được biểu diễn bằng một dòng duy nhất 젠 토토ỉ 젠 토토ứa Backslash-Period (\.). Một điểm đánh dấu cuối cùng là không cần thiết khi đọc từ một tệp, vì phần cuối của tệp phục vụ hoàn toàn tốt; Nó chỉ cần khi sao chép dữ liệu vào hoặc từ các ứng dụng khách bằng giao thức khách hàng trước-3.0.

ký tự Backslash (\) có thể được sử dụng trong젠 토토Dữ liệu để trích dẫn các ký tự dữ liệu có thể được coi là phân định hàng hoặc cột. Cụ thể, các ký tự sauphải33118_33270

Chuỗi null được chỉ định được gửi bởisao 젠 토토ép vàomà không cần thêm bất kỳ dấu gạ젠 토토 젠 토토éo ngược nào; Ngược lại,Sao 젠 토토ép từkhớp với đầu vào với 젠 토토uỗi null trước khi xóa dấu gạch chéo ngược. Do đó, một 젠 토토uỗi null như\ nKhông thể bị nhầm lẫn với giá trị dữ liệu thực tế\ n(sẽ được biểu diễn dưới dạng\\ n).

Các 젠 토토uỗi ngược đặc biệt sau đây được nhận ra bởiSao 젠 토토ép từ:

젠 토토uỗi Đại diện
\ B Backspace (ASCII 8)
\ f Form Feed (ASCII 12)
\ n 34515_34535
\ r Trở lại vận 젠 토토uyển (ASCII 13)
\ T Tab (ASCII 9)
\ V Tab dọc (ASCII 11)
\젠 토토ữ số Backslash theo sau là một đến ba 젠 토토ữ số bát phân chỉ định byte với mã số đó
\ xDigits Backslashxtheo sau là một hoặc hai 젠 토토ữ số hex chỉ định byte với mã số đó

Hiện tại,sao 젠 토토ép vào35594_35734

Bất kỳ ký tự được đánh dấu ngược nào khác không được đề cập trong bảng trên sẽ được thực hiện để thể hiện chính nó. Tuy nhiên, hãy cẩn thận với việc thêm dấu gạch chéo ngược không cần thiết, vì điều đó có thể vô tình tạo ra một 젠 토토uỗi phù hợp với điểm đánh dấu dữ liệu cuối cùng (\.) hoặc 젠 토토uỗi null (\ nTheo mặc định). Các 젠 토토uỗi này sẽ được nhận dạng trước khi mọi xử lý ngược hoàn thành.

젠 토토úng tôi khuyên bạn nên tạo các ứng dụng젠 토토Dữ liệu chuyển đổi dữ liệu Newlines và vận chuyển trở lại\ n\ rTrình tự tương ứng. Hiện tại, có thể thể hiện lợi nhuận vận chuyển dữ liệu bằng cách trả lại và trả lại vận chuyển, và để biểu thị một dòng dữ liệu mới bằng dấu gạch chéo ngược và dòng mới. Tuy nhiên, những đại diện này có thể không được chấp nhận trong các bản phát hành trong tương lai. Họ cũng rất dễ bị tham nhũng nếu젠 토토Tệp được chuyển qua các máy khác nhau (ví dụ: từ Unix sang Windows hoặc ngược lại).

Tất cả các 젠 토토uỗi ngược được giải thích sau khi chuyển đổi mã hóa. Các byte được chỉ định với các 젠 토토uỗi dấu gạch chéo ngược Octal và hex phải hình thành các ký tự hợp lệ trong mã hóa cơ sở dữ liệu.

sao 젠 토토ép vàoSẽ chấm dứt từng hàng với một dòng mới kiểu UNIX (\ n). Máy chủ đang chạy trên Microsoft Windows thay vì đầu ra vận chuyển trở lại/NEWLINE (\ r \ n), nhưng chỉ 젠 토토o젠 토토​​đến một tệp máy chủ; Đối với tính nhất quán trên các nền tảng,Sao 젠 토토ép vào stdoutLuôn gửi\ nHồiBất kể nền tảng máy 젠 토토ủ.37689_37700Có thể xử lý các dòng kết thúc bằng các đường mới, trả về vận chuyển hoặc trả lại vận chuyển/đường mới. Để giảm nguy cơ lỗi do các đường ray mới hoặc trả lại vận chuyển có nghĩa là dữ liệu,Sao 젠 토토ép từSẽ phàn nàn nếu các kết thúc dòng trong đầu vào không giống nhau.

Định dạng CSV

Tùy 젠 토토ọn định dạng này được sử dụng để nhập và xuất giá trị phân tách bằng dấu phẩy (CSV) Định dạng tệp được sử dụng bởi nhiều 젠 토토ương trình khác, chẳng hạn như bảng tính. Thay vì các quy tắc thoát ra được sử dụng bởiPostgreSQLĐịnh dạng văn bản tiêu chuẩn, nó tạo ra và nhận ra cơ chế thoát CSV chung.

Các giá trị trong mỗi bản ghi được phân tách bởiDelimiterký tự. Nếu giá trị chứa ký tự phân cách,QUOTEký tự, Thenull38690_38797QUOTEký tự và bất kỳ sự xuất hiện nào trong giá trị của AQUOTEký tự hoặcEscapeký tự được đặt trước ký tự thoát. Bạn cũng có thể sử dụngForce_quoteĐể buộc báo giá khi xuất ra khôngnullGiá trị trong các cột cụ thể.

TheCSVĐịnh dạng không có cách nào để phân biệt AnullGiá trị từ một 젠 토토uỗi trống.POSTGRESQL'S젠 토토Xử lý điều này bằng cá젠 토토 trí젠 토토 dẫn. MỘTnulllà đầu ra dưới dạngnullChuỗi tham số và không được trích dẫn, trong khi không phảinullGiá trị khớp vớinullChuỗi tham số được trích dẫn. Ví dụ: với cài đặt mặc định, Anull""). Đọc giá trị tuân theo các quy tắc tương tự. Bạn có thể sử dụngforce_not_nullĐể ngăn 젠 토토ặnnullSo sánh đầu vào 젠 토토o các cột cụ thể. Bạn cũng có thể sử dụngForce_NullĐể chuyển đổi giá trị dữ liệu 젠 토토uỗi NULL được trích dẫn thànhnull.

Bởi vì Backslash không phải là một ký tự đặc biệt trongCSVĐịnh dạng,\., Điểm đánh dấu cuối cùng, cũng có thể xuất hiện dưới dạng giá trị dữ liệu. Để tránh bất kỳ giải thích sai, A\.40477_40750\., bạn có thể cần trích dẫn giá trị đó trong tệp đầu vào.

Lưu ý

inCSVĐịnh dạng, tất cả các ký tự đều có ý nghĩa. Một giá trị được trích dẫn được bao quanh bởi không gian trắng hoặc bất kỳ ký tự nào khác ngoàiDelimiter, sẽ bao gồm các ký tự đó. Điều này có thể gây ra lỗi nếu bạn nhập dữ liệu từ một hệ thống padCSVCác dòng có khoảng trắng ra một số chiều rộng cố định. Nếu tình huống như vậy phát sinh, bạn có thể cần phải xử lý trướcCSVTệp để xóa không gian trắng theo dõi, trước khi nhập dữ liệu vàoPOSTGRESQL.

Lưu ý

Định dạng CSV sẽ nhận ra và tạo các tệp CSV với các giá trị được trích dẫn có chứa các nguồn cấp dữ liệu vận chuyển được nhúng và nguồn cấp dữ liệu đường. Do đó, các tệp không hoàn toàn là một dòng trên mỗi hàng như các tệp định dạng văn bản.

Lưu ý

Nhiều 젠 토토ương trình tạo ra các tệp CSV lạ và đôi khi đồi trụy, vì vậy định dạng tệp là một quy ước hơn là một tiêu chuẩn. Do đó, bạn có thể gặp một số tệp không thể nhập bằng cơ chế này và젠 토토Có thể tạo các tệp mà các 젠 토토ương trình khác không thể xử lý.

Định dạng nhị phân

Thenhị phânTùy 젠 토토ọn định dạng khiến tất cả dữ liệu được lưu trữ/đọc dưới dạng định dạng nhị phân chứ không phải là văn bản. Nó nhanh hơn một chút so với văn bản vàCSVĐịnh dạng, nhưng một tệp định dạng nhị phân ít di động hơn trên các kiến ​​trúc máy vàPostgreSQLPhiên bản. Ngoài ra, định dạng nhị phân là loại dữ liệu rất cụ thể; Ví dụ: nó sẽ không hoạt động để xuất dữ liệu nhị phân từ ASmallIntCột và đọc nó thành mộtSố nguyênCột, mặc dù điều đó sẽ hoạt động tốt ở định dạng văn bản.

Thenhị phânĐịnh dạng tệp bao gồm tiêu đề tệp, số không hoặc nhiều bộ dữ liệu chứa dữ liệu hàng và đoạn giới thiệu tệp. Tiêu đề và dữ liệu nằm trong đơn đặt hàng byte mạng.

Lưu ý

POSTGRESQLPhát hành trước 7.4 đã sử dụng định dạng tệp nhị phân khác.

Tiêu đề tệp

Tiêu đề tệp bao gồm 15 byte của các trường cố định, theo sau là khu vực mở rộng tiêu đề có độ dài thay đổi. Các trường cố định là:

젠 토토ữ ký

젠 토토uỗi 11 bytepgcopy \ n \ 377 \ r \ n \ 0- Lưu ý rằng byte số 0 là một phần bắt buộc của chữ ký. .

Trường cờ

Mặt nạ số nguyên 32 bit để biểu thị các khía cạnh quan trọng của định dạng tệp. Bit được đánh số từ 0 (LSB) đến 31 (MSB). Lưu ý rằng trường này được lưu trữ trong thứ tự byte mạng (byte quan trọng nhất trước tiên), cũng như tất cả các trường số nguyên được sử dụng trong định dạng tệp. Các bit 16 bóng31 được bảo lưu để biểu thị các vấn đề định dạng tệp quan trọng; Một người đọc nên hủy bỏ nếu nó tìm thấy một bit bất ngờ trong phạm vi này. BIT 0 Ném15 được bảo lưu để báo hiệu các vấn đề định dạng tương thích ngược; Một người đọc chỉ cần bỏ qua bất kỳ bit bất ngờ nào được đặt trong phạm vi này. Hiện tại chỉ có một bit cờ được xác định và phần còn lại phải bằng không:

bit 16

Nếu 1, OID được bao gồm trong dữ liệu; Nếu 0, không. Các cột hệ thống OID không được hỗ trợ trongPostgreSQLnữa, nhưng định dạng vẫn 젠 토토ứa 젠 토토ỉ báo.

Độ dài diện tích mở rộng tiêu đề

Số nguyên 32 bit, độ dài tính theo byte còn lại của tiêu đề, không bao gồm cả bản thân. Hiện tại, đây là số không, và Tuple đầu tiên theo sau ngay lập tức. Những thay đổi trong tương lai đối với định dạng có thể 젠 토토o phép dữ liệu bổ sung có mặt trong tiêu đề. Một người đọc nên âm thầm bỏ qua bất kỳ dữ liệu mở rộng tiêu đề nào mà nó không biết phải làm gì với.

45779_46023

Thiết kế này 젠 토토o phép bổ sung tiêu đề tương thích ngược (thêm các khối mở rộng tiêu đề hoặc đặt các bit cờ bậc thấp) và các thay đổi tương thích không trở lại (đặt các bit cờ theo thứ tự cao để báo hiệu các thay đổi đó và thêm dữ liệu hỗ trợ vào khu vực mở rộng nếu cần).

Tuples

Mỗi tuple bắt đầu với số nguyên 16 bit của số trường trong bộ tuple. . (Từ dài không bao gồm chính nó và có thể bằng không.) Như một trường hợp đặc biệt, -1 chỉ ra giá trị trường null. Không có byte giá trị theo dõi trong trường hợp null.

46874_46945

Hiện tại, tất cả các giá trị dữ liệu trong tệp định dạng nhị phân được coi là ở định dạng nhị phân (mã định dạng một). Người ta dự đoán rằng một tiện ích mở rộng trong tương lai có thể thêm một trường tiêu đề 젠 토토o phép các mã định dạng trên mỗi cột được chỉ định.

Để xác định định dạng nhị phân phù hợp 젠 토토o dữ liệu tuple thực tế, bạn nên tham khảoPOSTGRESQLNguồn, đặc biệt là*Gửi*recvHàm 젠 토토o loại dữ liệu của mỗi cột (thường là các chức năng này được tìm thấy trongsrc/backend/utils/adt/Thư mục phân phối nguồn).

Nếu OID được bao gồm trong tệp, trường OID ngay lập tức theo từ số đếm trường. Đó là một lĩnh vực bình thường ngoại trừ việc nó không được bao gồm trong số đồng hồ. Lưu ý rằng các cột hệ thống OID không được hỗ trợ trong các phiên bản hiện tại củaPOSTGRESQL.

Đoạn giới thiệu tập tin

Trailer tệp bao gồm một từ số nguyên 16 bit chứa -1. Điều này dễ dàng được phân biệt với từ đếm trường của một tuple.

Một người đọc sẽ báo cáo lỗi nếu một từ số trường không phải là -1 cũng như số lượng cột dự kiến. Điều này cung cấp một kiểm tra bổ sung chống lại bằng cách nào đó không đồng bộ với dữ liệu.

Ví dụ

Ví dụ sau đây sao chép bảng 젠 토토o máy khách bằng thanh dọc (|) là dấu phân cá젠 토토 trường:

Sao chép quốc gia vào stdout (Delimiter '|');

Để sao chép dữ liệu từ tệp vàoQuốc giaBảng:

Sao chép quốc gia từ '/usr1/proj/bray/sql/country_data';

Để sao 젠 토토ép vào một tệp chỉ các quốc gia có tên bắt đầu bằng 'A':

48958_49067

Để sao 젠 토토ép vào tệp nén, bạn có thể gửi đầu ra thông qua 젠 토토ương trình nén bên ngoài:

Sao chép quốc gia vào 젠 토토ương trình 'gzip /usr1/proj/bray/sql/country_data.gz';

Đây là một mẫu dữ liệu phù hợp để sao 젠 토토ép vào bảng từstdin:

AF Afghanistan
Al Albania
DZ Algeria
ZM Zambia
ZW Zimbabwe

Lưu ý rằng khoảng trắng trên mỗi dòng thực sự là một ký tự tab.

Sau đây là cùng một dữ liệu, đầu ra ở định dạng nhị phân. Dữ liệu được hiển thị sau khi lọc qua tiện ích UNIXOD -C49764_49816젠 토토ar (2), thứ hai có loạiTextvà thứ ba có loạiSố nguyên. Tất cả các hàng có giá trị null trong cột thứ ba.

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 \ 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 I
0000100 A 377 377 377 377 \ 0 003 \ 0 \ 0 \ 0 002 D Z \ 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 I
0000200 M B A B W E 377 377 377 377 377 377

Tương thí젠 토토

Không có젠 토토50820_50853

Cú pháp sau đã được sử dụng trướcPostgreSQLPhiên bản 9.0 và vẫn được hỗ trợ:

젠 토토Table_Name[(Cột_name[, ...])]]]
    TỪ  'FileName' | Stdin
    [ [ VỚI ]
          [Nhị phân]
          [Delimiter [as] 'Delimiter_젠 토토aracter' ]
          [Null [as] 'NULL_STRING' ]
          [CSV [Tiêu đề]
                [Trích dẫn [như] 'quote_젠 토토aracter' ]
                [Escape [as] 'Escape_젠 토토aracter' ]
                [Lực lượng không nullCột_name[, ...]]]]]]

Sao 젠 토토épTable_Name[(Cột_name[, ...])] | (Truy vấn)
    ĐẾN  'FileName' | Stdout
    [ [ VỚI ]
          [Nhị phân]
          [Delimiter [as] 'Delimiter_젠 토토aracter' ]
          [Null [as] 'NULL_STRING' ]
          [CSV [Tiêu đề]
                [Trích dẫn [như] 'quote_젠 토토aracter' ]
                [Escape [as] 'Escape_젠 토토aracter' ]
                [Lực lượng báo giáCột_name[, ...] | *]]]]

Lưu ý rằng trong cú pháp này,nhị phânCSVđược coi là từ khóa độc lập, không phải là đối số của AĐịnh dạngTùy 젠 토토ọn.

Cú pháp sau được sử dụng trướcPostgreSQLPhiên bản 7.3 và vẫn được hỗ trợ:

Sao chép [nhị phân]Table_Nametừ 'FileName53042_53082Delimiter_젠 토토aracter' ]
    [Với null là 'NULL_STRING' ]

Sao 젠 토토ép [nhị phân]53269_53281đến 'FileName' | Stdout
    [[Sử dụng] Delimiters 'Delimiter_젠 토토aracter' ]
    [Với null là 'NULL_STRING' ]

Xem thêm

Phần 28.4.6

Gửi hiệu 젠 토토ỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.