How to encrypt PL/SQL Code?
Hi All,
I want to share our application code to third party. I don't want them to see our application PL/SQL Code.
I have tried wrapper utility provided by Oracle, however there are un-wrappers available.
Please Let me know the options available to hide my PL/SQL code.
Thanks in advance
Madhu
As Billy says, the only proper way is through legal means.
The next best thing is the wrap utility. Yes, people have produced unwrappers out there, but most companies don't have their own software developers (otherwise they're less likely to be buying code from you), so won't be unwrapping it anytime soon.
I've seen some 3rd party tools that try and obfuscate the code by turning all your variables and suchlike into meaningless names, making it hard for people to follow the code even if they can read it, so if you find a good one of those, and then wrap it as well, you're making it hard for people.
DBMS_CRYPTO, as suggested by the first response on this thread, isn't an option as that is for encrypting or hashing etc. of data, not of PL/SQL code... at least not if you want Oracle to be able to execute the code still.
Similar Messages
-
How to use pl/sql code as ODI user defined function
Hi All,
i have a pl/sql code and i want to create ODI user defined function using this code .
please find the pl/sql code below:
============================
declare
v_no_of_duplicate_rec number := 0;
begin
select count(*)
into v_no_of_duplicate_rec
from ( select 1
from temp_pre_selections
group by svb_number, selection_id
having count(*) > 1);
if v_no_of_duplicate_rec = 0 then
return 'N';
else
return 'Y';
end if;
end if;
==========================
please help me how to achieve the same .
Thanks
Vinod2 ways:
a. implement logic in odi function directly: getCount, Oracle implementation:
select case count(1) when 0 then 'N' else 'Y' end
from hr.employees
when you use this function to refresh a variable, the refresh statement should only be getCount, you shoueld not write select getCount from dual, otherwise it will become
select select .... from ... from dual
b. if your logic is complex, I suggest to write function directly in your database, then call this function in your ODI function
eg:
CREATE OR REPLACE FUNCTION hr.test RETURN varchar2 IS
tmpVar NUMBER;
BEGIN
select count(1) into tmpVar from hr.employees;
if tmpVar=0 then
return 'N';
else
return 'Y';
end if;
END test;
then create a ODI function, Oracle implementation is
hr.test
in your variable refresh statement, you can write select getCount from dual
if you use the odi function in other locations expect for refreshing variable, the idea is similar -
How to trace pl/sql code version over time
Hi,
As there are many pl/sql developers in the office I work in, we're thinking about how to mantain the old versions of pl/sql code and, above all, to forbid two different programmes to work on the same code at the same time.
I've been told we could use Subversion (http://subversion.apache.org/) also for pl/sql
What do you generally use for this target? Do you use Subversion or what else?
Thanks in advance!Mark1970 wrote:
As there are many pl/sql developers in the office I work in, we're thinking about how to mantain the old versions of pl/sql code and, above all, to forbid two different programmes to work on the same code at the same time.
I've been told we could use Subversion (http://subversion.apache.org/) also for pl/sql
What do you generally use for this target? Do you use Subversion or what else?We use Subversion and have been for many years (used CVS prior to that).
PL/SQL code is no different than Java code, C/C++ code, or any other code. So why should using a version control system like Subversion be used any differently (or not work correctly) for PL/SQL code? -
How to encrypt the source code of stored procedures ?
Is it possible to encrypt the source code of the stored procedures so no one can read the content. I want to deliver a compiled code not the source
Database 8i and later
thanks in advanceWrap Utility<br>
<br>
Nicolas. -
How to call PL/SQL code from ODI
Hello friends,
Can you please let me the steps for calling a pl/sql code in ODI?
Regards
UlhasThis should give you an idea - http://odiexperts.com/?p=666
-
How to convert pl/sql code into java/j2ee
Hi,
We have a PL/SQL Oracle App server application that we will support if we can convert in j2ee/java. But when i did take a look at the code, these pl/sql contains all HTML and java code inside the stored procedures.
And iam looking to explore some tools and mechanisms that can convert these pl/sql in a JAVA application so that i can deploy this new app into my BEA81 environment.
Does any body has any idea:
a) How to convert from pl/sql > java ?
b) Any plugins or tools of BEA that can run these pl/sql (the way thay are currently...i.e w/o converting) in BEA 81 container ?
thanks, sangitathese pl/sql contains all HTML and java code insideJava or JavaScript. They are not the same. I wouldn't expect to see Java inside html, whereas JavaScript would be intermixed. On the other hand you might have a java stored proc (Oracle 9/10) which is generating HTML.
>
Does any body has any idea:Refactor.
I doubt it just has html and JavaScript/Java. So what you have is a mess that mixes several things that should have been seperate in the first place. -
How to access PL/SQL code using JDBC
Hi,
We have stored procedures written in PL/SQL. These stored procs take both IN and OUT parameters. The parameter types are both regular datatypes like NUMBER, VARCHAR etc. So far so good. I know how to handle these data types.
Some of the stored procs also use parameters that are defined as composite data types like %ROWTYPE or %RECORD. How would I set the values of these data types? Can I use the oracle extension - support for Oracle Objects to accomplish this. If so please let me know with an example. If not any other suggestions or help will be greatly appreciated.
Thanks
KarthikJDBC (and SQLJ) only support SQL types as stored procedure arguments, not PL/SQL types.
If your stored procedure uses a PL/SQL-only type, such as BOOLEAN, record types, or index-by tables, then you cannot call it from Java (or, for that matter, from other languages as well).
There is one exception: scalar index-by table arguments have been supported since JDBC 8.1.7 in the JDBC-OCI driver (refer to the JDBC manual for specifics).
One workaround is to create wrapper PL/SQL stored procedures that take SQL arguments and convert them to PL/SQL -and vice versa- and call the original PL/SQL stored procedures. For example, a record type could be exploded into individual arguments, or it could be converted into a SQL object type, index-by tables could be represented as SQL collection types, etc.
You can find a small example of this in the back of the JPublisher manual, where an example is given how to call a PL/SQL stored procedure that takes BOOLEAN arguments. -
How to write this sql code ?
for example below shows:
create table temp
order_type varchar2(30),
order_num number);
insert into temp values('apple',000001);
insert into temp values('banana',000002);
insert into temp values('chair',000003);
select *
from temp
where instr(order_type,decode(x,1,'a',2,'b',2,'c',order_type)) >0
if i let x equals 2 and i want to get b and c from above querying .
why above query could not get 'c' and only get 'b' if i give 2 to x ?
how to write above select clause ?
who can help me ?
thanks!Decode will return the first match;
SQL> select decode(2,1,'a',2,'b',2,'c')
from dual
D
b
1 row selected.This may help;
old: select *
from temp
where regexp_like(order_type, case to_number(&x)
when 1 then 'a'
when 2 then 'b|c'
end)
new: select *
from temp
where regexp_like(order_type, case to_number(2)
when 1 then 'a'
when 2 then 'b|c'
end)
ORDER_TYPE ORDER_NUM
banana 2
chair 3
2 rows selected. -
How to write the SQL codes of the login system for a database system
If I have a table stored with a Column staff_ID and Password. How can I make use of this 2 columns information to setup the login system?
Hi,
Create Table Modules -----e.g. payroll, inventory etc.
(ModID NUMBER(10),
ModName VARCHAR2(50));
Create Table Modules_Forms ------e.g. Sales Transaction Form
(FormID NUMBER(10),
ModID NUMBER(10),
FmxName VARCHAR2(32));
Create Table Modules_Reports ------e.g. Sales Report
(RepID NUMBER(10),
ModID NUMBER(10),
RepName VARCHAR2(32));
Create Table Usr ------------From the Employee Information Module
(UserID VARCHAR2(20), ------------you can find the designation of
Password VARCHAR2(10) ------------the user who wants to connect
Emp_Code Varchar2(25)); ------------that is why, I am Addng Emp_Code.
Create Table User_Modules ------------Control the Module Access.
(UserID VARCHAR2(20);
ModID NUMBER(10),
Access VARCHAR2(1));
Create Table User_Forms ------------Control the Forms Access
(UserID VARCHAR2(20),
FormID NUMBER(10),
Read VARCHAR2(1),
Write VARCHAR2(1),
Execute VARCHAR2(1),
Delete VARCHAR2(1));
Create Table User_Reports ------------Control the Report Access
(UserID VARCHAR2(20),
RepID NUMBER(10),
Access VARCHAR2(1));
1 ) After Creating these Tables, Control the Application Access of the users
From the application (Oracle Forms).
2 ) I think you should create a Menu from oracle forms.
3 ) For Controlling the Database Level Access, you can create a ROLE
4 ) Forms Forum Site:-
http://www.forums.oracle.com/forums/forum.jsp?forum=82Regards
Muhammad Waseem Haroon
[email protected] -
How to name commands (SQL codes)
Hi Guys,
I use sql queries in crystal. They are inserted in commands (database expert --add command). But I dont know hoe to name these so they are meaningful data sets? System always provide me with names command_1 command_2 etc but these are meaningless.
Thanks
SonnyHI
After inserting the commands, Go to Database expert(Database->DatabaseExpert) from menu or else right click and select database Expert in field explorer. u will find the list of commands which u have added in the right hand side panel.
Select the command which u want to rename. Press F2 and rename it..
Regards
VMSSanthosh M.sc., -
I have a PL/SQL package that I want to deploy but I don't want others to read the logic in it? What's the best way to do this?
Thank you.You can look for WARP utility at this link.Its not WARP rather its WRAP utility.
http://download-east.oracle.com/docs/cd/B10501_01/appdev.920/a96624/c_wrap.htm#1859
--- -
Good Day! I'm just having a hard time of thinking how to encrypt the source code of a given web page(html, jsp, etc.) without affecting how it is previewed in an Internet Browser. What I plan is to disable the capabilities of some malicious Internet users of copying the source codes of my web pages by using the "View Source" option of Internet Explorer and the equivalent function in Netscape Navigator. Please somebody help me in this matter (I'm planning to use an IDEA algorithm using JCE)....
It would be big help if a running code is supplied.
Thank you very much in advance.
God Bless!!!
- Jonathan Untalan([email protected])don't know theses softs. What i know about encrypted web pages, is that you need a secure socket connection (https).
Your web page will be ciphered, send to the user, and decipher by the browser with the signature file associated to your https connexion.
It isn't possible to encrypt your page directly, and then decrypt them when requested.
For the download time, only the server is responsible for this.
if it is overloaded, then it will slow down its upload.
Maybe you use some encryption method that require a lot of CPU time.
For summary : you can only cipher the pipe transport, but not the transported pages.
Good luck in your search. -
for example:
select
from testtable
outputs below results:
item_desc
950gapple(z)110ml*40
650gbanana(z)215ml 1x18
make above example outputs below result:
item_desc
a950gapplez110ml40
a650gbananaz215ml1x18
how to write above sql code?
who can help me?
thanksJameel Provided solution to one of your other thread
a question about sql code
Try the below query. You can modify the TRANSLATE function to add the characters you want to remove from the string.
select 'a'||replace(translate(str,'()* ','`'),'`') from testtable -
How to 100% Protect PL/SQL Code By Wrapped in Oracle Database 10g R2
Hello,
Is Possible to 100% Protect PL/SQL Code By Wrapped in Oracle 10g R2 ?
If it is not possible by wrap in oracle 10g R2,
Please, let me suggest, how i will be able to 100% protect PL/SQL code in Oracle Database 10g R2.
Because, I have lot of functions, procedures & package's in my project.
Which is running in field filed.
So, i have needed to protect 100%.
Also, will i convert to al functions, procedures & package's to .pll file ?
And .pll file to .plx file?
Is it possible to convert .plx file to .pll file ?
Please, let know any better solutions in this case....
Regards
MehediHello,
No, wrapping is not a 100% secure method. It could prevent your code from amateurs, but not from professional hackers. Look at the article http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/wrap.htm#BEHGBJAA
It says: "•Wrapping is not a secure method for hiding passwords or table names.
Wrapping a PL/SQL unit prevents most users from examining the source code, but might not stop all of them."
Edited by: apiminov on 03.12.2012 3:23
Edited by: apiminov on 03.12.2012 3:24 -
How to reference LEVEL in a TREE's SQL code
Is it possible to somehow reference LEVEL in a tree's sql code so that you can use a decode statement to selectively create links on specific levels only i.e. NOT on the root level?
e.g.
select "CHILD_ID" id,
"PARENT_ID" pid,
"NAME" name,
decode( LEVEL, 1, null,'f?p=' || :APP_ID || ':43:' || :APP_SESSION || '::::P43_CHILD_ID:' || CHILD_ID) link,
null a1,
null a2
from TREETABLE
order by name
one solution I've implemented is to create a DB function e.g.
create or replace function get_tree_level(v_child_id number) return number
is
v_level number(2);
begin
select level
into v_level
from TREETABLE
where child_id=v_child_id
start with child_id=1
connect by prior child_id= parent_id;
return v_level;
end;
and then use
decode( get_tree_level(child_id) 1, null,'f?p=' || :APP_ID || ':43:' || :APP_SESSION || '::::P43_CHILD_ID:' || CHILD_ID) link,
but this is too slow as I have quite a few records in the tree and takes too long to render
regards
Paul POK I found a workaround after reading
How to add URL to tree
The view my tree is build on is constructed out of 3 unions and 4 "selects" ( the first select creates the ROOT NODE where "1" is also used as a hard coded foreign key (Parent_id), in the company table.)
I just added a new column called tree_level to the query which is hard coded wrt its level on the hierarchy.
e.g.
CREATE OR REPLACE FORCE VIEW COMCONSTUTREE ("CHILD_ID", "PARENT_ID", "NAME","TREE_LEVEL") AS
select 1 as child_id,to_number(null) as parent_id ,'Company' as name,*1 as tree_level* from dual
UNION
select COM_ID, 1, COM_NAME,2
from company
UNION
select CON_ID,CON_COMPANY_ID, substr(con_name,instr(con_name,' ')+1) ||', '||substr(con_name,1,instr(con_name,' ')-1),3
from contact
UNION
select STU_ID,STU_CONTACT_ID, STU_LAST_NAME||', '||STU_FIRST_NAME ,4
from student;
the tree code now becomes
select "CHILD_ID" id,
"PARENT_ID" pid,
"NAME" name,
decode( tree_level,1, null,'f?p=' || :APP_ID || ':43:' || :APP_SESSION || ':TREE:::P43_CHILD_ID:' ||CHILD_ID) link,
null a1,
null a2
from COMCONSTUTREE"
order by name
Maybe you are looking for
-
What's the best way to manage Apple IDs for multiple devices?
Hi, We have a shared Macbook air a shared iPad my iPhone his iPhone We want to put one ID on the Macbook and iPad that we can use to have the same iMessage on both and that we can put a card on and use in the iTunes store etc. We also want to have ou
-
lightroom3 is freezing and slow- this just started. I am on mac 10.6.8. I have a project due this weekend and can't work on it at all right now An y ideas?
-
What is a AR payment advise?
What is a AR payment advise? on what occasions we issue a customer payment advise? is it part of FBZP and F110? or is it part of some thing else? Thank you in advance. Bushan
-
Question about folder permissions
I have set up separate user accounts for myself (as administrator) and my wife and four kids (a total of six user accounts). After having problems in iTunes and iPhoto with messages regarding "locked disk, or no access" I created a group called "fami
-
Hello, I was wondering if there is any way to refer to specific cells in an SQL calendar without returing any values into them? The reason I ask is because I'm trying to change the background color of a range of dates between the current date and som