PL/SQL Wrap utility

Is there any information available on oracle's site about security with the wrap utility provided by oracle.
Can it be un-wrapped, can I get some pointers to it withing the oracle site.

Ten seconds work with "Search" on the 9i documentation pages gives this:
http://otn.oracle.com/docs/products/oracle9i/doc_library/release2/appdev.920/a96624/c_wrap.htm#138
You can't "unwrap" previously wrapped code, as that would defeat the point of wrapping it in the first place.

Similar Messages

  • Wrap utility security strength

    Hello,
    I am using the PL/SQL wrap utility to protect my source codes
    that contains an encryption key. But my client wants to know
    what is the security strength of the wrap utility. Anyone has
    that information?
    Thanks a lot,
    Zhen

    hi you can buy a security software that prevents any persons from accessing to your codes.
    Beau

  • Oracle WRAP Utility

    I have a simple function:
    CREATE OR REPLACE FUNCTION hv_f ( p_1 IN NUMBER )
    RETURN NUMBER
    IS
    BEGIN
    RETURN p_1;
    END;
    When I compile and run this function in the database it works fine.
    SELECT hv_f ( 100 ) from dual;
    100
    I then used the wrap utility to wrap the code. Here is the output:
    C:\oracle\product\11.2.0\dbhome_1\BIN>wrap iname=hv_f.sql
    PL/SQL Wrapper: Release 11.2.0.1.0- Production on Wed Apr 25 09:47:30 2012
    Copyright (c) 1993, 2009, Oracle. All rights reserved.
    Processing hv_f.sql to hv_f.plb
    This is the wrapped code:
    CREATE OR REPLACE FUNCTION hv_f wrapped
    a000000
    b2
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    8
    4a 79
    Haipg9ui7ATKGIdMN+rVKka0XpMwg8eZgcfLCNL+XoUWba5eUGnn43jDpdJepZmBMsCyCVBd
    nsCyvbKsCL561r5ucVUAc1OOjg7TZ4E8ceI/0Tx0pu5009s=
    I then try to run this in the database, and I get this error:
    Error starting at line 1 in command:
    CREATE OR REPLACE FUNCTION hv_f wrapped
    a000000
    b2
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    8
    4a 79
    Haipg9ui7ATKGIdMN+rVKka0XpMwg8eZgcfLCNL+XoUWba5eUGnn43jDpdJepZmBMsCyCVBd
    nsCyvbKsCL561r5ucVUAc1OOjg7TZ4E8ceI/0Tx0pu5009s=
    Error report:
    Invalid argument(s) in call
    I tried a few other simple functions and procedures, and I get the same error. Not sure what is wrong. Does anyone have any ideas?
    Thanks.

    Thank you very much for all your help.
    I posted my output from the run, but I was running the wrapped function in SQL Developer (not SQL*Plus) like this:
    CREATE OR REPLACE FUNCTION hv_f wrapped
    a000000
    b2
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    abcd
    8
    4a 79
    Haipg9ui7ATKGIdMN+rVKka0XpMwg8eZgcfLCNL+XoUWba5eUGnn43jDpdJepZmBMsCyCVBd
    nsCyvbKsCL561r5ucVUAc1OOjg7TZ4E8ceI/0Tx0pu5009s=
    And this is the error I was getting in SQL Developer
    Error report:
    Invalid argument(s) in call
    I also tried running the plb this way: @hv_f.plb and I was still getting the same error.
    I then ran it in SQL Plus and it compiled fine.
    Thank you very much to all that responded.

  • How to run wrap utility

    Hi All,
    I tried to use wrap utility from my command promt from c:/oracle9i/bin to encrypt the package code. But found that I am not having any wrap coomand in bin dir, so when I run wrap command from c:/oracle9i/bin, it gave me below error:
    C:\oracle9i\bin>wrap
    'wrap' is not recognized as an internal or external command,
    operable program or batch file.
    Can anybody help me in running wrap command. I am not able to understand if this is version issue, or complete pacakage has not been installed on my machine.
    Or there is some other way to run wrap utility, and I am running it in wrong manner.
    Thanks and Regards,
    Nidhi

    The wrap utility is a command line utility that obfuscates the contents of a PL/SQL source file. The syntax for the wrap utility is shown below.
    wrap iname=input_file [oname=output_file]
    The iname parameter specifies the source file, while the oname parameter specifies the destination file. If the destination file is not specified it defaults to the source file name with a ".pld" extension.
    Running the Wrap Utility
    Wrapping a package is amazingly simple, although there is one pitfall to avoid. Among the 500 plus files in the ORACLE_HOME/bin directory you will see wrap or WRAP depending on your operating system (a lot of the more common files and directories on Windows are upper-cased for ease of readability and identification).
    Using wrap is as simple as this:
    c:\ora9i\bin wrap iname=input_file_name
    You can specify an output file as a second argument by using this format:
    c:\ora9i\bin wrap iname=input_file_name oname=output_file_name
    Once wrapped, a package cannot be unwrapped. With that in mind, and just like what you would do with a real package, do not wrap the package until it is time to ship it. This implies keeping a source code repository of the original code. If a customer or user reports a bug against a wrapped package, there is no unwrapping it at the customer's site. You are going to have to ship another wrapped package with the fix in it. You will be making the bug fix or enhancement with the repository file and wrapping the new file.
    An Example of Using Wrap
    In a previous article, I used the DBMS_RANDOM package. A slightly modified bit of code from that produces the following:
    SQL> CREATE or REPLACE PROCEDURE wrap_it (seed_in NUMBER)
      2  IS
      3    v_rand INTEGER;
      4  BEGIN
      5    DBMS_RANDOM.INITIALIZE (seed_in);
      6    FOR i IN 1..5 LOOP
      7     v_rand := mod(abs(DBMS_RANDOM.RANDOM),45);
      8     dbms_output.put_line(i||': '||v_rand);
      9    END LOOP;
    10  END;
    11  /
    Procedure created.
    SQL> exec wrap_it(123456);
    1: 37
    2: 36
    3: 18
    4: 8
    5: 32
    PL/SQL procedure successfully completed.HTH.
    Amkotz

  • SQL Server Utility - How to Remove Instance that No Longer Exists on Server

    I had a default instance that I had installed for an application.  But then I was told they wanted it as a named instance.  I had added the default instance to the UCP (SQL Server Utility).  I have uninstalled the default instance forgetting
    that I had added it to the UCP.  Now when I try to remove the managed instance I get the following error:
    The action has failed.  Step failed.  The SQL Server connection does not correstpond to this managed instance object.  (Microsoft.Sqlserver.Management.Utility)
    How do I remove the managed instance from the UCP?  Do I need to go into a table in database sysutility_mdw and delete something?
    select * from msdb.dbo.sysutility_ucp_managed_instances
    where instance_id=57
    Maybe delete from table msdb.dbo.sysutility_ucp_managed_instances?
    Or maybe table sysutility_ucp_managed_instances_internal?
    lcerni

    I ran this
    EXEC msdb.dbo.sp_sysutility_ucp_remove_mi @instance_id=57
    And it fixed the issue.
    lcerni

  • UCCX 7.01, fresh install - SQL Reuse Utility doesn't work

    I am installing a fresh copy on UCCX 7.0 on two 7845 servers. As per the uccx70ig, after installing UCCX, before reboot, you install SQL. I have an MS SQL 2K CD from 4.0(5a), I installed the SQL Reuse Utility (SQLUtilTool.exe, v2.0.3) in the appropriate directory. After the "disable CSA", etc messages, I quickly get a message that the SQL install failed, look at C:\WINNT\setup.log for messages.
    There is nothing in there to indicate the problem.
    Anyone had this issue before? Thanks.

    Thanks, Anthony. The ZIP file, v2.0.3 was downloaded and expanded into a C:\SQL2K directory as per the instructions. The C:\WINNT\setup.log file that the failure message pointed me to shows the following:
    [InstallShield Silent]
    Version=v5.00.000
    File=Log File
    [Status]
    Completed=2
    [ResponseResult]
    ResultCode=0
    The C:\SQL2KUTIL.LOG file (for the last run) shows:
    CSCO:Wed May 05 16:24:04 2010:Display_Start_Message()
    CSCO:Wed May 05 16:24:05 2010:Display_Start_Message() - nResult = 6
    CSCO:Wed May 05 16:24:05 2010:CheckInstalled()
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::Registry() constructor begin
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::openKey() opening key SOFTWARE\Cisco Systems\CRA\CurrentVersion
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::readValue() sValue=version
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::readValue() sData=7.0(1)_Build168
    CSCO:Wed May 05 16:24:05 2010:CheckCRSInstalled() returned =1
    CSCO:Wed May 05 16:24:05 2010:CheckSqlCdInserted()
    CSCO:Wed May 05 16:24:05 2010:CheckSqlCdInserted(), sDrive value =E:\
    CSCO:Wed May 05 16:24:05 2010:CheckSqlCdInserted() returned =1
    CSCO:Wed May 05 16:24:05 2010:CheckSqlCdInserted() returned =1
    CSCO:Wed May 05 16:24:05 2010:IsSql2KInstalled()
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::Registry() constructor begin
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::openKey() opening key SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft SQL Server 2000 (CRSSQL)
    CSCO:Wed May 05 16:24:05 2010:IsSql2KInstalled() - exception: csco_clss::Registry::openKey() RegOpenKeyEx failed {The system cannot find the file specified: 2}
    CSCO:Wed May 05 16:24:05 2010:IsSql2KInstalled() returned =0
    CSCO:Wed May 05 16:24:05 2010:Sql_Installation()
    CSCO:Wed May 05 16:24:05 2010:RegAdd()
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::Registry() constructor begin
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::createKey() creating key SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::addValue() type=4, value={ff25f0b5-c894-45f4-a29d-1bdd0c7926cd}, data=1
    CSCO:Wed May 05 16:24:05 2010:csco_clss::Registry::addValue() value added/updated successfully
    CSCO:Wed May 05 16:24:07 2010:StopNM()
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Registry::Registry() constructor begin
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Registry::openKey() opening key SOFTWARE\Cisco Systems\CRA\CurrentVersion
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Registry::readValue() sValue=version
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Registry::readValue() sData=7.0(1)_Build168
    CSCO:Wed May 05 16:24:07 2010:StopNM() in:s string from reg =7.0
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Service::Service() opening service Cisco Unified CCX Node Manager
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Service::StopServices() : Service is already stopped
    CSCO:Wed May 05 16:24:07 2010:StopNM() returned
    CSCO:Wed May 05 16:24:07 2010:LaunchSQL2K()
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Process::launch() about to launch E:\SQL2K\x86\setup\setupsql.exe -s -f1 C:\SQL2K\setupSQL2K.iss
    CSCO:Wed May 05 16:24:07 2010:csco_clss::Process::initEnv(): Set 'PATH' to C:\Program Files\HP\NCU;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\wfavvid\lib;C:\Program Files\Cisco\bin;C:\Program Files\Cisco\AlarmService;C:\Program Files\Cisco\Desktop\bin;C:\Program Files\wfavvid\;
    CSCO:Wed May 05 16:24:12 2010:csco_clss::Process::launch() finished launching/waiting for process
    CSCO:Wed May 05 16:24:12 2010:LaunchSQL2K() returned successfully
    CSCO:Wed May 05 16:24:12 2010:LaunchSP4()
    CSCO:Wed May 05 16:24:12 2010:csco_clss::Process::launch() about to launch C:\SQL2K\MsSql2K.sp4\x86\setup\setupsql.exe -s -f1 C:\SQL2K\setupSP4.iss
    CSCO:Wed May 05 16:24:12 2010:csco_clss::Process::initEnv(): Set 'PATH' to C:\Program Files\HP\NCU;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;C:\Program Files\wfavvid\lib;C:\Program Files\Cisco\bin;C:\Program Files\Cisco\AlarmService;C:\Program Files\Cisco\Desktop\bin;C:\Program Files\wfavvid\;;
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Process::launch() finished launching/waiting for process
    CSCO:Wed May 05 16:24:17 2010:LaunchSP4() returned successfully
    CSCO:Wed May 05 16:24:17 2010:SetStartType()
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Service::Service() opening service mssearch
    CSCO:Wed May 05 16:24:17 2010:Exception in ServiceSetStarType()csco_clss::Service::Service() unable to open service. {The specified service does not exist as an installed service: 1060}
    CSCO:Wed May 05 16:24:17 2010:RegAddCiscoSQLflag()
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Registry::Registry() constructor begin
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Registry::createKey() creating key SOFTWARE\Cisco Systems\CRA\CurrentVersion
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Registry::addValue() type=1, value=SQLProvider, data=cisco
    CSCO:Wed May 05 16:24:17 2010:csco_clss::Registry::addValue() value added/updated successfully
    CSCO:Wed May 05 16:24:17 2010:RegAddCiscoSQLflag() returned successfully
    CSCO:Wed May 05 16:24:17 2010:ReadMSSQL2KIssLogFile() in:sDirectory=C:\WINNTsLogFile=setup.log
    CSCO:Wed May 05 16:24:17 2010:ReadMSSQL2KIssLogFile() the sFilePath: C:\WINNT\setup.log
    CSCO:Wed May 05 16:24:17 2010:csco_clss::readMSSQL2KIssLogFile() the nResultCode: 0
    CSCO:Wed May 05 16:24:17 2010:csco_clss::readMSSQL2KIssLogFile() the nCompleted: 2
    CSCO:Wed May 05 16:24:17 2010:ReadMSSQL2KIssLogFile() found error in the Iss log file C:\WINNT\setup.log bError:1

  • Wrap utility doesn't work on Trigger

    Hello Experts,
    I want to encrypt the code in trigger on database by using wrap tool. I type this one below:
    wrap iname=TRG_INSERT_BB_TEMP.trg oname=TRG_INSERT_BB_TEMP_wrap.trg
    It doesn't work on my side. Or is it true, that such wrapping doesn't either on trigger?
    Is there any other Oracle Utility?
    regards,
    Pakpahan

    The wrap utility does not obfuscate the source code for triggers, but you can create a trigger who calls a wrapped procedure.
    Enrique

  • Using clob in sql loader utility in oracle 9i

    Hi,
    I want to load data into a table with 2 clob columns using a sql loader utility dat file and control file created programatically.
    The size of clob in dat file can change and the clob columns are inline in data file.
    As per 9i doc the size of clob is 4GB .
    How can I change the control file so that it can load max 4 GB data in clob columns .
    I am getting error while calling sqlldr using below control file :
    SQL*Loader-350: Syntax error at line 13.
    Expecting non-negative integer, found "-294967296".
    ,"NARRATIVE" char(4000000000)
    ^
    control file :
    LOAD DATA
    INFILE '' "str X'3C213E0A'"
    APPEND INTO TABLE PSD_TERM
    FIELDS TERMINATED BY '~^'
    TRAILING NULLCOLS
    "PSD_ID" CHAR(16) NULLIF ("PSD_ID"=BLANKS)
    ,"PSD_SERIAL_NUM" CHAR(4) NULLIF ("PSD_SERIAL_NUM"=BLANKS)
    ,"PSD_TERM_COD" CHAR(4) NULLIF ("PSD_TERM_COD"=BLANKS)
    ,"PSD_TERM_SER_NO" CHAR(4) NULLIF ("PSD_TERM_SER_NO"=BLANKS)
    ,"VERSION_DT" DATE "DD-MON-YYYY HH:MI:SS AM" NULLIF ("VERSION_DT"=BLANKS)
    ,"LATEST_VERSION" CHAR(1) NULLIF ("LATEST_VERSION"=BLANKS)
    ,"NARRATIVE" char(4000000000)
    ,"PARTITION_DT" DATE "DD-MON-YYYY HH:MI:SS AM" NULLIF ("PARTITION_DT"=BLANKS)
    ,"NARRATIVE_UNEXPANDED" char(4000000000)
    )

    Yes, you can do it. Create the sequence (suppose you call it "PK_SEQ_X") and then in your control file reference it as "PK_SEQ_X.NEXTVAL". For example suppose you wanted to put it into a column named 'Y' the entry in your control file will look like 'load data insert into table Z (Y "PK_SEQ_X.NEXTVAL", ....)'
    Note that the double quotes around the sequence name are required.

  • PL/SQL Wrap files

    Hi All,
    Just like to know What are PL/SQL wrap files and what is the use of these files ?
    Thanks

    We cannot read the source of wrapped PL/SQL files. This protects your code from prying eyes, something you might wish to do for either security or commercial reasons. The important thing about wrapping is that it is one way. There is no mechanism from reconstructing the source in plain text from a wrapped procedure.
    Cheers, APC

  • Load Data from SQL Server to Oracle 10g using Sql*loader utility

    I am trying to lod data from sql server 2005 to oracle 10g.
    What is the best way to do it?
    Can sql*loader utility do it?
    what is the difference of using sql*loader utility and migration tool fom sql developer ?
    Thanks
    Edited by: user11313758 on Sep 30, 2009 4:30 PM

    Hello:
    You could consider using Oracle Heterogeneous Services to do this. If your Oracle database is on a Windows platform the link below shows you how to make a connection to SqlServer from an Oracle database.
    http://www.databasejournal.com/features/oracle/article.php/3442661/Making-a-Connection-from-Oracle-to-SQL-Server.htm
    Varad

  • Use of Oracle pump utility as equivalence of SQL bcp utility??

    can anyone throw any pointers to how to use Oracle pump utility as equivalence of SQL bcp utility??

    The equivalence of BCP is SQL*Loader. Data pump is used for export/import. During an import operation it can read just a file created by data pump export.

  • Pls Help for Sql Loader utility

    Dear friends,
    I want to execute Sql Loader utility by procedure.
    Can anyone give me any idea about it.
    Thanks in adavance.

    Why?
    Why build a kludgy and unscalable application?
    Sybrand Bakker
    Senior Oracle DBA

  • WRAP UTILITY, Any help please!

    Hi Gurus,
    Can I know if Wrap utility is also installed as part of options during Oracle Client installation.
    I had a problem as stated below from oracle cleint using on of my applications.
    java.io.IOException: wrap: not found
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:72)
    at java.lang.Runtime.execInternal(Native Method)
    at java.lang.Runtime.exec(Runtime.java:602)
    at java.lang.Runtime.exec(Runtime.java:461)
    at java.lang.Runtime.exec(Runtime.java:397)
    at java.lang.Runtime.exec(Runtime.java:359)
    at com.r2000.integration.wcif.dbtools.EncodeScript.wrapPLSQL(EncodeScript.java:83)
    at com.r2000.integration.wcif.dbtools.EncodeScript.beginEncoding(EncodeScript.java:216)
    at com.r2000.integration.wcif.dbtools.IGP.begin(IGP.java:149)
    at com.r2000.integration.wcif.dbtools.IGP.main(IGP.java:231)
    Any help please?

    Can you get it now? Any help? I don't know what gets installed as part of the Oracle client only - I'm surrounded by servers, no client machines. What this suggest to me is that you don't have a test environment that replicates your users' environment. This is a dangerous practice and will likely lead you to deliver applications with broken dependencies, if you haven't already (which you apparently have).
    Which I suppose is not very helpful to your current situation but you at least know what you need to do to avoid this situation in the future.
    Cheers, APC

  • Encripting a package through wrap utility

    Hi,
    I am encripting my package through wrap utility.There are variables defined as VARCHAR2. The .plb file has been created successfully but when i am trying to compli ethis plb file, it is giving following error..
    "398/67 PLS-00222: no function with name 'VARCHAR' exists in this scope"
    Please help me.

    I would have thought the wrap utility would recognise VARCHAR datatype but maybe not. Check your code to see if you have any VARCHAR(??) defined variables rather than VARCHAR2(??).
    Just a wild guess.

  • Wrap Utility Encryption Method?

    Hi,
    Does the WRAP utility use AES128 to encrypt?
    Thanks,
    Nora

    Well, obviously, this is not the type of information Oracle wants to be made public. However, some careful use of Google may yield some interesting results.
    -Mark

Maybe you are looking for

  • Share file with multiple network devices

    hhow do I share the files on my airport time capsule with my Mac mini, iPad, iphone, windows based computers?

  • How do I get (in c) a method return value from the java side?

    I have a class in the Java side, that I pass as object to the c side. in the Java class I have the following method: public String getPgmId() return pgmId; where pgmId is a private string. I nees to get the value of pgmId, hopefully by using the getP

  • What syntax should be used in jspx for img src= c:out value="${}" /

    Dear Friend If I query in a database and the database return a url and with this url  I like to generate an image in jspx. *The syntax work ok with the jsp <img src=<c:out value="${abc.xyz}" />* *But with jspx it shows syntax error of < What you peop

  • Comp won't wake up when opened

    Hey, I've just started having a problem with my iBook: When I close it and open it, it wont fall asleep and wake up. I have to manually put it to sleep and wake it. I've had my computer for probably 4 or 5 years now. Please help......

  • Remove 7.0.1 update

    Is it possible to remove 7.0.1 update, it created problems, thanks