You can obfuscate PL/SQL that is stored in the database. There is a wrap utility. Go to http://tahiti.oracle.com/ and search on "wrap ulility" and then select the database version you're running. The PL/SQL user's guide and reference has a chapter on obscuring source code.
From reading your question though, it sounds like you want to obscure more than just your code. You can encrypt data with DBMS_CRYPTO. Your routines could depend on that and you can decrypt it when you use it. That could add a lot of overhead though so I wouldn't recommend it.
If you want to obscure tables, views, etc., I know if no way to do that. You could give your tables and columns really bad names like "table1" and "column1" but I wouldn't recommend that either.
If you're trying to protect your intellectual property, it's a tough call. But if you're just trying to keep your application from being hacked, proper security will protect you more than obfuscation will.
Dig Deeper on Using Oracle PL-SQL
Related Q&A from Lewis Cunningham, Senior Oracle DBA
I need to somehow log the execution time for two procedures every time they are called and save that data (in a table?). Do you know of a way to ...continue reading
How can I tell if a column is a NUMBER or VARCHAR in PL/SQL? Is there a function to do this?continue reading
I need a step-by-step procedure for importing text to an Oracle database using a stored procedure.continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.