Funkcje tekstowe SQL będziemy omawiali na przykładzie darmowej bazy danych HR Oracle.
http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
Funkcja ASCII()
Konwertuje pojedynczy ciąg znaków na odpowiadający mu kod ASCII z zakresu od 0 do 255. Jeśli wyrażenie znakowe zostanie przetworzone na wiele znaków, zwracany jest kod ASCII odpowiadający pierwszemu znakowi w wyrażeniu (źródło: Oracl).
Przykłady:
ASCII('a') = 97 bo w kodzie ASCII a = 97
ASCII('E') = 69
ASCII('Albert') = 97 bo funkcja ASCII() przetwarza tylko pierwszą literę ciągu.
Przetwarzanie pierwszych liter ciągów z kolumny FIRST_NAME tabeli EMPLOYEES.
SELECT
FIRST_NAME,
ASCII(FIRST_NAME)
FROM EMPLOYEES;
Otrzymujemy tabelę wynikową:
Funkcja LENGTH()
Funkcja LENGTH() zwraca ilość znaków zapisanych w rekordzie.
Wyświetlamy wszystkie imiona pracowników, które mają długość do czterech liter. Kolumna FIRST_NAME tabela EMPLOYEES.
SELECT
FIRST_NAME
FROM EMPLOYEES
WHERE (LENGTH(FIRST_NAME))<5;
Otrzymujemy tabelę wynikową:
Funkcja INSTR()
Funkcja podaje pozycję określonej, wskazanej w funkcji litery w ciągu znaków.
SELECT LAST_NAME,
INSTR(LAST_NAME,'d')
FROM EMPLOYEES;
Otrzymujemy tabelę wynikową:
Funkcja UPPER()
Funkcja UPPER() służy do tworzenia dużych liter. Jest więc odwrotności a LOWER().
Zapiszmy wszystkie nazwy departamentów w całości dużymi literami.
SELECT UPPER(DEPARTMENT_NAME)
FROM DEPARTMENTS;
Otrzymujemy tabelę wynikową:




