Pergunta

Estamos tentando refazer o SQL em um produto. O produto armazena XML em uma tabela da seguinte forma:

XML_STORAGE
- UID IDENTITY
- PARENT_ID INTEGER
- SEQ INTEGER
- XML VARCHAR(3800)

A maneira atual de fazer isso é a seguinte:

Recuperar todas as linhas para pai_id = n. Em seguida, analise as linhas buscadas no código e concatença as cordas XML em um XML grande antes de analisar. A coluna SEQ é usada para solicitar o resultado para que as cadeias XML possam ser concatenadas corretamente. Espero que isso esteja claro.

O que estamos tentando fazer é refazer isso para que possamos usar uma variante SQL para recuperar a string inteira e apenas buscar uma linha de volta do DB2. Existe uma função DB2 que nos permitirá concatenar a string em todas essas linhas em uma corda grande no ResultSet. Como seria um SQL. Por favor, me avise. Qualquer ajuda é muito apreciada.

Obrigado! - Azeem

Foi útil?

Solução

Verifique as consultas recursivas no DB2, como mencionado aqui

Outras dicas

Sim existe. Trancar XMLELEMENT, XMLAGG, e XMLSERIALIZE. Isso deve fazer o truque para a maioria das pessoas. Um exemplo que você pode ver na seguinte pergunta Saia uma consulta DB2 SQL XML para um arquivo XML exclusivo

Editar:

Por que você não faz algo como select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table? Se você precisar combinar todas as linhas em uma, então execute um pós -processamento para remover as quebras da linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top