Ao usar o
TO_CHAR()
função para formatar um número no Oracle Database, você pode usar o S
elemento de formato para retornar seu sinal (ou seja, um sinal de mais para valores positivos e um sinal de menos para valores negativos). Você também pode usar o
MI
elemento de formato para retornar valores negativos com um sinal negativo à direita e valores positivos com um espaço em branco à direita. Exemplo do S
Elemento de formato
Aqui está um exemplo para demonstrar o
S
elemento de formato:SELECT
TO_CHAR(-7, 'S9') AS "Negative",
TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL;
Resultado:
Negative Positive ___________ ___________ -7 +7
O
S
elemento de formato pode ser aplicado alternativamente na última posição do modelo de formato. Isso resulta no sinal sendo anexado ao resultado:SELECT
TO_CHAR(-7, '9S') AS "Negative",
TO_CHAR(7, '9S') AS "Positive"
FROM DUAL;
Resultado:
Negative Positive ___________ ___________ 7- 7+
Mas o
S
elemento de formato não pode aparecer em ambas as extremidades do modelo de formato. Se isso acontecer, ocorrerá um erro:SELECT TO_CHAR(7, 'S9S')
FROM DUAL;
Resultado:
Error report - ORA-01481: invalid number format model
O MI
Elemento de formato
O
MI
elemento de formato um sinal negativo final nos casos em que o número é negativo e um espaço em branco final onde é positivo:SELECT
TO_CHAR(-7, '9MI') AS "Negative",
TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL;
Resultado:
Negative Positive ___________ ___________ 7- 7
Observe que o
MI
elemento de formato só pode aparecer na última posição do modelo de formato. Se estiver em qualquer outra posição, ocorre um erro:SELECT TO_CHAR(7, 'MI9')
FROM DUAL;
Resultado:
Error report - ORA-01481: invalid number format model