Drukuj      Otwórz Pomoc bezpośrednią w wersji PDF


Poprzedni temat

Następny temat

Funkcje konwertujące

Funkcje konwertujące przekształcają wartość z jednej postaci na inną.

Cast

Zmienia typ danych wartości (w tym wartości NULL) na inny typ danych. Zmiana taka jest wymagana przed użyciem wartości określonego typu danych w funkcji lub operacji oczekującej innego typu danych.

Składnia:

CAST (wyrażenie|NULL AS typ_danych)

Obsługiwane typy danych, na które można zmienić typ danych wartości, to:

CHARACTER, VARCHAR, INTEGER, FLOAT, SMALLINT, DOUBLE PRECISION, DATE, TIME, TIMESTAMP, BIT, BIT VARYING

W zależności od źródłowego typu danych niektóre typy docelowe nie są obsługiwane. Na przykład, jeśli źródłowym typem danych jest napisowy typ BIT, to docelowym typem danych musi być typ napisowy CHARACTER lub inna wartość typu BIT.

Przykład:

W następującym przykładzie najpierw "Przychód z podmiotu" (Account Revenue) jest zmieniany na INTEGER w celu usunięcia miejsc dziesiętnych, a następnie na CHARACTER, aby można było przeprowadzić konkatenację z literałem znakowym (tekst ' K').

CAST ( CAST ( Podmiot."Przychód z podmiotu"/1000 AS INTEGER ) AS CHARACTER ) ||' K'

W przypadku korzystania z funkcji CAST, może ona zwracać dodatkową spację na końcu wartości. Przykład: CAST(YEAR("Data utworzenia".Data) as char) || '*' zawraca wartość "2012 *"

Można uniknąć tego problemu, określając długość zwracanej wartości. Przykład:

CAST(YEAR("Data utworzenia".Data) as char(4)))

IfNull

Testuje, czy wartością wyrażenia będzie Null, a jeśli tak, to przypisuje określoną wartość do wyrażenia.

Składnia:

IFNULL (wyrażenie, wartość)

ValueOf( )

Funkcji VALUEOF można używać w konstruktorze wyrażeń lub w filtrach w celu odwołania się do wartości zmiennej sesyjnej. Więcej informacji można znaleźć pod hasłem Zmienne sesyjne.

Zmienne sesyjne powinny być używane jako argumenty funkcji VALUEOF. Do zmiennych sesyjnych trzeba się odwoływać poprzez ich nazwy.

Przykład:

Użycie wartości zmiennej sesyjnej NQ_SESSION.CURRENT_YEAR:

CASE WHEN "Rok" > VALUEOF(NQ_SESSION.CURRENT_YEAR) THEN 'Przyszłe' WHEN ... ELSE...END

Do zmiennej sesyjnej trzeba się odwoływać za pomocą jej w pełni kwalifikowanej nazwy.


Opublikowano: Wrzesień 2017 Copyright © 2005, 2017, Oracle. Wszelkie prawa zastrzeżone. Legal Notices.