19_SQL. Funkcje tekstowe SQL Oracle

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ą: