I'm trying to encrypt a column and I found many tutorials that use DBMS_CRYPTO. However, when I test this, it says DBMS_CRYPTO is an invalid identifier. I was using SYSDBA account.

I've searched the Internet but, to my surprise, I couldn't find an answer for this one.

How come DBMS_CRYPTO is an invalid identifier ?

  • This package is not granted to PUBLIC by default. Ask DBAs for exec privs. – ibre5041 Jan 13 '14 at 8:43
  • Can you check package? select object_name, object_type, status from dba_objects where object_name = 'DBMS_CRYPTO'; Can you describe it? desc dbms_crypto – Balazs Papp Jan 13 '14 at 10:15
  • We don't know how you are testing it, nor we know the full error stack, also useful information is full db version. 11g means any of 4+ different versions. – Raj Jan 13 '14 at 15:20
  • I think dbms_crypto is not installed by default, you might have to install it using $ORACLE_HOME/rdbms/admin/dbmsoctk.sql and $ORACLE_HOME/rdbms/admin/prvtobtk.plb scripts. Then make sure you create a synonym and grant execute to the user needed. – Raj Jan 14 '14 at 15:30

DBMS_CRYPTO is a package which is owned by SYS schema. You can ask the DBA to give the execute privilege on that package to the schema which you are using.

Here DBA has to login as SYS. Even SYSTEM or any other schema for that mater, which has SYSDBA role won't do.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.