Dans Oracle Database, le ROWIDTOCHAR()
la fonction convertit un ROWID
valeur à VARCHAR2
type de données.
Syntaxe
La syntaxe ressemble à ceci :
ROWIDTOCHAR(rowid)
Exemple
Voici un exemple :
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Résultat :
AAATiBAAMAAAAIDAAE
Le résultat de la conversion fait toujours 18 caractères.
Et voici un vidage du résultat par rapport au CHARTOROWID()
fonction (qui retourne un ROWID
valeur à partir des données de caractères):
SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Résultat :
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
Un identifiant de type 69
signifie qu'il s'agit de ROWID
type de données et un ID de type de 1
signifie qu'il s'agit de soit VARCHAR2
ou NVARCHARCHAR2
.
Un exemple de base de données
Voici un exemple qui renvoie une ligne dans une table de base de données, basée sur un ROWID
donné :
SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
Résultat :
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argument nul
Si l'argument est null
, le résultat est null
:
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
Résultat :
null
Par défaut, SQLcl et SQL*Plus renvoient un espace vide chaque fois qu'une valeur nulle se produit à la suite d'un SELECT
SQL déclaration.
Cependant, vous pouvez utiliser SET NULL
pour spécifier une autre chaîne à renvoyer. Ici, j'ai précisé que la chaîne null
doit être retourné.
Nombre d'arguments non valides
Appelant ROWIDTOCHAR()
sans aucun argument génère une erreur :
SELECT ROWIDTOCHAR()
FROM DUAL;
Résultat :
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Et passer trop d'arguments entraîne également une erreur :
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
Résultat :
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"