그토토 꽁 머니데이터 유형을 사용하여 저장할 수 있습니다. 토토 꽁 머니 데이터. 토토 꽁 머니 데이터를 a에 저장하는 것보다 장점이 있습니다.텍스트필드는 다음에 대한 입력 값을 확인한다는 것입니다. 정형화되어 있고, 수행하는 지원 기능이 있습니다 이에 대한 유형 안전 작업; 참조섹션 9.14. 이 데이터 유형의 사용 다음을 사용하여 설치해야 합니다.구성 --with-lib토토 꽁 머니.
그토토 꽁 머니유형은 올바른 형식으로 저장할 수 있습니다."문서"9938_9987"내용"프로덕션에 의해 정의된 프래그먼트토토 꽁 머니Decl? 내용토토 꽁 머니 표준에서. 대략, 이는 콘텐츠 조각이 둘 이상의 조각을 가질 수 있음을 의미합니다. 최상위 요소 또는 문자 노드. 표현토토 꽁 머니값IS 문서특정 여부를 평가하는 데 사용할 수 있습니다.토토 꽁 머니값은 전체 문서이거나 콘텐츠 조각.
유형의 값을 생성하려면토토 꽁 머니에서
문자 데이터, 함수를 사용하세요토토 꽁 머니parse:
토토 꽁 머니PARSE( 문서 | 콘텐츠값)
예:
토토 꽁 머니PARSE (DOCUMENT '<?토토 꽁 머니 version="1.0"?<book<title수동</title<chapter...</chapter</book') 토토 꽁 머니PARSE(CONTENT 'abc<foobar</foo<barfoo</bar')
이것은 문자열을 다음으로 변환하는 유일한 방법이지만 SQL 표준에 따른 토토 꽁 머니 값 PostgreSQL 관련 구문:
토토 꽁 머니 '<foo바</foo' '<foo바</foo'::토토 꽁 머니
또한 사용할 수 있습니다.
그토토 꽁 머니유형이 입력을 검증하지 않습니다. 문서 유형 선언(DTD)에 대한 값 입력 값은 DTD를 지정합니다. 또한 현재는 없습니다 다른 토토 꽁 머니 스키마에 대한 유효성 검사를 위한 내장 지원 토토 꽁 머니 스키마와 같은 언어.
역연산, 문자열 값 생성
에서토토 꽁 머니, 함수를 사용합니다토토 꽁 머니직렬화:
토토 꽁 머니SERIALIZE( 문서 | 콘텐츠값AS유형 )
유형될 수 있습니다문자, 문자 다양함, 또는텍스트(또는 그 중 하나의 별칭). 다시 말하지만, SQL 표준에 따르면 이것이 유일한 방법입니다. 유형 간 변환토토 꽁 머니및 문자 유형을 변환할 수 있지만 PostgreSQL을 사용하면 간단히 캐스팅할 수도 있습니다. 값.
문자열 값이 유형으로 또는 유형에서 캐스트되는 경우토토 꽁 머니통과하지 않고토토 꽁 머니PARSE또는토토 꽁 머니SERIALIZE, 각각의 선택은문서대콘텐츠에 의해 결정됩니다"토토 꽁 머니 옵션"세션 구성 표준 명령을 사용하여 설정할 수 있는 매개변수입니다.
토토 꽁 머니 옵션 설정 문서 | 내용 ;
또는 PostgreSQL과 유사한 구문
토토 꽁 머니option을 문서로 설정 | 내용 ;
기본값은콘텐츠그러니까 모두 토토 꽁 머니 데이터 형식이 허용됩니다.
참고:기본 토토 꽁 머니 옵션 설정을 사용하면 문자열을 유형으로 직접 캐스팅할 수 없습니다.토토 꽁 머니문서 유형이 포함된 경우 선언, 왜냐하면 토토 꽁 머니 콘텐츠 조각의 정의 때문입니다. 그들을 받아들이지 않습니다. 그렇게 해야 한다면 다음 중 하나를 사용하세요.토토 꽁 머니PARSE또는 토토 꽁 머니을 변경하세요 옵션.
여러 문자를 다룰 때는 주의가 필요합니다 클라이언트, 서버 및 전달된 토토 꽁 머니 데이터의 인코딩 그들을 통해. 텍스트 모드를 사용하여 쿼리를 전달할 때 서버 및 쿼리 결과를 클라이언트에 보냅니다(이는 일반적입니다). 모드), PostgreSQL은 사이에 전달되는 모든 문자 데이터를 변환합니다. 클라이언트와 서버, 그리고 그 반대의 경우도 마찬가지입니다. 각 끝의 인코딩; 참조섹션 22.2. 여기에는 문자열이 포함됩니다. 위의 예와 같은 토토 꽁 머니 값의 표현입니다. 이는 일반적으로 인코딩 선언에 다음이 포함되어 있음을 의미합니다. 토토 꽁 머니 데이터의 문자 데이터는 유효하지 않게 될 수 있습니다. 클라이언트 간 이동 중에 다른 인코딩으로 변환됨 및 서버, 내장된 인코딩 선언이 아니기 때문입니다. 변경되었습니다. 이 동작에 대처하기 위해 인코딩 선언 에 대한 입력을 위해 제시된 문자열에 포함되어 있습니다.토토 꽁 머니유형은무시, 콘텐츠가 가정됩니다. 현재 서버 인코딩에 있어야 합니다. 결과적으로 올바른 처리하려면 토토 꽁 머니 데이터의 문자열을 다음에서 전송해야 합니다. 현재 클라이언트 인코딩의 클라이언트입니다. 그것은 책임이다 클라이언트가 문서를 현재 클라이언트로 변환하거나 서버로 전송하기 전에 인코딩하거나 클라이언트가 적절하게 인코딩됩니다. 출력 시 유형의 값토토 꽁 머니인코딩이 없습니다 선언하고 클라이언트는 모든 데이터가 현재 클라이언트 인코딩입니다.
바이너리 모드를 사용하여 쿼리 매개변수를 전달할 때 서버 및 쿼리 결과가 클라이언트로 다시 전송되며 문자 집합은 없습니다. 변환이 수행되므로 상황이 다릅니다. 이에 이 경우 토토 꽁 머니 데이터의 인코딩 선언이 관찰됩니다. 이것이 없으면 데이터는 utf-8에 있는 것으로 간주됩니다. (토토 꽁 머니 표준에서 요구하는 대로, PostgreSQL은 그렇지 않습니다. UTF-16을 지원합니다). 출력 시 데이터에는 인코딩이 포함됩니다. 클라이언트 인코딩을 지정하는 선언(클라이언트가 아닌 경우) 인코딩은 utf-8이며, 이 경우 생략됩니다.
말할 필요도 없이 PostgreSQL로 토토 꽁 머니 데이터를 처리하는 것은 토토 꽁 머니 데이터 인코딩을 사용하면 오류가 덜 발생하고 더 효율적입니다. 클라이언트 인코딩과 서버 인코딩은 동일합니다. 토토 꽁 머니 이후 데이터는 내부적으로 utf-8로 처리되며 계산은 다음과 같습니다. 서버 인코딩도 utf-8인 경우 가장 효율적입니다.
| 주의 |
|
일부 토토 꽁 머니 관련 기능은 다음에서 전혀 작동하지 않을 수 있습니다.
서버 인코딩이 utf-8이 아닌 경우 비ASCII 데이터.
이는 다음의 문제로 알려져 있습니다. |
그토토 꽁 머니데이터 유형이 특이한 점 비교 연산자를 제공하지 않습니다. 이는 잘 정의되고 보편적으로 유용한 비교가 없습니다. 토토 꽁 머니 데이터 알고리즘. 이것의 한 가지 결과는 당신이 비교하여 행을 검색할 수 없습니다.토토 꽁 머니17287_17628
다음에 대한 비교 연산자가 없으므로토토 꽁 머니데이터 유형을 생성할 수 없습니다. 이 유형의 열에 대해 직접 색인을 생성합니다. 빠르게 검색하면 토토 꽁 머니 데이터가 필요합니다. 가능한 해결 방법에는 표현식을 문자열 유형으로 변환하고 이를 인덱싱하거나 XPath 표현식을 인덱싱합니다. 물론 실제 쿼리는 색인화된 표현식으로 검색하도록 조정되어야 합니다.
PostgreSQL의 텍스트 검색 기능도 사용할 수 있습니다 토토 꽁 머니 데이터의 전체 문서 검색 속도를 높입니다. 필요한 그러나 전처리 지원은 아직 PostgreSQL 배포.