Wrapping the PL/SQL Code

Can anybody pls advise on how to unwrap a wrapped SQL procedure?
For example i wrap one procedure, and i get .plb object code for the SQL file. How can i revert back to the code, if i have only the .plb file?
Thanking in Advance
Rajeev

Hi,
Unwrapping cannot be done.
Wrapping is like creating a exe file.
Using the plb file u can not get the original procedure.
There is no Unwrapping in Oracle.
I think Oracle never provides Unwrapping procedure even in the future.
Regards
Kiran

Similar Messages

  • Need way to Wrap my PL/SQL code

    Hi
    How can I Wrap my PL/SQL code ?
    The current Wrap.exe can be Hacked easily using this site http://hz.codecheck.ch/UnwrapIt/Unwrap.jsp.
    what is the best way to hide Wrap my PL/SQL code in DB.
    Thanx
    Rafeek Abd Elmonsef

    reemax wrote:
    please where can I download "plsql developer 10g version 2000 release 10.2.0.2"There's no point downloading a GUI to do it for you, all that does is call the Oracle WRAP functionality.
    There's only the one way to wrap PL/SQL code. Just because it can be unwrapped doesn't mean that everybody will have the ability to unwrap it. If you're really that concerned about people getting your source code then you shouldn't release it in any format. At the end of the day, if it's packages that are being supplied to a customer, wrap them and have appropriate copyright and reverse engineering agreements in place, then if your code gets stolen, you can take legal action.
    You can get some tools (I've seen them but never used them) that help to anonymise your code, by renaming all the variables etc. to nonsensical ones such as a,b,c,d etc. (just like some people's coding I've seen LOL!), so if you were to do that and then wrap the code, if anyone does unwrap it, it will be harder for them to understand what the code actually does.

  • How to change the profile value in the pl/sql code without making change in the database

    How to change the profile value in the pl/sql code without making change in the database.

    I have program ,where if the profiles 'printer and nunber of copies ' are set at the user level, by default when the report completes the O/p will be sent to the printer mentioned in the set-up. but what user wants is
    if these Profiles are set for the user running this program automatic printing should not be done.

  • How can i identify the environment name or database name in the PL/SQL code

    Hi,
    I am using UTL_FILE to genearate the files.,
    My problem is, I have to design the common sql file , which can be executed in 2 diffrent environments ( Say QA & DEV ) , with no parameters. It has to identify the environment and based on the environment , it has to generate the concern files.,
    The only change needs to be incorporated is , file names , which will change based on the environment.,
    can nay one tell me , how can i identify the environment name or database name in the PL/SQL code ??
    Raja

    In this case, USEC_GI_DEV.NA.XXXNET.NET is a TNS alias. That alias exists only on the client machine. There is no way to access that information on the database server.
    You would have to find something in the v$database or v$instance table that uniquely identifies the database (and you may need some help from the DBAs to do this because you need to ensure that the data element you choose is compatible with whatever refresh process(es) are used in your environment).
    Now, if you are writing a stand-alone SQL*Plus script, SQL*Plus, as a client tool, does have access to the TNS alias in later versions. But that is a client-side determination, not a server-side determination.
    Justin

  • How to write the pl/sql code for this scenario

    Hi,
    Here is the data in a Table with below colums
    id firstname lastname code
    1 scott higgins 001
    2 Mike Ferrari 001
    3 Tom scottsdale 002
    4 Nick pasquale 003
    1 scott higgins 004
    I want to trap the following exceptions into an error table using pl/sql
    1. same person having multiple code
    example
    id first last Code
    1 scott higgins 001
    1 scott higgins 004
    2. Multiple persons having same code
    id first last Code
    1 scott higgins 001
    2 Mike Ferrari 001
    Could you please help me how to capture the exceptions above using pl/sql
    and what will be the structure of error table. it should capture eff date & end date

    or using analytic functions like this:
    select id, fname, lname, code from (
    with t as(
        select 1 id, 'scott' fname, 'higgins' lname, 001 code from dual
        union all
        select 2 id,'Mike ' fname, 'Ferrari' lname,  001  code from dual
        union all
        select 3 id,'Tom' fname, 'scottsdale' lname, 002  code from dual
        union all
        select 4 id,'Nick' fname, 'pasquale' lname, 003  code from dual
        union all
        select 5 id,'scott' fname, 'higgins' lname, 004  code from dual
        select t.*, count(*) over (partition by fname) row_count from t)
    where row_count > 1;
    select id, fname, lname, code from (
    with t as(
        select 1 id, 'scott' fname, 'higgins' lname, 001 code from dual
        union all
        select 2 id,'Mike ' fname, 'Ferrari' lname,  001  code from dual
        union all
        select 3 id,'Tom' fname, 'scottsdale' lname, 002  code from dual
        union all
        select 4 id,'Nick' fname, 'pasquale' lname, 003  code from dual
        union all
        select 5 id,'scott' fname, 'higgins' lname, 004  code from dual
        select t.*, count(*) over (partition by code) row_count from t)
    where row_count > 1;

  • Should we be 'Obfuscating'/wrapping our PL/SQL code?

    Versions:10gR2, 11G, 11GR2
    We are a software development firm in Retail Domain. We have around 35 packages, 80 procedures and functions. Currently none of our PL/SQL source codes are hiddent('obfuscated'). Is this a professional approach?
    If the client faces an issue with our code and when they send us the exp dump file to reproduce this issue. We wouldn't even be able see let alone debug the code. Right? Are there any other disadvantages with Obfuscation?

    Jiri in SF wrote:
    I would really appreciate of Oracle would provide code to their own packages. For example UTL_MAIL has issues for some SMTP servers, why I cannot take source code, improve it the way I want and then use it (of course I would not expect oracle to provide support for changed code).UTL_MAIL is perhaps a bad example. The code can be unwrapped - and the resulting source does not look good. The API itself is designed poorly IMO.
    Instead of rewriting UTL_MAIL, I would rather see it redesigned. For example, the existing API for example does not allow you to view the Mime payload to send via the DATA command at all. This is essential for debugging purposes.
    What about wanting to create a valid e-mail (Mime) that you want to deliver via another protocol (e.g. IMAP)? The API should enable you to create that and then select to use the payload without necessarily transmitting it via SMTP.
    Despite my dislike for Microsoft the company, I've always found their API sets logical, sensible and easy to use. Unfortunately the same can often not be said from the supplied PL/SQL package interfaces from Oracle. :-(

  • URGENT IN The PL/SQL code..ORA-01422: exact fetch returns more than request

    Hi All,
    I am using the Oracle Streams to replicate the data...
    Below is the procedure
    CREATE OR REPLACE PROCEDURE proc_test(in_any sys.anydata)IS
    lcr sys.lcr$_row_record;
    rc pls_integer;
    v_type varchar2(20);
    col_1 sys.anydata;
    lcr_usercountry varchar2(20);
    TRANS varchar2(20);
    BEGIN
    rc:=in_any.GetObject(lcr);
    v_type:=lcr.get_command_type();
    col_1:=lcr.get_value('NEW','USER_COUNTRY');
    rc:=col_1.GetVarchar2(lcr_usercountry);
    select user_country into TRANS from test.TESTREP where USER_COUNTRY=lcr_usercountry;
    IF (TRANS=lcr_usercountry and TRANS='USA')
    THEN
    insert into strmadmin.history_row_lcrs VALUES (SYSDATE, lcr.GET_SOURCE_DATABASE_NAME(), lcr.GET_COMMAND_TYPE(),
    lcr.GET_OBJECT_OWNER(), lcr.GET_OBJECT_NAME(), lcr.GET_TAG(), lcr.GET_TRANSACTION_ID(), lcr.GET_SCN(),
    lcr.GET_COMMIT_SCN,lcr.GET_VALUES('old'), lcr.GET_VALUES('new', 'n'));
    lcr.EXECUTE(true);
    END IF;
    END;
    The procedure executed successfully, but the data is not replicating...
    I get the below error ORA-01422: exact fetch returns more than request in the dba_apply_error view.... because the query in the above procedure which am using returns more than one value ...select user_country into TRANS from test.TESTREP where USER_COUNTRY=lcr_usercountry;
    may be I need to use the cursor for this....
    Can anyone Please advice me writing the cursor ...
    Thanks in Advance..

    Got the solution ....
    Thanks..

  • Can the g_f0x variables be accessed in PL/SQL code in page rendering?

    Hi,
    I have set a button in a tabular form that runs a dynamic action made up of 2 parts in sequence:
    (1) a PL/SQL code that updates a collection using g_f01 (selected items in the tabular form)
    (2) a javascript that calls apex.server.process to display the selected items in a region
    All this code is in the page rendering section being called from a button,and thats the only way it seems to fire PL/SQL and javascript from a button
    one after the other.
    I have a page process called "submit" that does a loop through the g_f01 values again and updates the collection again just to check.
    Now, the PL/SQL code in the dynamic action does not see any selected values in the g_f01 array,while the code in the "submit" page process.
    sees them correctly. I've used debug to check.
    Question: Can the g_f0x values of a tabular form columns be accessed through a PL/SQL in page rendering, or can they
    only be accessed through a page process?
    If not, can the g_f0x values be saved in a global array somewhere although that will make things more complicated.
    Leckraj

    leckj wrote:
    Hi Jorge,
    Thanks for answering,
    If only I had known, because my whole cunning plan was based on this!
    Been in APEX only for some 2 weeks, and its a whole new environment coming from the quiet forms6i way
    of doing things, and sometimes a bit strange.
    I am using collections in fact as my tabular form is based on a view based on a collection.
    However, the cells in the form only seem to be placeholders and any changes seem to be made to only the
    g_f0x arrays, and the underlying collection members have to be updated programatically.
    So if I lose the g_f0x values I cannot update the collection. chicken and eggs.
    The flow needs to run a PL/SQL to update the collection,followed by a javascript call to apex.server.process to print the values in a region.
    Yon cannot have javascript as a page process, and g_f0x values in the rendering part, so is there anywhere apart from a 2-step dynamic action,
    that we can force the run of PL/SQL code followed by javascript?This sounds excessively complicated. The normal APEX approach would be to submit the page, and update the collection from the tabular form <tt>apex_application.g_fxx</tt> array values in a post-submit process. The updated collection values can be displayed in a region using SQL or PL/SQL on page show without recourse to JavaScript.
    This early in your use of APEX, why are you not just using the basic technique?

  • Query SQL code gets deleted after export to Excel. "Query must have at least one destination field"

    Hi all,
    I'm getting really frustrated by this Access error. It happens when I export the result of a query through an Access macro to Excel, the first time it runs well but the next time, there is a chance that the query won't run and the error "Query
    must have at least one destination field" will be displayed. After that, I try to check the query SQL code and discover the code has vanished. I'm using simple Select query without joins, only "where", "group by" and "order by"
    statements.
    Thank you in advance for your help,
    Jesus 
    Edit:
    One of these queries are like the following (all of them are of this type):
    SELECT Field1, field2, field3, field4, field5, Sum(Field6) AS SumOfField6, Sum(Field7) AS SumOfField7
    FROM Table1
    WHERE Field6 is not null
    GROUP BY Field1, field2, field3, field4, field5
    Order By Sum(Field6) desc

    Hi Peter, 
    Thank you for your response, I updated the original question with one of the codes.
    Thanks,
    Jesus

  • SQL Code not working in Forms Developer without Functions?

    Hi all,
    I've write this code into Forms at it's work correctly in SQL and the following error occurened
    The PL-SQL Code:
    DECLARE
         Product_Name Products.Name%TYPE;
         Most_Occurence NUMBER(10);
    BEGIN
         SELECT *
         INTO Most_Occurence, Product_Name
      FROM (SELECT   COUNT (returned_goods.ID) AS "Max Occurence", products.Name
      FROM Returned_Goods
      JOIN Products
      ON returned_goods.productId = products.Id
             GROUP BY returned_goods.productId, products.Name
             ORDER BY COUNT (returned_goods.ID) DESC)
    WHERE ROWNUM = 1;
    END;The error message (appears near JOIN Products) :
       Encountered symbol "PRODUCTS" when expecting one of the following:
          ), with group having intersect minus order start union where connectThanks in advance
    Edited by: ZiKaS on Dec 30, 2008 8:57 AM

    Now...obviously you can't use ansi join syntax in that forms module. So rewrite your query with
    FROM returned_goods, products
    WHERE returned_goods.productId = products.id
    hth

  • Performance tuning in PL/SQL code

    Hi,
    I am working on already existing PL/SQL code which is written by someone else on validation and conversion of data from a temporary table to base table. It usually has 3.5 million rows. and the procedure takes arount 2.5 - 3 hrs to complete.
    Can I enhance the PL/SQL code for better performance ? or, is this OK to take so long to process these many rows?
    Thanks!
    Yogini

    Can I enhance the PL/SQL code for better performance ? Probably you can enhance it.
    or, is this OK to take so long to process these many rows? It should take a few minutes, not several hours.
    But please provide some more details like your database version etc.
    I suggest to TRACE the session that executes the PL/SQL code, with WAIT events, so you'll see where and on what time is spent, you'll identify your 'problem statements very quickly' (after you or your DBA have TKPROF'ed the trace file).
    SQL> alter session set events '10046 trace name context forever, level 12';
    SQL> execute your PL/SQL code here
    SQL> exitWill give you a .trc file in your udump directory on the server.
    http://www.oracle-base.com/articles/10g/SQLTrace10046TrcsessAndTkprof10g.php
    Also this informative thread can give you more ideas:
    HOW TO: Post a SQL statement tuning request - template posting
    as well as doing a search on 10046 at AskTom, http://asktom.oracle.com will give you more examples.
    and reading Oracle's Performance Tuning Guide: http://www.oracle.com/pls/db102/to_toc?pathname=server.102%2Fb14211%2Ftoc.htm&remark=portal+%28Getting+Started%29

  • 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
    Vinod

    2 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

  • Can a PL/SQL code of timesten be called in oracle or vice versa

    Hi
    In IMDB cache setup with AWT cache group , the pl/sql code or procedure that is written in oracleDB can it be called in TimesTen and vice versa
    example: In a stored procedure the DML's that are performed will be updating the cache tables and log table in oracleDB.
    Will there be any performance impact.
    Regards
    Siva Kumar

    A PL/SQL procedure can exist in Oracle DB, in TimesTen, or in both. You control that by where you create the procedure. Procedures that exist in Oracle can really only be called in Oracle and can only access data in Oracle. Procedures that exist in TimesTen can only be called in TimesTen and can only access data in TimesTen. There is a limited capability, using the TimesTen PassThrough capability to call PL/SQL procedures located in Oracle, from Timesten, and for Timesten PL/SQL procedures to access data in Oracle. Using PassThrough does have some overhead.
    Chris

  • Usage of Lexical Parameters in PL/SQL code

    Hello Everyone,
    I am trying to use a query in the pl/sql code which has 9 parameters ( Earlier this query was used in a Report i.e. report6i , so we used the lexical parameter to handle the parameters). But according to our new requirement i have to use this query with the same set of parameters in a PL/SQL code.
    To be more specific of the 9 input parameters to the report one of the parameter is order_date_from and order_date_to. the possibilities are like
    order_date_from = null and order_date_to = null
    order_date_from = not null (some value) and order_date_to = null
    order_date_from = null and order_date_to = not null (some value)
    order_date_from = not null (some value) and order_date_to =not null (some value)
    these above four possibilities are for one lexical parameter (say) like this i have six more combinations.
    Since PL/SQL doesnt support any lexical parameters do i have any other way to handle this situation ?? Any help is greatly appreciated.
    Thanks
    Tarun

    If your columns are named order_date_from and order_date_to and your corresponding parameters are named p_order_date_from and p_order_date_to then you can go with the following approach.
    WHERE order_date_from = NVL(p_order_date_from, order_date_from)
       AND order_date_to = NVL(p_order_date_to, order_date_to)Message was edited by:
    scott.swank

  • To run a piece of PL/SQL code,  in TT  is much slower than   in ORACLE.

    A piece of PL/SQL code , about 1500 lines, package is named rtmon_event, function in it is named rtmon_SHOLD_CUS_RPT;
    the PL/SQL code is run in ORACLE.
    Now I want to get fast speed, I think of TT.
    I rewrite the PL/SQL code by grammer in TT.
    But the speed in TT is much slower than the speed in ORACLE.
    In ORACLE, to run the PL/SQL code, it need 80 seconds; but In TT, to run the PL/SQL code, it need 183 seconds;
    How can I resolve the problem?
    Btw: there are some joins of 2 tables, or 3 tables in rtmon_event.rtmon_SHOLD_CUS_RPT, and some complex DML in it.
    The run method is :
    declare
    a number;
    begin
    a := rtmon_event.rtmon_SHOLD_CUS_RPT ;
    end;
    Thanks a lot.

    The easiest way to view a plan is to use ttIsql and issue the command:
    explain SQL-statement;
    For example:
    explain select a.ol1, b.col2 from taba a, tab b where a.key = b.key;
    See the documentation that 'hitgon' pointed you to to help you interpret the plans.
    Chris

Maybe you are looking for

  • E-Mail alerts for queues in SMQ2

    Hi, In a asynchronous IDOC->ABAP Proxy scenario, some of the  messages are getting stucked in the transaction SMQ2 in PI system.This happens only when we send 100 IDOCs to PI at the same time and only 5-10 messages are getting stucked with status as

  • Bracket keys for increase/decrease on brush size don't update display settings - any workaround?

    I'm a PS user new to Illustrator (CS6). In PS, using the bracket keys [] to increase/decrease brush point size will simultaneously update the data displayed in the tool panel at the top. While I can use the bracket keys in Illustrator to change the a

  • Suppression of country in the customer master

    Hi, I am not able to supress the field in address data of my customer. I checked in the account group setting but I could not find country field. Does anyone have any idea as to how to suppress this field? Regards Ashish

  • "How to create graphs in Reports"

    Hi All, Please anybody help me how to create graphs in the BEx Analyzer and whenever the reports will be refreshed the graphs should also be refreshed with the updated data. Help much appreciated. I will assign points. Thanks and Regards, Sunil Morwa

  • Service Book missing

    Hi everyone, I do a hard reset or delete my device (Curve 8320) and the phone missing or delete several service book, I compare with other Curve 8320 and missing a lot of book services. What can I do to fix it? I have a problem to connect to Facebook