sql >> Database >  >> RDS >> Oracle

ROWIDTOCHAR() Functie in Oracle

In Oracle Database, de ROWIDTOCHAR() functie converteert een ROWID waarde naar VARCHAR2 gegevenstype.

Syntaxis

De syntaxis gaat als volgt:

ROWIDTOCHAR(rowid)

Voorbeeld

Hier is een voorbeeld:

SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;

Resultaat:

AAATiBAAMAAAAIDAAE

Het resultaat van de conversie is altijd 18 tekens lang.

En hier is een dump van het resultaat vergeleken met de CHARTOROWID() functie (die een ROWID retourneert waarde uit karaktergegevens):

SELECT 
    DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
    DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;

Resultaat:

                 CHARTOROWID              ROWIDTOCHAR 
____________________________ ________________________ 
Typ=69 Len=10: ^@,^A,8,81    Typ=1 Len=18: A,A,A,T   

Een type-ID van 69 betekent dat het van ROWID . is gegevenstype en een type-ID van 1 betekent dat het ofwel VARCHAR2 is of NVARCHARCHAR2 .

Een databasevoorbeeld

Hier is een voorbeeld dat een rij retourneert in een databasetabel, gebaseerd op een gegeven ROWID :

SELECT 
    ROWID,
    FIRST_NAME,
    LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';

Resultaat:

                ROWID    FIRST_NAME    LAST_NAME 
_____________________ _____________ ____________ 
AAATiDAAMAAALKzABa    Timothy       Gates       

Nullargument

Als het argument null is , het resultaat is null :

SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;

Resultaat:

null

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer een null-waarde optreedt als resultaat van een SQL SELECT verklaring.

U kunt echter SET NULL gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Ongeldig aantal argumenten

Bellen ROWIDTOCHAR() zonder argumenten resulteert in een fout:

SELECT ROWIDTOCHAR()
FROM DUAL;

Resultaat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

En het doorgeven van te veel argumenten resulteert ook in een fout:

SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;

Resultaat:

SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"

  1. BIJGEWERKT:Bug veroorzaakt Microsoft Office 365 Build 2105 Breaks Access Applications

  2. Een lijst met gekoppelde tabellen exporteren naar Excel vanuit Access 2016

  3. Hoe u het jaar uit een datum haalt in T-SQL

  4. Bestanden opslaan in SQL Database met behulp van FILESTREAM - Deel 2