theBYTEA데이터 유형은 저장을 허용합니다 사설 토토 문자열; 보다표 8-6.
사설 토토 문자열은 일련의 옥트 (또는 바이트)입니다. 사설 토토 문자열은 두 가지 방식으로 문자 문자열과 구별됩니다. 먼저, 사설 토토 문자열은 특히 옥넷을 저장할 수 있습니다 0 및 기타"인쇄 할 수없는"Octets (보통, 32 ~ 126의 범위 외부의 옥팅). 문자열 제로 옥제를 허용하지 않고 다른 옥트 값을 허용하지 않습니다. 및 데이터베이스의 선택된 문자 세트 인코딩. 둘째, 운영 사설 토토 문자열은 실제 바이트를 처리하는 반면 처리는 처리됩니다 문자열의 문자열은 로케일 설정에 따라 다릅니다. 요컨대, 사설 토토 문자열은 프로그래머의 데이터를 저장하는 데 적합합니다 AS의 생각"원시 바이트"캐릭터 문자열은 텍스트 저장에 적합합니다.
입력 할 때BYTEA값, 낙지 특정 값필수be 탈출 (그러나 모든 옥트 값can탈출) 부분으로 사용될 때 의 문자열 문자SQL진술. 일반적으로 옥셋을 탈출하려면 3 자리 홀 값 값과 두 개의 백 슬래시로 앞에.테이블 8-7탈출 해야하는 문자를 보여주고 해당되는 경우 대체 탈출 시퀀스.
표 8-7.BYTEA리터럴 탈출 한 옥제
십진 옥넷 값 | 설명 | 탈출 된 입력 표현 | example | 출력 표현 |
---|---|---|---|---|
0 | Zero Octet | e '\\ 000' | e '\\ 000':: bytea; 선택 | \ 000 |
39 | 단일 견적 | '' ''또는e '\\ 047' | e '\' ':: Bytea; 선택 | ' |
92 | backslash | e '\\\\'또는E '\\ 134' | 선택 E '\\\\':: Bytea; | \\ |
0 ~ 31 및 127 ~ 255 | "인쇄 할 수없는"Octets | e '\\xxx '(Octal Value) | e '\\ 001':: bytea; 선택 | \ 001 |
탈출 요구 사항인쇄 할 수없는Octets는 다양합니다 로케일 설정에 따라. 어떤 경우에는 도망 갈 수 있습니다 그들을 퇴각시키지 않고. 각각의 결과에 유의하십시오 의 예표 8-7출력에도 불구하고 길이가 정확히 1 옥트입니다 표현은 때때로 하나 이상의 캐릭터입니다.
여러 백 슬래시가 필요한 이유테이블 8-7, 문자열 리터럴로 작성된 입력 문자열은 필수입니다. 에서 두 개의 구문 분석 단계를 통과합니다.PostgreSQL서버. 첫 번째 백 슬래시 각 쌍은 String-Literal Parser (Escape String 구문이 사용되었다고 가정) 및 따라서 소비되어 두 번째 쌍의 백 슬래시가 남습니다. (이 수준 의이 수준을 피하기 위해 달러에 따른 줄은 사용될 수 있습니다. 탈출.) 나머지 백 슬래시는에 의해 인식됩니다.BYTEA시작과 같은 입력 함수 a 3 자리 숫자 옥탈 값 또는 다른 백 슬래시를 빠져냅니다. 을 위한 예를 들어, 문자열 문자가 서버로 전달 된 문자열 문자e '\\ 001'\ 001탈출 문자열 파서를 통과 한 후. 그만큼\ 001그런 다음으로 전송됩니다.BYTEA입력 함수, 여기서 a로 변환됩니다 소수 값이 1 인 단일 옥셋. 단일 쿼트 캐릭터는 특별히 취급되지 않습니다BYTEA이므로 문자열에 대한 일반 규칙을 따릅니다 리터럴. (참조섹션 4.1.2.1.)
BYTEA옥제는 때때로 때때로 탈출됩니다 산출. 일반적으로 각각"인쇄 할 수없는"Octet은 그것으로 변환됩니다 동등한 3 자리 옥탈 값과 하나의 백 슬래시가 앞서 있습니다. 최대"인쇄용"Octets는입니다 고객의 표준 표현으로 표시됩니다 캐릭터 세트. 10 진수 값 92 (Backslash)를 가진 낙지는 다음과 같습니다 출력에서 두 배가되었습니다. 세부 사항은표 8-8.
표 8-8.BYTEA출력 탈출 한 옥제
십진 옥넷 값 | 설명 | 탈출 된 출력 표현 | example | 출력 결과 |
---|---|---|---|---|
92 | backslash | \\ | SELECT E '\\ 134':: BYTEA; | \\ |
0 ~ 31 및 127 ~ 255 | "인쇄 할 수없는"Octets | \xxx(Octal Value) | e '\\ 001':: bytea; 선택 | \ 001 |
32 ~ 126 | "인쇄용"Octets | 클라이언트 문자 세트 표현 | 선택 E '\\ 176':: Bytea; | ~ |
프론트 엔드에 따라PostgreSQL당신은 사용하고 있습니다 탈출 및 탈출 측면에서해야 할 추가 작업BYTEA문자열. 예를 들어, 당신도 할 수도 있습니다 인터페이스가 있으면 라인 피드와 캐리지 리턴을 탈출해야합니다. 이것들을 자동으로 번역합니다.
theSQL표준 정의 a 다른 바이너리 스트링 유형,Blob또는사설 토토 큰 개체. 입력 형식은입니다 와 다릅니다BYTEA그러나 제공 기능과 운영자는 대부분 동일합니다.