Tüm Ürünler
Search
Belge Merkezi

:Desteklenen Oracle işlevleri

Son Güncelleme:Oct 06, 2026

Hologres V1.3 ve sonraki sürümlerde, bazı Oracle işlevlerini desteklemek için Orafce uzantısı sunulmuştur. Bu konuda, Hologres'te desteklenen Oracle işlevlerinin söz dizimi ve ayrıntıları açıklanmaktadır.

Orafce uzantısını yükleyin

Hologres'teki bir veritabanında desteklenen bir Oracle işlevini kullanmadan önce, süper kullanıcı olarak aşağıdaki deyimi çalıştırarak Orafce uzantısını ilgili veritabanına yükleyin. Uzantı veritabanı düzeyinde yüklenir. Her veritabanı için uzantıyı yalnızca bir kez yüklemeniz gerekir. Yeni bir veritabanı oluşturursanız aşağıdaki deyimi tekrar çalıştırmanız gerekir:

-- Install the Orafce extension.
create extension if not exists orafce; 
-- Uninstall the Orafce extension.
DROP EXTENSION orafce;	
Not

Orafce uzantısı yüklendiğinde, dbms_alert, dbms_assert, dbms_output, dbms_pipe, dbms_random, dbms_utility, oracle, plunit, plvchr, plvdate, plvlex, plvstr, plvsubst ve utl_file dahil olmak üzere birden çok şema otomatik olarak oluşturulur. Orafce uzantısını yüklemeden önce veritabanında aynı ada sahip bir şemanın bulunmadığından emin olun. Aksi takdirde Orafce uzantısı yüklenemez.

Oracle işlevleri

