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

ROWIDTONCHAR() Funkcja w Oracle

W bazie danych Oracle ROWIDTONCHAR() funkcja konwertuje ROWID wartość do NVARCHAR2 typ danych

Jest podobny do ROWIDTOCHAR() funkcja, z wyjątkiem tego, że ROWIDTOCHAR() konwertuje ROWID wartość do VARCHAR2 typ danych.

Składnia

Składnia wygląda tak:

ROWIDTONCHAR(rowid)

Przykład

Oto przykład:

SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;

Wynik:

AAATiBAAMAAAAIDAAE

Wynik konwersji zawsze znajduje się w zestawie znaków narodowych i ma długość 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(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;

Wynik:

                 CHARTOROWID               ROWIDTONCHAR 
____________________________ __________________________ 
Typ=69 Len=10: ^@,^A,8,81    Typ=1 Len=36: ^@,A,^@,A   

Identyfikator typu 69 oznacza, że ​​ma ROWID typ danych i identyfikator typu 1 oznacza, że ​​jest to 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 ROWIDTONCHAR(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 ROWIDTONCHAR(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 ROWIDTONCHAR() bez żadnych argumentów powoduje błąd:

SELECT ROWIDTONCHAR()
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 ROWIDTONCHAR('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. Jak działa pobieranie danych z SQL Server do SqlDataReader?

  2. Włączanie TLS w R12.1

  3. Uzyskiwanie uchwytu do natywnego połączenia Oracle w Hibernate 4 w celu uruchomienia przechowywanego procesu

  4. Jak mogę ograniczyć liczbę wierszy zwracanych przez zapytanie Oracle po złożeniu zamówienia?

  5. Domyślne zachowanie automatycznego zatwierdzania połączenia JDBC