2011-03-08 2 views
1

"data"라는 이름의 bytea 타입의 컬럼이있는 테이블을 포함하고있는 PostgreSQL 데이터베이스를 가지고 있습니다. "data"에는 큰 XML 데이터가 포함되어 있습니다.bytea-column의 XML 데이터를 포함하는 테이블로부터의 SELECT

"ID57841"이 포함 된 <fw:MyID></fw:MyID>이라는 "데이터"에 XML 요소가있는 특정 행을 검색 할 수 있기를 원합니다. 그러면 <fw:MyID>ID57841</fw:MyID>처럼 보일 것입니다.

또한 해당 열에서 특정 XML 요소를 출력하고 싶습니다 (예 : <fw:MyPassword></fw:MyPassword>).

데이터베이스에 쓸 수 없으며 읽기 전용입니다. 나는 대답을 많이 봤 거든,하지만 도움이 아무것도 날 수 없어. 누군가 나를 도울 수 있습니까?

+0

역 따옴표를 사용하여 마크 업을 벗어날 수 있습니다. –

답변

1

convert_from()을 사용하여 bytea 열을 "즉시"텍스트 열로 변환 한 다음 결과에 xpath() 함수를 적용 할 수 있어야합니다. 같은

뭔가 :

 
SELECT xpath('/fw:MyPassword/text()', convert_from(bytea_column, 'UTF-8')) 
FROM your_table; 

당신은 가능성이 가장 높은 세 번째 매개 변수로 네임 스페이스를 제공해야합니다.
이에 대한 자세한 내용은 사용 설명서를 체크 아웃 :
http://www.postgresql.org/docs/current/static/functions-xml.html#FUNCTIONS-XML-PROCESSING

을 Btw는 : 귀하의 게시물에 < 및 >을 inlcude하기 위해, 당신은 HTML 엔티티를 사용할 수 있습니다 & LT; 및 & gt;

관련 문제