Aşağıdaki tabloda Hologres'te desteklenen Oracle işlevleri açıklanmaktadır.

  • Tarih işlevleri

    İşlev

    Açıklama

    Örnek

    Dönüş değeri

    add_months(day date, value int)

    Bu işlev, ikinci parametreyle belirtilen ay sayısını ilk parametreyle belirtilen tarihe ekler ve tarih döndürür.

    SELECT add_months(current_date, 2);

    2022-05-21

    oracle_last_day(value date)

    Bu işlev, belirtilen tarihin ait olduğu ayın son gününü bulur ve tarih döndürür.

    SELECT oracle_last_day('2022-05-01');

    2022-05-31

    next_day(value date, weekday text)

    Bu işlev, belirtilen tarihten itibaren karşılaşılan haftanın belirli bir gününün ilk gerçekleşmesine ait tarihi döndürür. İlk parametre başlangıç tarihini, ikinci parametre ise haftanın bir gününü (örneğin Cuma) belirtir.

    SELECT next_day('2022-05-01', 'FRIDAY');

    2022-05-06

    next_day(value date, weekday integer)

    Bu işlev, belirtilen tarihten itibaren karşılaşılan haftanın belirli bir gününün ilk gerçekleşmesine ait tarihi döndürür. İlk parametre başlangıç tarihini, ikinci parametre ise haftanın bir gününü temsil eden 1 ile 7 arasında bir sayıyı belirtir. 1 değeri Pazar'ı, 2 değeri Pazartesi'yi temsil eder. Benzer şekilde 7 değeri Cumartesi'yi temsil eder.

    • SELECT next_day('2022-05-01', 1);
    • SELECT next_day('2022-05-01', 2);
    • 2022-05-08

    • 2022-05-02

    months_between(date1 date, date2 date)

    Bu işlev, date1 ile date2 arasındaki ay sayısını döndürür. date1, date2'den sonra geliyorsa dönüş değeri pozitif olur. date1, date2'den önce geliyorsa dönüş değeri negatif olur.

    • SELECT months_between('2022-01-01', '2021-11-01');
    • SELECT months_between('2021-11-01', '2022-01-01');
    • 2

    • -2

    trunc(value timestamp with time zone, fmt text)

    Bu işlev, bir zaman damgasını keserek tarih döndürür. İlk parametre, kesmek istediğiniz zaman damgasını belirtir. İkinci parametre, zaman damgasını kesmek için kullanmak istediğiniz ölçü birimini belirtir. İkinci parametrenin Y değeri, zaman damgasının karşılık geldiği yılın ilk gününe kadar kesildiğini belirtir. İkinci parametrenin Q değeri, zaman damgasının karşılık geldiği çeyreğin ilk gününe kadar kesildiğini belirtir.

    • SELECT TRUNC(current_date,'Y');
    • SELECT TRUNC(current_date,'Q');
    • 2022-01-01

    • 2022-01-01

    trunc(value timestamp with time zone)

    Bu işlev, belirtilen bir tarihe göre zaman damgası döndürür. Varsayılan olarak saat, dakika ve saniye değerlerini içeren bir zaman damgası döndürülür.

    SELECT TRUNC('2022-03-01'::timestamp);

    2022-03-01 00:00:00

    round(value timestamp with time zone, fmt text)

    Bu işlev, bir zaman damgasını hafta veya gün gibi bir birime göre en yakın değere yuvarlar.

    SELECT round('2022-02-22 13:11:22'::timestamp, 'YEAR');

    2022-01-01 00:00:00

    round(value timestamp with time zone)

    Bu işlev, bir zaman damgasını gün birimine göre en yakın değere yuvarlar.

    SELECT round('2022-02-22 13:11:22'::timestamp);

    2022-02-23 00:00:00

    round(value date, fmt text)

    Bu işlev, belirtilen bir biçime göre yuvarlanmış tarih döndürür.

    • SELECT round(TO_DATE('27-OCT-00','DD-MON-YY'), 'YEAR');
    • SELECT round(TO_DATE('27-FEB-00','DD-MON-YY'), 'YEAR');
    • 2001-01-01

    • 2000-01-01

    round(value date)

    Bu işlev, belirtilen bir biçime göre yuvarlanmış tarih döndürür.

    SELECT round(TO_DATE('27-FEB-00','DD-MON-YY'));

    2000-02-27

  • Dize işlevleri

    İşlev

    Açıklama

    Örnek

    Dönüş değeri

    instr(str text, patt text, start integer, nth integer)

    Bu işlev, bir dizede alt dize arar. Alt dize bulunursa işlev alt dizinin konumunu döndürür; aksi takdirde 0 döndürür. start parametresi arama başlangıç konumunu, nth parametresi ise alt dizinin kaçıncı oluşumunun aranacağını belirtir.

    • SELECT instr('Hologres', 'o',1,2);
    • SELECT instr('Hologres', 'o',1,1);
    • 4

    • 2

    instr(str text, patt text, start integer)

    Bu işlev, bir dizede alt dizinin ilk oluşumunun konumunu döndürür.

    SELECT instr('Hologres', 'o',4);

    4

    instr(str text, patt text)

    Bu işlev, bir dizenin başından itibaren alt dize arar.

    SELECT instr('Hologres', 'o');

    2

    plvstr.rvrs(str text, start integer, end integer)

    Bu işlev, belirtilen bir dizedeki karakterlerin sırasını tersine çevirir. str parametresi dizeyi, start ve end parametreleri ise sırasını tersine çevirmek istediğiniz karakterlerin başlangıç ve bitiş konumlarını belirtir.

    SELECT plvstr.rvrs('Hologres', 5,6);

    rg

    plvstr.rvrs(str text, start integer)

    Bu işlev, start parametresiyle belirtilen karakterden başlayarak belirtilen bir dizenin sonuna kadar olan karakterlerin sırasını tersine çevirir.

    SELECT plvstr.rvrs('Hologres', 4);

    sergo

    plvstr.rvrs(str text)

    Bu işlev, tüm bir dizenin sırasını tersine çevirir.

    SELECT plvstr.rvrs('Hologres');

    sergoloH

    substr(str text, start integer)

    Bu işlev, start parametresiyle belirtilen karakterden başlayarak belirtilen bir dizenin sonuna kadar olan karakterleri alır.

    • SELECT substr('Hologres', 1);
    • SELECT substr('Hologres', 4);
    • Hologres

    • ogres

    substr(str text, start integer, len integer)

    Bu işlev, start parametresiyle belirtilen karakterden başlayarak belirli sayıda karakter alır. len parametresi almak istediğiniz karakter sayısını belirtir.

    • SELECT substr('Hologres', 5, 5);
    • SELECT substr('Oracle functions', 5, 5);
    • gresle

    • lefun

  • Diğer işlevler

    İşlev

    Açıklama

    Örnek

    Dönüş değeri

    listagg(str text)

    Bu işlev, metinler için birleştirilmiş bir dize döndürür.

    SELECT listagg(t) FROM (VALUES('holo'), ('gres')) as l(t);

    hologres

    listagg(str text, str text)

    Bu işlev, metinler için birleştirilmiş bir dize döndürür. İkinci parametrenin değeri ayırıcı olarak kullanılır.

    SELECT listagg(t, '.') FROM (VALUES('holo'), ('gres')) as l(t);

    holo.gres

    concat(str text, str text)

    Bu işlev, iki dizeyi birleştirir.

    SELECT concat('holo','gres');

    hologres

    • concat(str text, anyarray)

    • concat(anyarray, str text)

    • concat(anyarray, anyarray)

    Bu işlev, aynı veya farklı veri türlerine sahip verileri birleştirir.

    • SELECT concat('hologres', 123);
    • SELECT concat(123, 123);
    • SELECT concat(current_date, 123);
    • hologres123

    • 123123

    • 2022-03-21123

    • nanvl(num real, num real)

    • nanvl(num decimal, num decimal)

    İlk parametre NUMERIC veri türündeyse bu işlev ilk parametrenin değerini döndürür. Aksi takdirde ikinci parametrenin değerini döndürür.

    • SELECT nanvl('NaN', 1,1);
    • SELECT nanvl('1,2', 1,1);
    • 1,1

    • 1,2

    bitand(num bigint, num bigint)

    Bu işlev, INTEGER veri türündeki iki ikili sayı için AND işlemi gerçekleştirir. Yalnızca bir satır döndürülür.

    • SELECT bitand(1,3);
    • SELECT bitand(2,6);
    • SELECT bitand(4,6);
    • 1

    • 2

    • 4

    nvl2(anyelement, anyelement, anyelement)

    İlk parametrenin değeri null ise bu işlev üçüncü parametrenin değerini döndürür. Aksi takdirde ikinci parametrenin değerini döndürür.

    • SELECT nvl2(null, 1, 2);
    • SELECT nvl2(0, 1, 2);
    • 2

    • 1

    lnnvl(boolean)

    Parametrenin değeri null veya false ise bu işlev true döndürür. Parametrenin değeri true ise bu işlev false döndürür.

    • SELECT lnnvl(null);
    • SELECT lnnvl(false);
    • SELECT lnnvl(true);
    • t

    • t

    • f

    sinh(num double precision)

    Bu işlev, bir hiperbolik sinüs değeri döndürür.

    SELECT sinh(0,1);

    0.100166750019844

    tanh(num double precision)

    Bu işlev, bir hiperbolik tanjant değeri döndürür.

    SELECT tanh(3);

    0.995054753686731

    cosh(num double precision)

    Bu işlev, bir hiperbolik kosinüs değeri döndürür.

    SELECT cosh(0,2);

    1.02006675561908

    decode(expression, value, return [,value,return]... [, default])

    Bu işlev, bir ifadeden bir değer arar ve değer bulunursa bu değeri, bulunamazsa belirtilen varsayılan değeri döndürür.

    CREATE TABLE t1(id int, name varchar(20));
    INSERT INTO t1 values(1,'alibaba');
    INSERT INTO t1 values(2,'hologres');
    • SELECT decode(id, 1, 'alibaba', 2, 'hologres', 'not found') from t1;
    • SELECT decode(id, 3, 'alibaba', 4, 'hologres', 'not found') from t1;
    • hologres
          alibaba
    • not found
          not found

    dump(anyelement)

    Bu işlev, ilk parametrenin veri türü kodunu, bayt cinsinden uzunluğunu ve dahili gösterimini içeren bir metin döndürür.

    SELECT dump('hologres');

    Typ=25 Len=12: 48.0.0.0.104.111.108.111.103.114.101.115

    dump(anyelement, num integer)

    Bu işlev bir metin döndürür. İkinci parametre, ilk parametrenin dahili gösterimi tarafından kullanılan sayı sistemini belirtir.

    • SELECT dump('hologres', 10);
    • SELECT dump('hologres', 16);
    • Typ=25 Len=12: 48.0.0.0.104.111.108.111.103.114.101.115

    • Typ=25 Len=12: 30.0.0.0.68.6f.6c.6f.67.72.65.73

    nlssort(str text, str text)

    Bu işlev, verileri belirli bir sıraya göre sıralar.

    Bir tablo oluşturmak ve tabloya veri eklemek için aşağıdaki deyimleri çalıştırın:

    CREATE TABLE t1 (name text); INSERT INTO t1 VALUES('Anne'), ('anne'), ('Bob'), ('bob');
    • SELECT * FROM t1 ORDER BY nlssort(name, 'en_US.UTF-8');
    • SELECT*FROM t1 ORDER BY nlssort(name, 'C');
    • anne
          Anne
          bob
          Bob
    • Anne
          Bob
          anne
          bob