In Oracle Database, il ROWIDTOCHAR()
la funzione converte un ROWID
valore a VARCHAR2
tipo di dati.
Sintassi
La sintassi è questa:
ROWIDTOCHAR(rowid)
Esempio
Ecco un esempio:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Risultato:
AAATiBAAMAAAAIDAAE
Il risultato della conversione è sempre lungo 18 caratteri.
Ed ecco un dump del risultato rispetto a CHARTOROWID()
funzione (che restituisce un ROWID
valore dai dati del carattere):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Risultato:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
Un ID tipo di 69
significa che è di ROWID
tipo di dati e un ID di tipo 1
significa che è o VARCHAR2
o NVARCHARCHAR2
.
Un esempio di database
Ecco un esempio che restituisce una riga in una tabella di database, in base a un dato ROWID
:
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
Risultato:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argomento nullo
Se l'argomento è null
, il risultato è null
:
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
Risultato:
null
Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che si verifica un valore nullo come risultato di un SQL SELECT
dichiarazione.
Tuttavia, puoi usare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Conteggio argomenti non valido
Chiamando ROWIDTOCHAR()
senza alcun argomento genera un errore:
SELECT ROWIDTOCHAR()
FROM DUAL;
Risultato:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
E anche passare troppi argomenti provoca un errore:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
Risultato:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"