Когато използвате TO_CHAR() функция за форматиране на число в Oracle Database, можете да използвате S форматен елемент, за да върне своя знак (т.е. знак плюс за положителни стойности и знак минус за отрицателни стойности).
Можете също да използвате MI форматен елемент, за да върне отрицателни стойности с краен отрицателен знак и положителни стойности с крайно празно място.
Пример за S Елемент за формат
Ето пример за демонстрация на S форматен елемент:
SELECT
TO_CHAR(-7, 'S9') AS "Negative",
TO_CHAR(7, 'S9') AS "Positive"
FROM DUAL; Резултат:
Negative Positive ___________ ___________ -7 +7
S Елементът format може алтернативно да се приложи на последната позиция на модела на формат. Това води до добавяне на знак към резултата:
SELECT
TO_CHAR(-7, '9S') AS "Negative",
TO_CHAR(7, '9S') AS "Positive"
FROM DUAL; Резултат:
Negative Positive ___________ ___________ 7- 7+
Но S Елементът format не може да се появи в двата края на модела на форматиране. Ако е така, възниква грешка:
SELECT TO_CHAR(7, 'S9S')
FROM DUAL; Резултат:
Error report - ORA-01481: invalid number format model
MI Елемент за формат
MI форматен елемент завършващ отрицателен знак в случаите, когато числото е отрицателно, и крайно празно място, когато е положително:
SELECT
TO_CHAR(-7, '9MI') AS "Negative",
TO_CHAR(7, '9MI') AS "Positive"
FROM DUAL; Резултат:
Negative Positive ___________ ___________ 7- 7
Имайте предвид, че MI Елементът format може да се появи само на последната позиция на модела на формат. Ако е в друга позиция, възниква грешка:
SELECT TO_CHAR(7, 'MI9')
FROM DUAL; Резултат:
Error report - ORA-01481: invalid number format model