Di Oracle Database, ROWIDTOCHAR()
fungsi mengonversi ROWID
nilai ke VARCHAR2
tipe data.
Sintaks
Sintaksnya seperti ini:
ROWIDTOCHAR(rowid)
Contoh
Ini contohnya:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Hasil:
AAATiBAAMAAAAIDAAE
Hasil konversi selalu sepanjang 18 karakter.
Dan inilah dump dari hasilnya jika dibandingkan dengan CHARTOROWID()
fungsi (yang mengembalikan ROWID
nilai dari data karakter):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Hasil:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
ID jenis 69
berarti dari ROWID
tipe data, dan ID tipe 1
artinya baik VARCHAR2
atau NVARCHARCHAR2
.
Contoh Basis Data
Berikut adalah contoh yang mengembalikan baris dalam tabel database, berdasarkan ROWID
yang diberikan :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
Hasil:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argumen Null
Jika argumennya null
, hasilnya null
:
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
Hasil:
null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali nilai nol muncul sebagai akibat dari SELECT
SQL pernyataan.
Namun, Anda dapat menggunakan SET NULL
untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null
harus dikembalikan.
Jumlah Argumen Tidak Valid
Memanggil ROWIDTOCHAR()
tanpa argumen apa pun menghasilkan kesalahan:
SELECT ROWIDTOCHAR()
FROM DUAL;
Hasil:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Dan meneruskan terlalu banyak argumen juga menghasilkan kesalahan:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
Hasil:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"