Dans Oracle Database, le ROWIDTONCHAR()
la fonction convertit un ROWID
valeur à NVARCHAR2
type de données
C'est similaire au ROWIDTOCHAR()
fonction, sauf que ROWIDTOCHAR()
convertit un ROWID
valeur à VARCHAR2
type de données.
Syntaxe
La syntaxe ressemble à ceci :
ROWIDTONCHAR(rowid)
Exemple
Voici un exemple :
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Résultat :
AAATiBAAMAAAAIDAAE
Le résultat de la conversion est toujours dans le jeu de caractères national et comporte 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(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Résultat :
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
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 soit de 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 ROWIDTONCHAR(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 ROWIDTONCHAR(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 ROWIDTONCHAR()
sans aucun argument génère une erreur :
SELECT ROWIDTONCHAR()
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 ROWIDTONCHAR('a', 'b')
FROM DUAL;
Résultat :
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"