Operadores de condição

Operadores comuns

Os seguintes operadores de comparação são suportados pelos elementos XML condition e doccondition:

Operador

Descrição

eq

O conteúdo do campo é igual ao valor especificado.

neq

O conteúdo do campo não é igual ao valor especificado.

in

O conteúdo do campo é igual a um valor especificado de um conjunto de valores.

notin

O conteúdo do campo não é igual a um valor especificado de um conjunto de valores.

is_null

Verifica se o conteúdo do campo é NULL

is_not_null

Verifica se o valor do campo não é igual a NULL

Operadores de condição

Operador

Descrição

num_gt

O conteúdo do campo é maior do que o valor especificado.

num_geq

O conteúdo do campo é maior do que ou igual ao valor especificado.

num_lt

O conteúdo do campo é menor do que o valor especificado.

num_leq

O conteúdo do campo é inferior ou igual ao valor especificado.

num_eq

O conteúdo do campo é igual ao valor especificado.

num_neq

O conteúdo do campo não é igual ao valor especificado.

num_in

O conteúdo do campo é igual a um valor especificado de um conjunto de valores.

num_notin

O conteúdo do campo não é igual a um valor especificado de um conjunto de valores.

timestamp_eq

Verifica se o carimbo de data/hora do campo corresponde ao valor de comparação especificado (value). O valor de comparação deve ser especificado no formato dd.MM.aaaa HH:mm:ss – isto também se aplica a todos os outros operadores timestamp_*.

timestamp_geq

Verifica se a marca de hora do campo é maior ou igual ao valor de comparação.

timestamp_gt

Verifica se a marca de hora do campo é maior do que o valor de comparação.

timestamp_leq

Verifica se o carimbo de data/hora do campo é inferior ou igual ao valor de comparação.

timestamp_lt

Verifica se o carimbo de data/hora do campo é inferior ao valor de comparação.

time_eq

Verifica a igualdade da hora do campo. O valor de comparação deve ser especificado no formato HH:mm:ss – isto também se aplica a todos os outros operadores time_*.

time_geq

Verifica se a hora do campo é maior do que ou igual ao valor de comparação

time_gt

Verifica se a hora do campo é maior do que o valor de comparação

time_leq

Verifica se a hora do campo é menor do que ou igual ao valor de comparação

time_lt

Verifica se a hora do campo é menor do que o valor de comparação

date_eq

Verifica se a data do campo é igual ao valor de comparação. O valor de comparação deve ser especificado no formato dd.MM.aaaa – isto também se aplica a todos os outros operadores date_*.

date_geq

Verifica se a data do campo é maior do que ou igual ao valor de comparação

date_gt

Verifica se a data do campo é maior do que o valor de comparação

date_leq

Verifica se a data do campo é menor do que ou igual ao valor de comparação

date_lt

Verifica se a data do campo é menor do que o valor de comparação

como
(apenas com campos do banco de dados da cadeia de caracteres, por exemplo, CHAR, VARCHAR)

Comparação de valores de campo com uma cadeia de caracteres variável
São permitidos os seguintes espaços reservados:
* Nenhum ou qualquer número de caracteres
? Apenas um caractere
\ Caractere de mascaramento para procurar
espaços reservados ou mascarar caracteres na
forma: \\ ou \* ou \?

Exemplo:

<condition fieldname="OBJECTID"
logicaloperator="like">
<value>*10?0\\20?0*</value>
</condition>

A pesquisa é realizada para valores como
5551050\20106667 ou 1080\204044, mas não 34510550\2030*

char_
creationtimestamp

Extrai carimbos de data/hora (data e hora) dos campos do banco de dados de origem do tipo CHAR/VARCHAR. Seus valores formam a base para restringir o intervalo de dados a ser extraído com os parâmetros de linha de comando -begindate
(-begintime) ou -enddate (-endtime) [ver capítulo Argumentos específicos do banco de dados de origem].
Vários campos são separados pela combinação de caracteres #-#. Para cada campo, o formato do carimbo de data/hora é especificado no elemento XML value. Este formato contém os valores no campo correspondente do banco de dados de origem.

Exemplo:

<condition fieldname="VC_DATE#-#VC_TIME"
logicaloperator="char_creationtimestamp">
<value>yyyyMMdd</value>
<value>HHmmss</value>
</condition>

Quando usar o operador char_creationtimestamp, esteja ciente dos efeitos possíveis de determinados formatos de hora do campo do banco de dados de origem na classificação e extração de dados. Os campos do banco de dados em um formato de hora são extraídos em ordem alfabética. Por exemplo, se os valores do campo de data no banco de dados forem salvos em formato ddMMaaaa, a data 23021999 será extraída quando for extraído o intervalo de tempo 15.01.2000 - 31.12.2000 porque em termos alfabéticos, esta data situa-se entre a data de início e de fim. No entanto, a data 09122000 não está neste intervalo porque é interpretada como anterior à data de início.

