Oracle
 sql >> Baza danych >  >> RDS >> Oracle

ROWIDTOCHAR() Funkcja w Oracle

W bazie danych Oracle ROWIDTOCHAR() funkcja konwertuje ROWID wartość do VARCHAR2 typ danych.

Składnia

Składnia wygląda tak:

ROWIDTOCHAR(rowid)

Przykład

Oto przykład:

SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;

Wynik:

AAATiBAAMAAAAIDAAE

Wynik konwersji to zawsze 18 znaków.

A oto zrzut wyniku w porównaniu z CHARTOROWID() funkcja (która zwraca ROWID wartość z danych znakowych):

SELECT 
    DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
    DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;

Wynik:

                 CHARTOROWID              ROWIDTOCHAR 
____________________________ ________________________ 
Typ=69 Len=10: ^@,^A,8,81    Typ=1 Len=18: A,A,A,T   

Identyfikator typu 69 oznacza, że ​​ma ROWID typ danych i identyfikator typu 1 oznacza, że ​​jest to albo VARCHAR2 lub NVARCHARCHAR2 .

Przykład bazy danych

Oto przykład, który zwraca wiersz w tabeli bazy danych na podstawie podanego ROWID :

SELECT 
    ROWID,
    FIRST_NAME,
    LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';

Wynik:

                ROWID    FIRST_NAME    LAST_NAME 
_____________________ _____________ ____________ 
AAATiDAAMAAALKzABa    Timothy       Gates       

Argument zerowy

Jeśli argument jest null , wynik to null :

SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;

Wynik:

null

Domyślnie SQLcl i SQL*Plus zwracają pustą spację za każdym razem, gdy w wyniku SELECT wystąpi wartość null oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Nieprawidłowa liczba argumentów

Wywołanie ROWIDTOCHAR() bez żadnych argumentów powoduje błąd:

SELECT ROWIDTOCHAR()
FROM DUAL;

Wynik:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

Przekazywanie zbyt wielu argumentów również skutkuje błędem:

SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;

Wynik:

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. ODP.NET Oracle.ManagedDataAcess losowe błędy ORA-12570

  2. Jak znaleźć bieżące otwarte kursory w Oracle?

  3. Jak przekonwertować liczbę na słowa - ORACLE

  4. OracleException (0x80004005) podczas łączenia się z bazą danych Oracle

  5. Łączenie się z bazą danych Oracle za pomocą SQLAlchemy