Oracle
 sql >> Base de données >  >> RDS >> Oracle

Fonction ROWIDTONCHAR() dans Oracle

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"