No banco de dados Oracle, o
ROWIDTONCHAR()
função converte um ROWID
valor para NVARCHAR2
tipo de dados É semelhante ao
ROWIDTOCHAR()
função, exceto que ROWIDTOCHAR()
converte um ROWID
valor para VARCHAR2
tipo de dados. Sintaxe
A sintaxe fica assim:
ROWIDTONCHAR(rowid)
Exemplo
Aqui está um exemplo:
SELECT ROWIDTONCHAR('AAATiBAAMAAAAIDAAE')
FROM DUAL;
Resultado:
AAATiBAAMAAAAIDAAE
O resultado da conversão está sempre no conjunto de caracteres nacional e tem 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(ROWIDTONCHAR('AAATiBAAMAAAAIDAAE'), 17, 1, 4) AS "ROWIDTONCHAR"
FROM DUAL;
Resultado:
CHARTOROWID ROWIDTONCHAR ____________________________ __________________________ Typ=69 Len=10: ^@,^A,8,81 Typ=1 Len=36: ^@,A,^@,A
Um ID de tipo de
69
significa que é de ROWID
tipo de dados e um ID de tipo de 1
significa que é 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 ROWIDTONCHAR(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 ROWIDTONCHAR(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 ROWIDTONCHAR()
sem nenhum argumento resulta em um erro:
SELECT ROWIDTONCHAR()
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 ROWIDTONCHAR('a', 'b')
FROM DUAL;
Resultado:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"