Make EXE for Pl/sql procedure

Hi all,
I have one Pl/sql procedure for which i want make EXE.
can we make EXE files for PL/sql procedures using ' Oracle Developer Tools for Visual Studio .NET'
Thank you.

Hi Al,
Can you tell me in steps how to create EXE for pl/sql procedure using C# console application.
I have one webservice link which i want to invoke and i have to put the webservice output in a saparate file.
I wrote Pl/sql procedure which invokes/consumes the webservice using UTL_HTTP and also placed the output of Webservice in a saparate file using UTL_FILE.
But i have to execute this procedure on a Workstation where there is No Oracle installed.
as you suggested using C# console application. Will this Procedure with UTL_FILE & UTL_HTTP packages run in that c# console application.
Thank you

Similar Messages

  • Creating Web service for PL/SQL Procedure with Complex Data Types

    I need to created web service for PL/SQL Procedure with Complex Data types like table of records as parameters, how do we map the pl/sql table type parameters with web service, how to go about these?

    Hello,
    When you are creating a service from a Stored Procedure, the OracleAS WS tools will create necessary Java and PL wrapper code to handle the complex types (table of record) properly and make them compatible with XML format for SOAP messages.
    So what you should do is to use JDeveloper or WSA command line, to create a service from your store procedure and you will see that most of the work will be done for you.
    You can find more information in the:
    - Developing Web Services that Expose Database Resources
    chapter of the Web Service Developer's guide.
    Regards
    Tugdual Grall

  • TTClasses interface for PL/SQL procedure and fetching its results

    Hi experts,
    I am using TimesTen Release 11.2.1.3.0;
    I created a simple PL/SQL procedure as follows in timesten-
    Command> create or replace procedure employee(eno in emp.empno%type) is
    > e_name emp.ename%type;
    > begin
    > select ename into e_name from emp where emp.empno = eno;
    > dbms_output.put_line(e_name);
    > end;
    > /
    And then I call it through TTClasses as
    TTCmd cmd, compilecmd;
    compilecmd.Prepare(conn,"alter procedure employee compile;",status);
    cmd.Prepare(conn,"begin employee(1020); end;",status);
    cmd.Execute(..);
    cmd.FetchNext(..);
    Here fetchNext is returning an error -
    [TimesTen][TimesTen 11.2.1.3.0 ODBC Driver]Invalid cursor state
    *** ODBC Error/Warning = 24000, TimesTen Error/Warning = 0
    *** Unable to fetch row for statement: <begin employee(1020); end;>.terminate called after throwing an instance of 'TTError'
    Aborted
    How can I run PL/SQL procedures/functions on TimesTen through TTClasses interface?
    Any help or input would be of great value.
    Thanks

    The issue here is nothing to do with TTClasses. Your PL/SQL procedure executes a SELECT statement (that returns just one row) using an implicit cursor within the PL/SQL procedure and retrieves the value of the ename column into the PL/SQL variable. However it does not them do anything with that value such as pass it back to the caller...
    Similarly, the TTClasses code executes a statement that it is expecting to create an ODBC level cursor 9which thsi PL/SQL invocation will not of course) and it is then trying to fetch from a cursor that does not exist.
    I would recommend that you take a look at the TimesTen PL/SQL documentation (Oracle® TimesTen In-Memory Database PL/SQL Developer's Guide Release 11.2.1) and refer to the section on IN, OUT and IN/OUT parameters. This will show you how you can use OUT parameters to return values to the caller. This technique works fine for ODBC, JDBC and OCi programs but does not sadly currently work with TTClasses. TTClasses has not yet been enhanced to support OUT and INOUT parameters. Of course as you have the source code for TTClasses you could make the necessary modifications yourself.
    I will open a bug requesting that TTClasses support OUT and INOUT parameters but in the meantime if you need this kind of capability you will need to either modify TTClasses yourself or switch to using a different API.
    Chris

  • URL Syntax for PL/SQL procedure

    I am trying to call a PL/SQL procedure to delete a file attachment (from How To). I have modified the procedure to accept three other arguments (app, page, session). My delete-column link is:
    #OWNER#.delete_my_file?p_file=#ID#,p_app=&APP_ID.,p_page=&APP_PAGE_ID.,&SESSION.
    My procedure source is:
    PROCEDURE DELETE_MY_FILE(p_file in number,p_app in number,p_page in number,
    p_session in number) as
    varLocation varchar(100);
    BEGIN
         DELETE FROM hr.file_subjects f
         WHERE f.id = p_file;
         --print the redirect back to the web browser, return to paqe
    varLocation := '<script>window.location="f?p='||p_app||':'||
    p_page||':'||p_session||'";</script>';
    htp.p(varLocation);
    END delete_my_file;
    I assume that I can call a PL/SQL function or SPROC with multiple arguments, do I simply have the URL wrong?
    I get the "...URL not found on server..." error.

    I already granted execute to public. I can run this SPROC from SQL*Plus with no issues. I was simply trying to expand upon the How TO example and pass multiple args to a SPROC that is called from a query region column link. If I put it at the page level process, then I have to use checkboxes (or something else) to indicate which files I want to delete and then call a page submit.
    Is it not possible to call a PL/SQL SPROC with multiple args from a web link in HTMLDB?

  • Url for pl/sql procedure

    How does once put together the url for a pl/sql web procedure in rel 2? I tried http://<host>:<port>/pls/portal/schema.procedure
    no go. I tried various combinations and can't seem to hit the right one. Any help?

    Try get execute to public on this procedure or put this procedure in package and grant execute to public user on this package.

  • Help need for PL/SQL procedure

    Hi guys,
    I have scenario like this
    Schema     T     LOGTABLENAME          TDIRECTORY
    DEV          DEV.ABC_LOG                    import-abc
    DEV          DEV.GBTSLOG          import-gbts
    DEV          DEV.CLSSBOG     import-cls
    QA          QA.TransactionlOG          import-transaction
    QA1 QA1.tlog import-ess
    QA2 QA2.translog import-trnals
    I have to write a procedure to get the log table data from schema Dev.I have to take Shcema dev and go to DEv.abc_log table and get the record from the dev.abc_logtable. The same way for other schema also with respective logtables .
    I would appreciate your help or suggestions.
    Reards,
    User
    Edited by: user1758353 on Dec 5, 2008 11:43 AM

    hello,
    im also not sure if i get the point but maybe you need sth. like that...
    create table schema_logtable as
    select 'dev' schema, 'dev.abc_log' tlogtable, 'import-abc' tdirectory from dual union all
    select 'dev', 'dev.gbtslog', 'import-gpts' from dual union all
    select 'dev', 'dev.clssbog', 'import-cls' from dual );
    declare
       v_slt_row schema_logtable%rowtype;
       type log_description_table is table of varchar2(1000char);
       v_log_description log_description_table := log_description_table();
    begin
       for v_slt_row in ( select * from schema_logtable )
       loop
          execute immediate 'select log_description from ' || v_slt_row.tlogtable bulk collect into v_log_description;
          for i in v_log_description.first .. v_log_description.last
          loop
             dbms_output.put_Line( 'log_desc: ' || v_log_description(i) );
          end loop;
       end loop;
    end;
    /this reads for every schema in table schema_logtable the name of the logtable.
    for each logtable you fetch all rows of that table into a variable and you can do what-ever you want with that...
    -mario

  • No .exe for downloaded SQL Developer for Windows

    Just downloaded file. Followed instructions. Looked in sub directory called sqldeveloper for .exe file. It didn't download one. Anyone have any suggestions.

    Not sure why that is, I just downloaded it and the .exe was in the zip file. You may want to try and download the zip file again.

  • Linking PL\SQL procedure as Concurrent Process

    Hi.
    I'm link PL-proc as concurrent process, and it runs without any
    errors.
    Now I need also run it as standart report, but can't generate
    output file to store any words to.
    help.
    mailto: [email protected]

    Thanks for your response.
    I am writing a BPEL PM process for inserting AP Invoices by inserting data into the interface tables, and then executing the corresponding concurrent program (APXIIMPT). I would like to trap any errors and send them back to the BPEL process.
    One suggestion on how to do this is to write a pl/sql procedure which inserts the data, executes the concurrent program, collects any error messages, and passes them back via OUT parameters. Such a procedure could be called using an adapter from BPEL PM.
    So the issue for this forum is how to make the single pl/sql procedure wait for completion of the concurrent process.
    Alternatively, is there a business event raised when the concurrent process completes?

  • Blob datatype as arguement to PL/SQL procedure

    Hi,
    Iam trying to pass Blob data from application program to PL/SQL as one of its arguement. The PL/SQL procedure will inturn insert the given Blob data into appropriate table in its corresponding Blob column.
    Ex:-
    PL/SQL Procedure:
    CREATE OR REPLACE PACKAGE TestPkg as
    PROCEDURE logData
    data IN Blob
    END TestPkg;
    Application Program:
    1. string sqlStmt="BEGIN TestPkg.logData(:1); END;";
    2. Connection * pConnection = getConnection();
    3. Statement * pStatement = pConnection->createStatement(sqlStmt);
    4. Blob blob(pConnection);
    5. blob.setEmpty();
    6. blob.write(100, pBuffer, 100, 1); <=== This results in (ORA-22275: invalid LOB locator specified)
    7. pStatement->setBlob(blob);
    8. pStatement->executeUpdate();
    9. pConnection->terminateStatement(pStatement);
    10. releaseConnection(pConnection);
    I used to get similar error while directly inserting from application program to a table with Blob column.
    We fixed it by using the "FOR UPDATE" clause in a select statement and obtaining the locator
    for LOB. Iam looking for a similar syntax for PL/SQL procedure inputs.

    Gaurav,
    Just a guess, but try the following:
    ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor( "SCOTT.HEADER_UPLOAD_TAB", oracleconnection );In other words, prefix the data-type name, HEADER_UPLOAD_TAB, with its schema owner name.
    Good Luck,
    Avi.

  • Creating webservice for pl/sql API without using BPEL

    Hi All,
    Using BPEL, We have created partner links using DB Adapter for accessing our pl/sql API's.
    Is there any way to create a web service for a pl/sql API having complex datatype parameters like (Record, table of records etc) using DB Adapter or any other tool without using BPEL?
    Thanks,
    Uma.

    We introduced the use of JPublisher to automate the generation of wrappers for PL/SQL procedures that use types such as boolean, record and table. The wizard will invoke JPub and generate artifacts that the partnerlink will use to invoke the wrapper instead of the original API. Boolean is replaced by INT, record is replaced by an object type and table is replaced by a nested table. The wrapper will invoke the original API. JPub also takes care of converting between the different types (i.e. record <-> object).

  • Creation of DB Adaptert for calling stored procedure in MS SQL server

    Hi,
    I need to create a DB adapter to call a stored procedure in MS SQL Server.
    I have gone thru the thread MS SQL Server database connection
    It mentions that we need to use a command line utility for generating the wsdl and xsd for calling stored procedures in MS SQL server. Please provide information where to find this utility and how to use it.
    Any links to tutorials are welcome.
    Thanks !!.
    Silas.

    Command line is required for stored procedures, if you are using the basic options you don't need to worry.
    (1) Download MS SQL Server 2005 JDBC Driver from Microsoft Site. http://msdn.microsoft.com/en-us/data/aa937724.aspx
    (2) The download is self extracting exe file. Extract this into Program Files on your machine. It should create folder as "Microsoft SQL Server 2005 JDBC Driver"
    (3) In above mentioned folder search for sqljdbc.jar copy this file into JDeveloper\JDBC\lib folder.
    (4) Open JDeveloper/jdev/bin/jdev.conf file add following entry.
    AddJavaLibPath C:/Program files/Microsoft SQL Server 2000 Driver for JDBC/lib
    While executing this step make sure that your JDeveloper is closed.
    (5) On command prompt go to J Developer folder and execute following command
    jdev -verbose
    This will open JDeveloper.
    (6) Now go to JDeveloper > Connections > Database Connections > New Database Connection
    (7) Select Third Party JDBC
    (8) Specify MS Sql Server User Name, password and Role.
    (9) In connection page specify following
    - Driver Class: com.microsoft.sqlserver.jdbc.SQLServerDriver
    - For class path browse to C:/Program files/Microsoft SQL Server 2000 Driver for JDBC/lib folder, select sqljdbc.jar add it as library.
    - Specify URL as following.
    jdbc:sqlserver://SERVERNAME:1433;databaseName=MSSQLDBNAME;
    (10) Go to Test page and test it.
    cheers
    James

  • My pl/sql procedure works; I'm just looking for someone to review it

    Hi All,
    I wrote the below procedure to be executed via APEX (inside the APEX_PLSQL_JOB.SUBMIT_PROCESS wrapper).
    It works fine, but I'm not a programmer per se and am just curious if one of the veterans on this forum could review it
    and just tell me if it looks like I followed proper standards/procedures etc. or make any suggestions on how I can be more efficient etc.
    The purpose of the procedure is to update Oracle Applications translations tables with language-translated values that we have
    accumulated from our global workforce. It's pretty simple - just a big find and replace exercise - replacing english values in the apps
    tables with translated values. Oracle's '_TL' tables are designed for this purpose and I'm not updating any primary or foriegn keys.
    I don't know the exact update statement or instance at the time of execution and hence the need for dynamic SQL and a DB link.
    Again, there are no issues (yet) - everything is working fine, I'm just interested in having someone review it and offer me some feedback.
    thanks in advance,
    John
    create or replace
    procedure GSE_UPDATE_TL_TABLES (l_instance IN varchar2, l_app_job IN number)
    IS
    l_tname  varchar2(30);
    l_column_name VARCHAR2(30);
    l_col_value VARCHAR2(4000);
    l_eng_value VARCHAR2(4000);
    l_language VARCHAR2(4);
    i number;
    l_query VARCHAR2(4000);
    l_messages dbms_output.chararr;
    l_numlines integer := 1000; -- retrieves max 1000 messages from the buffer
    l_rows_updated number := 0;
    l_rows_processed number;
    CURSOR TABLES_CUR IS
    SELECT TABLE_NAME, COLUMN_NAME, COLUMN_VALUE, eng_value, LANGUAGE FROM GSE_LNG_STRINGS WHERE COMPLETION_STATUS = 'Y'; ---This table is our repository of translations
    and includes the english value, the translated values, the language code and the table and column names that will be updated.
    BEGIN
    DBMS_OUTPUT.ENABLE(1000000);
    delete from gse_update_tracking;  ---I'm using this table to track real-time progress and to update a progress status bar in APEX.
    commit;
    open tables_cur;
    LOOP
    fetch tables_cur into l_tname, l_column_name,l_col_value, l_eng_value, l_language;
    EXIT WHEN tables_cur%NOTFOUND;
    BEGIN
    EXECUTE IMMEDIATE
    'Update ' ||l_tname||'@'||l_instance||' set ' ||l_column_name|| ' = q''['||l_col_value||']''  where ' ||l_column_name|| ' = q''['||l_eng_value||']'' and language = '''||l_language||'''';
    l_rows_updated := (l_rows_updated + sql%rowcount);
    insert into gse_update_tracking (counter) values (1);
    commit;
    exception
      when dup_val_on_index then
    l_query := 'Update ' ||l_tname||'@'||l_instance||' set ' ||l_column_name|| ' = q''['||l_col_value||']''  where ' ||l_column_name|| ' = q''['||l_eng_value||']'' and language = '''||l_language||'''';
    DBMS_OUTPUT.PUT_LINE('This query caused DUP_VAL_ON_INDEX exception: '||l_query);
    when others then
    l_query := 'Update ' ||l_tname||'@'||l_instance||' set ' ||l_column_name|| ' = q''['||l_col_value||']''  where ' ||l_column_name|| ' = q''['||l_eng_value||']'' and language = '''||l_language||'''';
    DBMS_OUTPUT.PUT_LINE('This caused an undefined exception: '||l_query);
    end;
    End Loop;
    l_rows_processed := tables_cur%rowcount;
    update gse_lng_jobs set rows_processed = l_rows_processed, rows_updated = l_rows_updated where job_id = l_app_job;
    close tables_cur;
    begin
    dbms_output.get_lines(l_messages, l_numlines);
    for i in 1..l_messages.count
    loop
    insert into gse_lng_update_exceptions(id, text, Job) values(i, l_messages(i), l_app_job);
    commit;
    end loop;
    end;
    END;

    Hoek, davidp 2, Tubby, rp0428 et al.,
    I think I'm making progress. I'm researching and trying to incorporate your suggestions.
    I worked through the examples of error logging here: http://www.oracle.com/technetwork/issue-archive/2006/06-mar/o26performance-096310.html. I'm not sure if this will work for me though since I'm updating many tables and not just one. So it seems I would need to run this for every table that I'm updating?
    BEGIN
            DBMS_ERRLOG.CREATE_ERROR_LOG('[table_name]');
    END;
    Otherwise, this is the current state of things:
    create or replace
    procedure gse_lng_test_1 (p_table varchar2, p_column varchar2) *--using proper parameter names prefixed with 'p' to distinguish from local variables*
    IS
    i number;
    l_query VARCHAR2(4000);
    l_messages dbms_output.chararr;
    l_numlines integer := 1000; -- retrieves max 1000 messages from the buffer
    l_rows_updated number := 0;
    l_rows_processed number;
    BEGIN
    DBMS_OUTPUT.ENABLE(1000000);
    commit;
    l_query := 'Update ' ||p_table||' set ' ||p_column|| ' = :newval where '||p_column|| ' = :engval and language = :lang' ; *--build the string once in a local variable with bind variables. Table names and column names are passed via parameters*
    for c2 IN (SELECT TABLE_NAME, COLUMN_NAME, COLUMN_VALUE, eng_value, LANGUAGE FROM GSE_LNG_STRINGS WHERE COMPLETION_STATUS = 'Y' and table_name = p_table and column_name = p_column) *--using implicit cursor instead of explicit cursor*
    LOOP
    BEGIN
    EXECUTE IMMEDIATE l_query USING c2.eng_value, c2.column_value, c2.language; *--execute immediate with bind variables*
    exception
      when dup_val_on_index then
      dbms_output.put_line('this query caused a dup_val_on_index: '||SQLERRM||' - '||l_query); *--include SQLERRM in message*
    when others then
    dbms_output.put_line('this query caused an exception: '||SQLERRM||' - '||l_query); *--include SQLERRM in message*
    end;
    commit;
    end loop;
    end;Now that the table names and column names are in parameters, I am calling this from APEX as follows:
    Begin
    for c1 in (select distinct table_name, column_name from gse_lng_strings)
    LOOP
    gse_lng_test_1 (p_table=> c1.table_name, p_column=>c1.column_name);
    end loop;
    end;The one thing I need to do is to get a status of the number of rows processed and updated so I can report back to APEX realtime with a jquery counter plugin that I'm using. That was the reason I was inserting records into a dummy table (gse_update_tracking) before. It worked ok but I realize it was a clumsy approach. I'm not to sure how to accomplish that since I don't think I can access sql%rowcount while the loop is running. Is that correct and if so, are there any other options?
    I know I still need to deal with my exception handling and I would like to use the DML error logging if at all possible.
    Overall though I feel like it's much cleaner and more manageable. Hopefully it's looking better?
    thanks again for the education - I really appreciate it,
    John

  • Is it possible to make connection for the VC application the SQL Server

    hi
    I have requirement like, We have some data available in SQL server as central repositoty. My client want to make the Anylatics application like showing graphs in VC based on the data available in SQL server.
    My question. Is there any possiblity to make the connection the sql server by creating some system object using some JDBC connection Like that.
    What is the possibility.
    can u any body tell what is the work around need to be for this requirement. Whether it is possible or not.
    Regards
    vijay

    Hi Vijay,
    In your other thread, I have given the link to the following doc which will help you to in configuring the JDBC Connector.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/uuid/b00917dc-ead4-2910-3ebb-b0a63e49ef10
    That was the first step.
    In the second step, you need to create a JDBC System in the portal. Go through the following doc which explains how to create BI JDBC system for VC. All you need to change is that on Page 10, choose JDBC system instead of BI JDBC system, and do the necessary configurations.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6209b52e-0401-0010-6a9f-d40ec3a09424
    As rightly said by Marcel, you can use stored procedures as well as SQL statements. As far as stored procedures are concerned, all you need to do is go to Enterprise Manager, and create procedures in your database in the same way by which you create new tables and users (Refer my article). Then you can use these procedures in your Visual Composer provided you have properly created the JDBC system in portal properly.
    Also have a look at the following doc:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6339e7d4-0a01-0010-1c98-db00e52e989a
    Bye
    Ankur
    Do reward points for helpful as well as solved answers!!

  • Stored Procedures for Simple SQL statements

    Hi Guys,
    We are using Oracle 10g database and Web logic for frontend.
    The Product is previously developed in DotNet and SQL Server and now its going to develop into Java (Web Logic) and Oracle 10g database.
    Since the project is developed in SQL Server, there are lot many procedures written for simple sql queries. Now I would like to gather your suggestions / pointers on using procedures for simple select statements or Inserts from Java.
    I have gathered some list for using PL/SQL procedure for simple select queries like
    Cons
    If we use procedures for select statements there are lot many Ref Cursors opened for Simple select statements (Open cursors at huge rate)
    Simple select statements are much faster than executing them from Procedure
    Pros
    Code changes for modifying select query in PL/SQL much easier than in Java
    Your help in this regard is more valuable. Please post your points / thoughts here.
    Thanks & Regards
    Srinivas
    Edited by: Srinivas_Reddy on Dec 1, 2009 4:52 PM

    Srinivas_Reddy wrote:
    Cons
    If we use procedures for select statements there are lot many Ref Cursors opened for Simple select statements (Open cursors at huge rate)No entirely correct. All SQLs that hit the SQL engine are stored as cursors.
    On the client side, you have an interface that deals with this SQL cursor. It can be a Java class, a Delphi dataset, or a PL/SQL refcursor.
    Yes, cursors are created/opened at a huge rate by the SQL engine. But is is capable of doing that. What you need to do to facilitate that is send it SQLs that uses bind variables. This enables the SQL engine to simply re-use the existing cursor for that SQL.
    Simple select statements are much faster than executing them from ProcedureAlso not really correct. SQL performance is SQL performance. It has nothing to do with how you create the SQL on the client side and what client interface you use. The SQL engine does not care whether you use a PL/SQL ref cursor or a Java class as your client interface. That does not change the SQL engine's performance.
    Yes, this can change the performance on the client side. But that is entirely in the hands of the developer and how the developer selected to use the available client interfaces to interface with the SQL cursor in the SQL engine.
    Pros
    Code changes for modifying select query in PL/SQL much easier than in JavaThis is not a pro merely for ref cursors, but using PL/SQL as the abstraction layer for the data model implemented, and having it provide a "business function" interface to clients, instead of having the clients dealing with the complexities of the data model and SQL.
    I would seriously consider ref cursors in your environment. With PL/SQL servicing as the interface, there is a single place to tune SQL, and a single place to update SQL. It allows one to make data model changes without changing or even recompiling the client. It allows one to add new business logical and processing rules, again without having to touch the client.

  • SQLEXPRWT_x64_ENU.exe for SQL 2014 express seems to be incomplete?

    Hi,
    I have downloaded the executable SQLEXPRWT_x64_ENU.exe for SQL 2014 express several times, but every time I run the executable, when it is almost done extracting I get the error: Extraction failed.
    When I run the setup.exe in the directory where the extracted files reside, the installation will eventually fail with the error it is missing files (which sounds logical seen the previous error).
    So it occurs to me that the "SQL 2014 Express With Tools" executable (SQLEXPRWT_x64_ENU.exe) found at http://www.microsoft.com/en-us/download/details.aspx?id=42299 is broken.
    Anyone with the same issues or have any idea where I can download the correct executable?
    By the way the total size of the separate downloads of the management tools and the sql express version is larger than the download with the tools included:
    SQLEXPRWT_x64_ENU.exe = 833.2 MB
    SQLEXPR_x64_ENU.exe + SQLManagementStudio_x64_ENU.exe = 880.6 MB
    For me this confirms my suspicion 
    Regards,
    Erik

    Hi,
    Based on your description there IS something wrong with the download. Have you actually downloaded it and tried what I am describing, so you can rather base it on experience than just a description?
    1. If I need a third party application to successfully extract a self-extracting executable, than to me there is something wrong with the download.
    2. the /X makes no sense because I get the same specify location dialogue box if I just run the executable.
    Taken all the above into account including the size differences mentioned in my starting post, to me the self extracting executable is still broken/faulty/incomplete.
    Hi Erik,
    Actually, I have done a test, firstly downloaded the SQLEXPRWT_x64_ENU.exe file from the same website:http://www.microsoft.com/en-us/download/details.aspx?id=42299, and extracted it from the command prompt, and then I installed the SQL 2014 Express on my computer
    successfully.
    Since your self-extracting executable is still incomplete.I recommend you to check if there is an anti-virus software or other third-party software on your computer blocking the process of downloading, also you can try to download the SQLEXPRWT_x64_ENU.exe
    file from a different browser, and check if you can implement the extraction successfully.
    In addition,this issue might also be caused by your Internet Service Providers (ISP). In order to enhance the network performance, some ISPs may deploy cache servers, when you download the SQLEXPRWT_x64_ENU.exe file from Microsoft official website, it
    will redirect your installation media file to the local cache server, and it might cause the download file to be broken, then you encounter the error when extracting file. I recommend you to contact to your ISP to solve the problem, then download again
    and check if it can extract successfully .
    Thanks
    Lydia Zhang

Maybe you are looking for