DBAsupport.com Forums - Powered by vBulletin
Results 1 to 4 of 4

Thread: unwrap the wrapped procedure

  1. #1
    Join Date
    Jun 2000
    Location
    chennai,tamil nadu,india
    Posts
    159
    Hi Friends,
    I have wrapped a procedure for example xx and now i lost the original source code.How can i unwrap the procedure for the code.Is there any way i can do it.Pls. revert me asap.

  2. #2
    Join Date
    Nov 2000
    Posts
    344
    I am almost sure that this is not possible.

  3. #3
    Join Date
    Feb 2000
    Location
    Washington DC
    Posts
    1,843

    Seems jdorlon is Right

    Iam Curious to know if there is a way. It doesn't make sense to wrap it and have something to unwrap it, in that case the purpose of wrapping it will be useless.
    Reddy,Sam

  4. #4
    Join Date
    Mar 2001
    Posts
    188
    Hi,
    you can only wrap a file. The file will go to the factor 5 higher.
    The original file you can't throw away because you can't unwrap an file. Oracle us the same wrap technique, so they want to show you all their source.

    More infos you find under the oracle help under the word "Warp Utility"

    I have copy the help to

    Wrap Utility
    This appendix shows you how to run the Wrap Utility, a stand-alone programming utility that encrypts PL/SQL source code. You can use the Wrap Utility to deliver PL/SQL applications without exposing your source code.

    Major Topics
    Advantages of Wrapping
    Running the Wrap Utility
    Guidelines
    Advantages of Wrapping
    By hiding application internals, the Wrap Utility prevents

    misuse of your application by other developers

    exposure of your algorithms to business competitors

    Wrapped code is as portable as source code. The PL/SQL compiler recognizes and loads wrapped compilation units automatically. Other advantages include

    platform independence--you need not deliver multiple versions of the same compilation unit

    dynamic loading--users need not shut down and re-link to add a new feature

    dynamic binding--external references are resolved at load time

    strict dependency checking--invalidated program units are recompiled automatically

    normal importing and exporting--the Import/Export utility accepts wrapped files

    Running the Wrap Utility
    To run the Wrap Utility, enter the wrap command at your operating system prompt using the following syntax:

    wrap iname=input_file [oname=output_file]


    Leave no space around the equal signs because spaces delimit individual arguments.

    The wrap command requires only one argument, which is

    iname=input_file


    where input_file is the name of the Wrap Utility input file. You need not specify the file extension because it defaults to sql. For example, the following commands are equivalent:

    wrap iname=/mydir/myfile
    wrap iname=/mydir/myfile.sql


    However, you can specify a different file extension as the following example shows:

    wrap iname=/mydir/myfile.src


    Optionally, the wrap command takes a second argument, which is

    oname=output_file


    where output_file is the name of the Wrap Utility output file. You need not specify the output file because its name defaults to that of the input file and its extension defaults to plb (PL/SQL binary). For example, the following commands are equivalent:

    wrap iname=/mydir/myfile
    wrap iname=/mydir/myfile.sql oname=/mydir/myfile.plb


    However, you can use the option oname to specify a different file name and extension, as the following example shows:

    wrap iname=/mydir/myfile oname=/yourdir/yourfile.obj

    Input and Output Files
    The input file can contain any combination of SQL statements. However, the Wrap Utility encrypts only the following CREATE statements, which define subprograms, packages, or object types:

    CREATE [OR REPLACE] FUNCTION function_name
    CREATE [OR REPLACE] PROCEDURE procedure_name
    CREATE [OR REPLACE] PACKAGE package_name
    CREATE [OR REPLACE] PACKAGE BODY package_name
    CREATE [OR REPLACE] TYPE type_name ... OBJECT
    CREATE [OR REPLACE] TYPE BODY type_name


    All other SQL statements are passed intact to the output file. Comment lines are deleted unless they appear inside a subprogram, package, or object type.

    When encrypted, a subprogram, package, or object type has the form

    wrapped


    where header begins with the reserved word CREATE and ends with the name of the subprogram, package, or object type, and body is an intermediate form of object code. The word wrapped tells the PL/SQL compiler that the subprogram, package, or object type was encrypted by the Wrap Utility.

    The header can contain comments. For example, the Wrap Utility converts

    CREATE PACKAGE
    -- Author: J. Hollings
    -- Date: 10/15/99
    banking AS
    minimum_balance CONSTANT REAL := 25.00;
    insufficient_funds EXCEPTION;
    END banking;


    into

    CREATE PACKAGE
    -- Author: J. Hollings
    -- Date: 10/15/99
    banking wrapped
    0
    abcd ...


    Generally, the output file is much larger than the input file.

    Error Handling
    If your input file contains syntax errors, the Wrap Utility detects and reports them. However, the Wrap Utility cannot detect semantic errors because it does not resolve external references. For example, it does not report the following error (table or view does not exist):

    CREATE PROCEDURE raise_salary (emp_id INTEGER, amount NUMBER) AS
    BEGIN
    UPDATE amp -- should be emp
    SET sal = sal + amount WHERE empno = emp_id;
    END;


    The PL/SQL compiler resolves external references. So, semantic errors are reported when the Wrap Utility output file (.plb file) is compiled.

    Version Compatibility
    The Wrap Utility is upward-compatible with Oracle. So, for example, you can load files processed by the V8.1.5 Wrap Utility into a V8.1.6 Oracle database. However, the Wrap Utility is not downward-compatible with Oracle. So, for example, you cannot load files processed by the V8.1.6 Wrap Utility into a V8.1.5 Oracle database.

    Guidelines
    When wrapping a package or object type, wrap only the body, not the spec. That way, other developers see the information they need to use the package or type, but they do not see its implementation.

    Like all encrypted files, wrapped files cannot be edited. To revise a wrapped file, you must revise and re-wrap the underlying source code. So, do not wrap a subprogram, package, or object type until it is ready for shipment to end-users.


    Regards
    Thomas

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Click Here to Expand Forum to Full Width