date_
creationtimestamp

Os carimbos de data/hora (data e hora) são extraídos dos campos do banco de dados de origem com horas que são de um tipo de dados de hora dependente do sistema de banco de dados. Seus valores formam a base para restringir o intervalo de dados a ser extraído com os parâmetros de linha de comando -begindate
(-begintime) ou -enddate (-endtime) [ver capítulo Argumentos específicos do banco de dados de origem].
Vários campos são separados pela combinação de caracteres #-#. Para cada campo a ser extraído, os elementos XML value são usados para especificar um dos três tipos de dados de hora correspondentes aos campos do banco de dados de origem. Apenas são permitidos os seguintes tipos de dados nas combinações especificadas: DATE/TIME ou TIME/DATE ou TIMESTAMP ou DATE

Exemplo:

<condition fieldname="CHG_DATE#-#CHG_TIME"
logicaloperator="date_creationtimestamp">
<value>DATE</value>
<value>TIME</value>
</condition>

valueconstraint

Especifica um campo do sistema de banco de dados de origem com valores inteiros que são usados para delimitar o intervalo de dados a ser extraído com o parâmetro de linha de comando -valueconstraint
[ver o capítulo Argumentos específicos do banco de dados de origem].
O campo a ser extraído tem de ser do tipo de dados inteiro.

Exemplo:

<condition fieldname="INTEGERFIELD"
logicaloperator="valueconstraint"/>

Quando usar os operadores timestamp_*, time_* e date_* da tabela acima, é preciso saber qual tipo de dados e em qual formato se baseia o valor extraído do sistema de banco de dados correspondente (servidor Oracle, IBM DB2, MS SQL).

As tabelas seguintes fornecem uma visão geral dos diferentes tipos de dados e formatos do banco de dados e mostram alguns exemplos de formatos gerados no arquivo de saída XML.

Tipo de dados Oracle/TIMESTAMP

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 12:25:11

Time = Hora de criação do valor do campo do banco de dados

04:02:36

21.12.2005 04:02:36

Date = Data de criação do valor do campo do banco de dados

Tipo de dados Oracle/DATE

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 12:25:11

Time = Hora de criação do valor do campo do banco de dados

04:02:36

21.12.2005 04:02:36

Date = Data de criação do valor do campo do banco de dados

O tipo de dados Oracle DATE salva valores do carimbo de data/hora exclusivamente em formato dd.MM.aaaa HH:mm:ss. Para extrair os dados necessários de um banco de dados Oracle, precisa configurar devidamente as condições de extração quando usar operadores date_*.

Exemplo

Quer extrair todos os registros de dados com a data 16.09.2004, independentemente da hora. Se especificar a condição seguinte na configuração da tabela:

<condition fieldname="TACT_TDATE" logicaloperator="date_eq">

<value>16.09.2004</value>

</condition>

apenas serão extraídos registros de dados com o carimbo de data/hora 16.09.2004 00:00:00. Para garantir que todos os registros da data especificada são extraídos, é necessário reescrever a condição da seguinte maneira:

<booleancondition logicaloperator="AND">

<condition fieldname="TACT_TDATE"

logicaloperator="date_geq">

<value>16.09.2004</value>

</condition>

<condition fieldname="TACT_TDATE"

logicaloperator="date_lt">

<value>17.09.2004</value>

</condition>

</booleancondition>

Com a condição especificada, todos os registros de dados com a data 16.09.2004 e qualquer hora serão extraídos.

Tipo de dados IBM DB2/TIMESTAMP

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005 04:02:36

07.05.2005 04:02:36

-

Tipo de dados IBM DB2/DATE

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005

07.05.2005

-

Tipo de dados IBM DB2/TIME

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

04:02:36

04:02:36

-

Tipo de dados Servidor MS SQL/DATETIME

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005 04:02:36

07.05.2005 04:02:36

-

07.05.2005

07.05.2005 00:00:00

A hora é sempre 00:00:00

04:02:36

01.01.1900 04:02:36

A data é sempre 01:01:1900

Tipo de dados Servidor MS SQL/SMALLDATETIME

Formato do valor gravado no banco de dados (exemplo)

Formato de resultado no arquivo de saída XML (exemplo)

Nota

07.05.2005 04:02:36

07.05.2005 04:02:00

Hora apenas correta ao minuto

07.05.2005

07.05.2005 00:00:00

A hora é sempre 00:00:00

04:02:36

01.01.1900 04:02:00

A data é sempre 01.01.1900 e a hora está correta ao minuto

operadores doccondition

Operador

Descrição

exists

O campo existe.

notexists

O campo não existe.