Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-06502: hex to raw conversion error

Jagdeep SangwanApr 11 2014 — edited Sep 8 2017

Hi All,

I was trying to encrypt some values and then decrypt the same but I am facing the error:

ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error

My Test case is as following:

drop table t1 purge;

create table t1(

v1 varchar2(20)

, p1 varchar2(2000)

);

drop function encrypt_pass;

create or replace function encrypt_pass (p_text  in  varchar2) return varchar2 is

  l_text       varchar2(32767);

  l_encrypted  varchar2(32767);

  l_key             varchar2(20) := 'SecretKey';

begin

  l_text := rpad(p_text, (trunc(length(p_text)/8)+1)*8, '~');

  dbms_obfuscation_toolkit.desencrypt(

  input          => l_text

  ,key            => l_key

  ,encrypted_data => l_encrypted);

  return l_encrypted;

end;

/

show err

drop function decrypt_pass;

create or replace function decrypt_pass (p_text  in  varchar2) return varchar2 is

  l_decrypted  varchar2(32767);

  l_key             varchar2(20) := 'secretkey';

begin

  dbms_obfuscation_toolkit.desdecrypt(

  input => p_text

  ,key   => l_key

  ,decrypted_data => l_decrypted

  );

  return rtrim(l_decrypted, '~');

end;

/

show err

insert into t1 values ('AAAAAAAA', encrypt_pass('AAAAAAAA'));

insert into t1 values ('BBBBBBBB', encrypt_pass('BBBBBBBB'));

insert into t1 values ('CCCCCCCC', encrypt_pass('CCCCCCCC'));

commit;

here while inserting the rows i am getting the error as

insert into t1 values ('AAAAAAAA', encrypt_pass('AAAAAAAA'))

                                   *

ERROR at line 1:

ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error

ORA-06512: at "JAGDEEP.ENCRYPT_PASS", line 7

insert into t1 values ('BBBBBBBB', encrypt_pass('BBBBBBBB'))

                                   *

ERROR at line 1:

ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error

ORA-06512: at "JAGDEEP.ENCRYPT_PASS", line 7

insert into t1 values ('CCCCCCCC', encrypt_pass('CCCCCCCC'))

                                   *

ERROR at line 1:

ORA-06502: PL/SQL: numeric or value error: hex to raw conversion error

ORA-06512: at "JAGDEEP.ENCRYPT_PASS", line 7

Can somebody tell me what i am doing wrong and give me a direction to go ahead

My version details are:

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

On Linux

Regards

This post has been answered by padders on Apr 11 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on May 12 2014
Added on Apr 11 2014
6 comments
9,761 views