이것에 설명 된 함수 및 기능과 같은 표현
섹션은 유형 값에 대해 작동롤 토토. 확인하다PostgreSQL: Tài liệu: 9.3: 토토 사이트 Loại정보에 대한 정보
그만큼롤 토토타입. 기능과 같은 표현식롤 토토PARSE
and롤 토토serialize
Type에서 오르락롤 토토는 여기에서 반복되지 않습니다. 대부분의 사용
이러한 기능은 설치가 |구성-with-lib롤 토토.
함수 세트 및 기능과 같은 표현식을 사용할 수 있습니다 SQL 데이터에서 롤 토토 컨텐츠를 생성합니다. 따라서 그들은입니다 쿼리 결과를 롤 토토로 형식화하는 데 특히 적합합니다 클라이언트 응용 프로그램의 처리 문서
롤 토토comment
(텍스트)
함수롤 토토comment
생성
지정된 텍스트와 함께 롤 토토 주석을 포함하는 롤 토토 값
콘텐츠. 텍스트는 포함 할 수 없습니다"--"또는 a로 끝납니다."-"구성은 유효한 롤 토토 주석입니다. 인수가 무인이라면
결과는 null입니다.
예 :
선택 롤 토토Comment ( 'Hello'); 롤 토토comment -------------- <!-안녕하세요-
롤 토토concat
(롤 토토[, ...])
함수롤 토토concat
단일을 만들기 위해 개별 롤 토토 값 목록을 연결합니다.
롤 토토 컨텐츠 조각을 포함하는 값. 널 값은 생략됩니다.
결과는 unnull 인수가없는 경우에만 NULL입니다.
예 :
롤 토토CONCAT ( '<abc/', '<bar foo </bar'); 롤 토토concat ------------------------ <ABC/ <bar foo </bar
롤 토토 선언은 현재 존재하는 경우 다음과 같이 결합됩니다. 다면 인수 값은 동일한 롤 토토 버전 선언을 가지고 있습니다. 결과에 사용되면 버전이 사용되지 않습니다. 모든 논쟁이라면 값은 독립형 선언 값을 갖습니다"예", 그 값은 결과에 사용됩니다. 다면 인수 값에는 독립형 선언 값이 있으며 최소한 하나는"아니오"결과. 그렇지 않으면 결과에는 독립형 선언이 없습니다. 만약 결과는 독립형 선언을 요구하는 것으로 결정되었지만 버전 선언, 버전 1.0의 버전 선언은 다음과 같습니다. 롤 토토에 롤 토토 선언이 필요하기 때문에 사용됩니다. 선언. 인코딩 선언은 모두 무시되고 제거됩니다 사례.
예 :
롤 토토CONCAT를 선택하십시오 ( '<? 롤 토토 버전 = "1.1"? <foo/', '<? xml 버전 = "1.1"standalone = "no"? <bar/'); 롤 토토concat -------------------------------------- <? xml 버전 = "1.1"? <foo/ <bar/
롤 토토element
(이름이름[, 롤 토토attributes (value[asattname] [, ... ])] [, 내용, ...])
the롤 토토element
표현이 생성됩니다
주어진 이름, 속성 및 내용의 롤 토토 요소.
예 :
선택 롤 토토ELEMENT (FOON FOO); 롤 토토element ------------ <foo/ 롤 토토element (이름 foo, 롤 토토attributes ( 'xyz'as bar))를 선택하십시오. 롤 토토element ----------------- <foo bar = "xyz"/ 롤 토토element (이름 foo, 롤 토토attributes (current_date as bar), 'cont', 'ent')를 선택하십시오. 롤 토토element ------------------------------------------------ <foo bar = "2007-01-26" content </foo
유효하지 않은 요소 및 속성 이름은 다음과 같습니다. 불쾌한 캐릭터를 시퀀스로 대체하여 탈출_XHHHH_, 어디HHHH는 캐릭터입니다 16 진수 표기법의 유니 코드 코드 포인트. 예를 들어:
롤 토토ELEMENT를 선택하십시오 (이름 "foo $ bar", 롤 토토attributes ( 'xyz'로 "a & b")); 롤 토토element ------------------------------------ <foo_x0024_bar a_x0026_b = "xyz"/
명시 적 속성 이름은 속성 값은 열 참조이며,이 경우 열의 이름은 기본적으로 속성 이름으로 사용됩니다. 다른 경우에는 속성에는 명시적인 이름이 부여되어야합니다. 이 예는 다음과 같습니다 유효한:
테이블 테스트 생성 (A 롤 토토, B 롤 토토); 테스트에서 XmlElement (이름 테스트, Xmlattributes (a, b))를 선택하십시오.
그러나 이것들은 다음과 같습니다.
테스트에서 롤 토토EMENT (이름 테스트, Xmlattributes ( 'constant'), a, b)를 선택합니다. XmlElement (이름 테스트, Xmlattributes (func (a, b)))를 테스트에서 선택하십시오;
요소 컨텐츠는 지정된 경우 다음에 따라 형식화됩니다 데이터 유형. 내용 자체가 유형 인 경우롤 토토, 복잡한 롤 토토 문서를 구성 할 수 있습니다. 을 위한 예:
롤 토토ELEMENT 선택 (이름 foo, 롤 토토attributes ( 'xyz'as bar), 롤 토토element (이름 ABC), 롤 토토comment ( '테스트'), 롤 토토element (name xyz)); 롤 토토element ----------------------------------------------------- <foo bar = "xyz" <abc/ <!-테스트- <xyz/</foo
다른 유형의 내용은 유효한 롤 토토로 형식화됩니다. 문자 데이터. 이것은 특히 문자 <, , & & & 엔티티로 변환됩니다. 이진 데이터 (데이터 유형BYTEA)는 Base64 또는에 표시됩니다 구성 설정에 따라 16 진수 인코딩 매개 변수롤 토토binary. 그만큼 개별 데이터 유형에 대한 특정 동작은 진화 할 것으로 예상됩니다. SQL 및 PostgreSQL 데이터 유형을 롤 토토로 정렬하려면 스키마 사양,이 시점에서보다 정확한 설명 나타날 것입니다.
롤 토토forest
(컨텐츠[as이름] [, ...])
the롤 토토forest
표현이 생성됩니다
주어진 이름을 사용하여 요소의 롤 토토 숲 (시퀀스)
콘텐츠.
예 :
롤 토토FOREST ( 'ABC', FOO, 123 AS BAR); 롤 토토forest --------------------------------- <foo abc </foo <bar 123 </bar 롤 토토FOREST (table_name, column_name)를 선택하십시오. information_schema.columns에서 여기서 table_schema = 'pg_catalog'; 롤 토토forest -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------. <table_name pg_authid </table_name <culns_name rolname </column_name <table_name pg_authid </table_name <culns_name rolsuper </column_name ...
두 번째 예에서 볼 수 있듯이 요소 이름을 생략 할 수 있습니다. 컨텐츠 값이 열 참조 인 경우 열 이름은 기본적으로 사용됩니다. 그렇지 않으면 이름이 있어야합니다 지정.
유효하지 않은 요소 이름 롤 토토 이름이 표시된대로 탈출됩니다.
을 위한롤 토토element
위. 비슷하게,
컨텐츠 데이터가 유효한 롤 토토 컨텐츠를 만들기 위해 피해서
이미 유형롤 토토.
롤 토토 숲은 유효한 롤 토토 문서가 아닙니다.
둘 이상의 요소로 구성되므로 랩하는 것이 유용 할 수 있습니다롤 토토forest
표현롤 토토element
.
롤 토토pi
(이름대상[, 컨텐츠])
the롤 토토pi
expression을 생성합니다
롤 토토 처리 지침. 현재 존재하는 경우 내용은 안됩니다
문자 순서 포함?.
예 :
선택 롤 토토PI (이름 php, 'echo "hello world";'); 롤 토토PI --------------------------------- <? php echo "Hello World";?
롤 토토root
(롤 토토, 버전텍스트| 가치 없음 [, 독립형 예 | 아니오 | 가치])
the롤 토토root
표현이 변경됩니다
롤 토토 값의 루트 노드의 속성. 버전이있는 경우
지정된 루트 노드 버전의 값을 대체합니다.
선언; 독립형 설정이 지정되면 대체됩니다
루트 노드의 독립형 선언의 가치.
롤 토토ROOT (롤 토토PARSE (Document '<? 롤 토토 버전 = "1.1"? <content ABC </content'), 버전 '1.0', 독립형 예); 롤 토토root ------------------------------------------ <? xml 버전 = "1.0"standalone = "yes"? <content ABC </content
롤 토토agg
(롤 토토)
함수롤 토토agg
와는 달리
여기에 설명 된 다른 기능, 골재 기능. 그것
입력 값을 집계 함수 호출에 연결합니다.
좋다롤 토토concat
연결은 표현이 아닌 행에서 발생합니다
단일 행. 보다PostgreSQL : 문서 : 9.3 : 토토 커뮤니티 함수집계 함수에 대한 추가 정보는
예 :
테이블 테스트 생성 (y int, x xml); 테스트 값에 삽입 (1, '<foo abc </foo'); 테스트 값에 삽입 (2, '<bar/'); 테스트에서 롤 토토agg (x)를 선택하십시오. 롤 토토agg ------------------------ <foo abc </foo <bar/
연결 순서를 결정하려면주문 by조항이 집계 호출에 추가 될 수 있습니다 에 설명 된대로섹션 4.2.7. 을 위한 예:
테스트에서 롤 토토agg (x order by y desc)를 선택합니다. 롤 토토agg ------------------------ <bar/ <foo abc </foo
다음과 같은 비표준 접근법이 권장되었습니다 이전 버전, 특정 경우에도 여전히 유용 할 수 있습니다.
롤 토토agg (x)를 선택하십시오. 롤 토토agg ------------------------ <bar/ <foo abc </foo
이 섹션에 설명 된 표현식은의 속성을 확인합니다.롤 토토값.
롤 토토is document
표현is documentTRUE를 반환합니다 인수 롤 토토 값이 적절한 롤 토토 문서 인 경우 (즉, 콘텐츠 조각이 아닙니다) 또는 인수가 널. 보다PostgreSQL: Tài liệu: 9.3: 토토 사이트 Loại문서와 콘텐츠 조각의 차이.
롤 토토문서가 아님
표현문서가 아님반환 인수 롤 토토 값이 적절한 롤 토토 문서 인 경우 false, true (즉, 콘텐츠 조각입니다) 또는 널 인수는 널입니다.
롤 토토exists
(텍스트통과 [by ref]롤 토토[by ref])
함수롤 토토exists
반환
첫 번째 인수의 XPath 표현이
노드, 그렇지 않으면 false. (두 인수 중 하나 인 경우 결과는 결과입니다
null입니다.)
예 :
롤 토토exists 선택 ( '// town [) =' '토론토' '] 롤 토토exists ------------ 티 (1 행)
theref절은 영향을 미치지 않습니다
PostgreSQL이지만 SQL 적합성 및 호환성에 허용됩니다
다른 구현과 함께. SQL 표준 당, 첫 번째by ref두 번째는 선택 사항입니다. 또한
SQL 표준은를 지정합니다.롤 토토exists
XQuery 표현식을 작성하도록 구성하십시오
첫 번째 인수로서, 그러나 PostgreSQL은 현재 XPath 만 지원합니다.
XQuery의 하위 집합입니다.
롤 토토_is_well_formed
(텍스트)롤 토토_is_well_formed_document
(텍스트)롤 토토_is_well_formed_content
(텍스트)
이 기능은 a를 확인합니다.텍스트String은 잘 형성된 롤 토토이며 부울 결과를 반환합니다.롤 토토_is_well_formed_document
확인 a
형성된 문서, while롤 토토_is_well_formed_content
잘 형성된 검사
콘텐츠.롤 토토_is_well_formed
이전 IF롤 토토option구성 매개 변수가 설정되었습니다문서또는 후자가 설정된 경우컨텐츠. 이것은롤 토토_is_well_formed
a
유형에 간단한 캐스트롤 토토성공할 것입니다
다른 두 기능은
해당 변형의롤 토토PARSE
성공할 것입니다.
예 :
Xmloption을 문서화하도록 설정; 롤 토토_is_well_formed ( '<')를 선택하십시오. 롤 토토_is_well_formed ------------------- 에프 (1 줄) 선택 롤 토토_is_well_formed ( '<abc/'); 롤 토토_is_well_formed ------------------- 티 (1 줄) 롤 토토option을 컨텐츠로 설정하십시오. 선택 롤 토토_is_well_formed ( 'ABC'); 롤 토토_is_well_formed ------------------- 티 (1 줄) 롤 토토_is_well_formed_document를 선택하십시오 ( '<pg : foo xmlns : pg = "http://postgresql.org/stuff" bar </pg : foo'); 롤 토토_is_well_formed_document --------------------------------- 티 (1 줄) 롤 토토_is_well_formed_document를 선택하십시오 ( '<pg : foo xmlns : pg = "http://postgresql.org/stuff" bar </my : foo'); 롤 토토_is_well_formed_document --------------------------------- 에프 (1 행)
마지막 예제는 수표에 여부가 포함되어 있음을 보여줍니다 네임 스페이스가 올바르게 일치합니다.
데이터 유형의 처리 값롤 토토,
PostgreSQL은 함수를 제공합니다xpath
및xpath_exists
XPath 1.0 표현식.
xpath
(xpath, 롤 토토[, NSARRAY])
함수xpath
XPath Expressionxpath(a텍스트값) 롤 토토 값에 대한롤 토토. 롤 토토 값의 배열을 반환합니다
XPath 표현식에 의해 생성 된 노드 세트에 해당합니다. 만약에
XPath 표현식은 노드 세트 대신 스칼라 값을 반환합니다.
단일 요소 배열이 반환됩니다.
두 번째 인수는 잘 형성된 롤 토토 문서 여야합니다. ~ 안에 특히 단일 루트 노드 요소가 있어야합니다.
함수의 선택적 세 번째 인수는 배열입니다.
네임 스페이스 매핑. 이 배열은 2 차원이어야합니다텍스트두 번째 축의 길이를 가진 배열
2와 같다 (즉, 배열 배열이어야합니다.
정확히 2 개의 요소로 구성됩니다). 각각의 첫 번째 요소
배열 항목은 네임 스페이스 이름 (별칭)이고 두 번째는 네임 스페이스입니다.
우리. 이 배열에 제공된 별칭이
롤 토토 문서 자체에 사용되는 것과 동일
롤 토토 문서와의 단어,xpath
함수 컨텍스트, 별칭은Local).
예 :
xpath ( '/my : a/text ()', '<my : a xmlns : my = "http://example.com" test </my : a', 배열 [배열 [ 'my', 'http://example.com']); xpath -------- 시험
기본 (익명) 네임 스페이스를 처리하려면 같은 작업을 수행하십시오 이것:
xpath ( '// mydefns : b/text ()', '<a xmlns = "http://example.com" <b test </b </a', 배열 [배열 [ 'mydefns', 'http://example.com']); xpath -------- 시험
xpath_exists
(xpath, 롤 토토[, NSARRAY])
함수xpath_exists
is
특수 형태의xpath
함수. 개별 롤 토토 값을 반환하는 대신
XPath를 만족 시키면이 기능은 부울을 반환합니다
쿼리가 충족되었는지 여부. 이 기능은 동일합니다
표준롤 토토exists술어,
네임 스페이스 매핑 지원을 제공한다는 점을 제외하고
논쟁.
예 :
xpath_exists를 선택하십시오 ( '/my : a/text ()', '<my : a xmlns : my = "http://example.com" test </my : a', 배열 [배열 [ 'my', 'http://example.com']); xpath_exists -------------- 티 (1 행)
다음 함수는 관계형 테이블의 내용을 롤 토토 값. 롤 토토 내보내기 기능으로 생각할 수 있습니다 :
TABLE_TO_롤 토토 (TBL Regclass, Nulls Boolean, Tableforest Boolean, Targetns Text) query_to_롤 토토 (쿼리 텍스트, Nulls 부울, Tableforest Boolean, Targetns Text) cursor_to_롤 토토 (cursor refcursor, count int, nulls boolean, TableForest Boolean, Targetns Text)
각 함수의 반환 유형은입니다.롤 토토.
table_to_롤 토토
컨텐츠를 맵핑합니다
지명 된 테이블은 매개 변수로 전달TBL. 그만큼Regclass타입
일반적인 표기법을 사용하여 테이블을 식별하는 문자열을 허용합니다.
선택적 스키마 자격 및 이중 인용문 포함.query_to_롤 토토
쿼리를 실행합니다
텍스트는 매개 변수로 전달됩니다쿼리및
결과 세트를지도합니다.cursor_to_롤 토토
매개 변수커서. 이 변형입니다
큰 테이블을 매핑 해야하는 경우 권장됩니다. 결과적으로
값은 각 함수별로 메모리에서 구축됩니다.
ifTableForest는 거짓이고 결과 롤 토토 문서 결과는 다음과 같습니다.
<pableName <줄 <councleName1 data </columnname1 <councleName2 data </columnname2 </row <줄 ... </row ... </tableName
if탁자사실입니다 다음과 같이 보이는 롤 토토 컨텐츠 조각 :
<pableName <councleName1 data </columnname1 <councleName2 data </columnname2 </tableName <tableName ... </tableName ...
테이블 이름이없는 경우, 즉 쿼리를 매핑 할 때 또는 커서, 문자열테이블에서 사용됩니다 첫 번째 형식,Row두 번째 체재.
이 형식들 사이의 선택은 사용자에게 달려 있습니다. 첫 번째
형식은 적절한 롤 토토 문서이며 많은 사람들에게 중요합니다.
응용 프로그램. 두 번째 형식은에서 더 유용한 경향이 있습니다.cursor_to_롤 토토
결과가있는 경우 기능
값은 나중에 하나의 문서로 다시 조립되어야합니다. 그만큼
위에서 논의 된 롤 토토 컨텐츠 생성 기능, 특히롤 토토element
는 변경할 수 있습니다
맛의 결과.
데이터 값은
기능롤 토토element
위.
매개 변수널스결정 널 값이 출력에 포함되어야하는지 여부. 사실이라면 널 열의 값은 다음과 같이 표시됩니다.
<ColumnName XSI : nil = "true"/
여기서XSI롤 토토 네임 스페이스 접두사입니다 롤 토토 스키마 인스턴스의 경우 적절한 네임 스페이스 선언이 있습니다 결과 값에 추가됩니다. False 인 경우 NULL을 포함하는 열입니다 값은 출력에서 단순히 생략됩니다.
매개 변수targetns결과의 원하는 롤 토토 네임 스페이스. 특정 네임 스페이스가없는 경우 원한다면 빈 문자열이 전달되어야합니다.
다음 함수는 롤 토토 스키마 문서를 설명합니다 위의 해당 기능에 의해 수행 된 매핑 :
TABLE_TO_롤 토토SCHEMA (TBL Regclass, Nulls Boolean, Tableforest Boolean, Targetns 텍스트) query_to_롤 토토schema (쿼리 텍스트, Nulls Boolean, Tableforest Boolean, Targetns 텍스트) cursor_to_롤 토토schema (Cursor Refcursor, Nulls Boolean, Tableforest Boolean, Targetns Text)
동일한 매개 변수를 전달하는 것이 중요합니다. 일치하는 롤 토토 데이터 매핑 및 롤 토토 스키마 문서를 얻습니다.
다음 함수는 롤 토토 데이터 매핑을 생성합니다 하나의 문서 (또는 포레스트)의 해당 롤 토토 스키마 링크 함께. 그들은 독립적 인 곳에서 유용 할 수 있습니다 자기 설명 결과가 필요합니다 :
table_to_롤 토토_and_xmlschema (tbl regclass, nulls boolean, tableforest boolean, targetns 텍스트) query_to_롤 토토_and_xmlschema (쿼리 텍스트, nulls boolean, 탁자 부울, targetns text)
또한 다음 기능을 생산할 수 있습니다 전체 스키마 또는 전체 전류의 유사한 매핑 데이터 베이스:
schema_to_xml (스키마 이름, nulls boolean, 탁자 부울, targetns 텍스트) schema_to_xmlschema (스키마 이름, nulls boolean, 탁자 부울, targetns 텍스트) schema_to_xml_and_xmlschema (스키마 이름, nulls boolean, 탁자 부울, Targetns 텍스트) database_to_xml (nulls boolean, 탁자 부울, Targetns 텍스트) database_to_xmlschema (nulls boolean, 탁자 부울, Targetns 텍스트) database_to_xml_and_xmlschema (nulls boolean, 탁자 부울, targetns 텍스트)
이들은 잠재적으로 많은 데이터를 생성하는데, 메모리에 구축됩니다. 큰 컨텐츠 매핑을 요청할 때 스키마 또는 데이터베이스, 매핑을 고려하는 것이 가치가있을 수 있습니다. 대신 테이블은 대신 커서를 통해서도 개별적으로 테이블입니다.
스키마 컨텐츠 매핑의 결과는 다음과 같습니다.
<schemaname 표 1 매핑 표 2 매핑 ... </schemaname
테이블 매핑 형식이에 따라 다릅니다.TableForest위에서 설명한대로 매개 변수.
데이터베이스 콘텐츠 매핑의 결과는 다음과 같습니다.
<dbname <schema1name ... </schema1name <Schema2Name ... </schema2name ... </dbname
스키마 매핑이 위와 같은 곳.
이러한 함수에 의해 생성 된 출력을 사용하는 예그림 9-1show an
XSLT 스타일 시트의 출력을 변환하는 스타일 시트table_to_롤 토토_and_xmlschema
HTML 문서에
테이블 데이터의 표 표현을 포함합니다. 비슷한
방식으로, 이러한 기능의 결과는
기타 롤 토토 기반 형식.
그림 9-1. SQL/롤 토토 출력을 변환하기위한 XSLT 스타일 시트 html
<? xml 버전 = "1.0"? <xsl : 스타일 버전 = "1.0" xmlns : xsl = "http://www.w3.org/1999/xsl/transform" xmlns : xsd = "http://www.w3.org/2001/xmlschema" xmlns = "http://www.w3.org/1999/xhtml" <xsl : 출력 메소드 = "xml" doctype-system = "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd" doctype-public = "-// w3c/dtd xhtml 1.0 엄격한 // en" 인트 = "예"/ <xsl : 템플릿 매치 = "/*" <xsl : variable name = "schema"select = "// xsd : schema"/ <xsl : 변수 이름 = "tabletypename" select = "$ schema/xsd : element [@name = name (current ())]/@type"/ <xsl : 변수 이름 = "rowtypename" select = "$ schema/xsd : complextype [@name = $ tabletypeName]/xsd : 시퀀스/xsd : 요소 [@name = 'row']/@type"/ <html <헤드 <title <xsl : select value-of select = "name (current ())"/ </title </head <body <테이블 <tr <xsl : for-each select = "$ schema/xsd : complextype [@name = $ rowtypename]/xsd : sequence/xsd : element/@name" <th <xsl : select value-of select = "."/ </th </xsl : for-each </tr <xsl : for-each select = "row" <tr <xsl : for-each select = "*" <td <xsl : select value-of select = "."/ </td </xsl : for-each </tr </xsl : for-each </테이블 </body </html </xsl : 템플릿 </xsl : 스타일 시트
이전 | 배트맨 롤 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
텍스트 검색 기능 및 연산자 | up | JSON 기능 및 연산자 |