No banco de dados Oracle, o
ROWIDTOCHAR()
função converte um ROWID
valor para VARCHAR2
tipo de dados. Sintaxe
A sintaxe fica assim:
ROWIDTOCHAR(rowid)
Exemplo
Aqui está um exemplo:
SELECT ROWIDTOCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Resultado:
AAATiBAAMAAAAIDAAE
O resultado da conversão é sempre de 18 caracteres.
E aqui está um dump do resultado quando comparado ao
CHARTOROWID()
função (que retorna um ROWID
valor dos dados do caractere):SELECT
DUMP(CHARTOROWID('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "CHARTOROWID",
DUMP(ROWIDTOCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTOCHAR"
FROM DUAL;
Resultado:
CHARTOROWID ROWIDTOCHAR ____________________________ ________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=18: A,A,A,T
Um ID de tipo de
69
significa que é de ROWID
tipo de dados e um ID de tipo de 1
significa que é ou VARCHAR2
ou NVARCHARCHAR2
. Um exemplo de banco de dados
Aqui está um exemplo que retorna uma linha em uma tabela de banco de dados, com base em um determinado
ROWID
:SELECT
ROWID,
FIRST_NAME,
LAST_NAME
FROM EMPLOYEES
WHERE ROWIDTOCHAR(ROWID) LIKE '%KzABa';
Resultado:
ROWID FIRST_NAME LAST_NAME _____________________ _____________ ____________ AAATiDAAMAAALKzABa Timothy Gates
Argumento nulo
Se o argumento for null
, o resultado é null
:
SET NULL 'null';
SELECT ROWIDTOCHAR(null)
FROM DUAL;
Resultado:
null
Por padrão, SQLcl e SQL*Plus retornam um espaço em branco sempre que um valor nulo ocorre como resultado de um SQL SELECT
demonstração.
No entanto, você pode usar SET NULL
para especificar uma string diferente a ser retornada. Aqui eu especifiquei que a string null
deve ser devolvido.
Contagem de argumentos inválidos
Chamando ROWIDTOCHAR()
sem nenhum argumento resulta em um erro:
SELECT ROWIDTOCHAR()
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
E passar muitos argumentos também resulta em um erro:
SELECT ROWIDTOCHAR('a', 'b')
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"