Nesta seção a tabela 5 mostra a lista de precedência para cada tipo de dados. Observe que:
Se essas funções duplicadas existirem, a opção de qual será chamada é determinada por um algoritmo de duas passagens. A primeira passagem tenta localizar uma correspondência utilizando o mesmo algoritmo que é utilizado para resolver funções em um banco de dados não-Unicode. Se nenhuma correspondência for encontrada, então uma segunda passagem será feita levando-se em conta a seguinte precedência de promoção para as cadeias CHAR e GRAPHIC:
GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB
A seguinte entrada foi incluída na lista introduzida como: "As seguintes conversões que envolvem tipos distintos são suportadas":
A seguir, atualizações para a "Tabela 6. Conversões Suportadas Entre
Tipos de Dados Internos". Somente as linhas afetadas da tabela são
incluídas.
Tabela 17. Conversões suportadas entre Tipos de Dados Internos
Tipo de Dados de
|
C H A R |
V A R C H A R |
L O N G V A R C H A R |
C L O B |
G R A P H I C |
V A R G R A P H I C |
L O N G V A R G R A P H I C |
D B C L O B |
---|---|---|---|---|---|---|---|---|
CHAR | S | S | S | S | S1 | S1 | - | - |
VARCHAR | S | S | S | S | S1 | S1 | - | - |
LONGVARCHAR | S | S | S | S | - | - | S1 | S1 |
CLOB | S | S | S | S | - | - | - | S1 |
GRAPHIC | S1 | S1 | - | - | S | S | S | S |
VARGRAPHIC | S1 | S1 | - | - | S | S | S | S |
LONGVARGRAPHIC | - | - | S1 | S1 | S | S | S | S |
DBCLOB | - | - | - | S1 | S | S | S | S |
Atribuições e comparações que envolvem dados de caractere e dados gráficos são somente suportadas quando uma das cadeias é um literal. Para a resolução da função, os literais gráficos e de caractere corresponderão aos parâmetros da função de caractere e gráfica.
A seguir, atualizações para a "Tabela 7. Compatibilidade de Tipos de
Dados para Atribuições e Comparações". Somente as linhas afetadas da
tabela e a nova nota de rodapé 6 foram incluídas:
Operandos | Inteiro Binário | Número Decimal | Ponto Flutuante | Cadeia de Caracteres | Cadeia Gráfica | Data | Hora | Regis-
tro de Tempo | Cadeia Binária | UDT |
---|---|---|---|---|---|---|---|---|---|---|
Cadeia de Caracteres | Não | Não | Não | Sim | Sim 6 | 1 | 1 | 1 | Não 3 | 2 |
Cadeia Gráfica | Não | Não | Não | Sim 6 | Sim | Não | Não | Não | Não | 2 |
Atribuição de Armazenamento
O último parágrafo desta subseção foi modificado desta forma:
Quando uma cadeia é atribuída a uma coluna de comprimento fixo e o comprimento da cadeia é menor que o atributo de comprimento do destino, a cadeia é preenchida à direita com o número necessário de espaços brancos de byte simples, byte duplo ou UCS-22. O caractere de enchimento é sempre um espaço branco para as colunas definidas com o atributo FOR BIT DATA.
Atribuição de Recuperação
O terceiro parágrafo desta subseção foi modificado desta forma:
Quando uma cadeia de caracteres é atribuída a uma variável de comprimento fixo e o comprimento da cadeia é menor que o atributo de comprimento do destino, a cadeia é preenchida à direita com o número necessário de espaços brancos de byte simples, byte duplo ou UCS-22. O caractere de enchimento é sempre um espaço branco mesmo para as cadeias definidas com o atributo FOR BIT DATA.
Regras de Conversão para Atribuições de Cadeia
O seguinte parágrafo foi incluído no final desta subseção:
Para bancos de dados Unicode, cadeias de caracteres podem ser atribuídas a uma coluna gráfica e cadeias gráficas podem ser atribuídas a uma coluna de caracteres.
Considerações DBCS para Atribuições de Cadeia Gráfica
O primeiro parágrafo desta subseção foi modificado desta forma:
As atribuições de cadeia gráfica são processadas de maneira análoga àquela feita para cadeias de caracteres. Para bancos de dados não-Unicode, os tipos de dados da cadeia gráfica são compatíveis somente com outros tipos de dados da cadeia gráfica e nunca com tipos de dados numéricos, da cadeia de caracteres ou de data/hora. Para bancos de dados Unicode, os tipos de dados da cadeia gráfica são compatíveis com os tipos de dados da cadeia de caracteres.
Regras de Conversão para Comparação
Esta subseção foi modificada desta forma:
Quando duas cadeias são comparadas, uma delas é convertida primeiro, se necessário, para o esquema de codificação e página de códigos da outra cadeia. Para obter detalhes, consulte a seção "Regras para Conversões de Cadeias" do "Capítulo 3. Elementos de Linguagem" na seção SQL Reference.
Esta é uma nova subseção inserida após a subseção "Cadeias Gráficas".
Em um banco de dados Unicode, as cadeias de caracteres e as cadeias
gráficas são compatíveis.
Se um operando for... | E o outro operando for... | O tipo de dados do resultado será... |
---|---|---|
GRAPHIC(x) | CHAR(y) ou GRAPHIC(y) | GRAPHIC(z) em que z = max(x,y) |
VARGRAPHIC(x) | CHAR(y) ou VARCHAR(y) | VARGRAPHIC(z) em que z = max(x,y) |
VARCHAR(x) | GRAPHIC(y) ou VARGRAPHIC | VARGRAPHIC(z) em que z = max(x,y) |
LONG VARGRAPHIC | CHAR(y) ou VARCHAR(y) ou LONG VARCHAR | LONG VARGRAPHIC |
LONG VARCHAR | GRAPHIC(y) ou VARGRAPHIC(y) | LONG VARGRAPHIC |
DBCLOB(x) | CHAR(y) ou VARCHAR(y) ou CLOB(y) | DBCLOB(z) em que z = max(x,y) |
DBCLOB(x) | LONG VARCHAR | DBCLOB(z) em que z = max(x,16350) |
CLOB(x) | GRAPHIC(y) ou VARGRAPHIC(y) | DBCLOB(z) em que z = max(x,y) |
CLOB(x) | LONG VARGRAPHIC | DBCLOB(z) em que z = max(x,16350) |
O terceiro ponto foi incluído na seguinte lista dessa seção:
Para cada par de páginas de código, o resultado é determinado pelo aplicativo seqüencial das seguintes regras:
O seguinte foi incluído:
Em um banco de dados Unicode, uma expressão que aceita uma cadeia de caracteres ou gráfica aceitará todos os tipos de cadeia na quais a conversão é suportada.
O seguinte foi incluído no final desta subseção:
Em um banco de dados Unicode, a concatenação que envolve operandos da cadeia de caracteres e da cadeia gráfica converterão primeiro os operandos de caractere para operandos gráficos. Observe que em um banco de dados Unicode, a concatenação não envolve operandos de caractere e gráficos.
A seguinte entrada foi incluída na lista introduzida pela sentença: "As seguintes regras aplicam-se a todos os tipos de predicados":