Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

ROWDTOCHAR() Fungsi di Oracle

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"

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menginstal ODP.NET 2.111 dan ODP.NET 4.112 di mesin yang sama secara berdampingan sementara keduanya menunjuk ke server database yang sama

  2. Bagaimana cara memasukkan kolom pada posisi tertentu di Oracle tanpa menjatuhkan dan membuat ulang tabel?

  3. Cara Memformat Angka dengan Koma di Oracle

  4. Pivoting data menggunakan dua kolom

  5. Hilangkan duplikat menggunakan fungsi Oracle LISTAGG