Informix Stored Procedure Blobs into CF

New CF user here. I'm trying to use Informix Stored
Procedures to return blobs to CF. When using cfquery, all worked
fine, but it seems I can only return the non-blob fields when using
stored procedures. According to the documentation, I can define a
pointer (references text) in the stored procedure, but I don't know
how to get the blob to display in CF since I cannot use it in the
RETURNING section of the procedure, Any thoughts to also get the
blob in additional to the 5 other character values that are
returned just fine? Thanks in advance.

Better to use a PL/SQL stored
procedure than a
function, as "older" versions of ColdFusion could not handle
the retun value from an Oracle function. Not sure about 6.1, but
you can use them with MX7, but you have to capture your return code
in a variable named cfstoredproc.StatusCode, such as below:
<cfstoredproc procedure="one_fucntion.getosuser"
returncode="yes" datasource="gcadmin" debug="yes">
<cfprocparam cfsqltype="cf_sql_integer" type="IN"
value="2" >
</cfstoredproc>
<cfoutput>#cfstoredproc.statusCode#</cfoutput>
I would rewrite your PL/SQL SP as a procedure with an OUT
parameter that you could capture in a CFPROCPARAM.
Also, you would only use CFPROCRESULT if you were returning
the results of a query that you had selected into a referrence
cursor in your proc (OPEN out_ref_cursor FOR SELECT...... etc.),
but you would have to contain your procedure in a package and have
a ref cursor type declared globally , etc. Your use of CFPROCRESULT
is not necessary to return a single value from a procedure, only a
CFPROCPARAM of type="out".
Bottom line, as written, what you have isn't really even
close... sorry.
Phil

Similar Messages

  • Storing a Blob into MySql  from a JTextArea

    I'm using Java 1.4.1, MySql 4.0.12, and MyConnector/J 3.06
    I have an application with a JTextArea and I want to put the contents of the JTextArea into the database stored as a Blob Object. The only reason I'm using Blob is because varchar is limited in lenght by 255 characters.
    The problem I am having is actually creating the Blob Object. I get a null pointer exception no matter what I do.(Even when there is text in the JTextArea) Please take a look at my code and please help me out if you can.
    I'm not sure if I'm using the java Blob correctly as it cannot be instantiated and it's an interface not a class.
    Please give me any suggestions including if there is a better way to doing this without using a Blob object. Thanks in advance.
    // create a new Blob Object, must initialize to something
    Blob tempBlob = null;
    // viewOrdData.notes is the JTextArea
    if (viewOrdData.notes.getText().length() > 0) {
    // THIS IS THE LINE WHERE I GET THE NULL POINTER EXCEPTION
    // I tried initial position both 0 and 1
    tempBlob.setBytes(0,viewOrdData.notes.getText().getBytes())
    stmt.executeUpdate(
    "UPDATE WORKORDER "+
    "SET NOTES = "+tempBlob+" "+ // NOTES is of type Blob
    "WHERE WRKID = "+viewOrdData.workOrderID); // primary key

    Now, Storing a Blob into Database from a JTextArea or any text components becomes easy with the SerialBlob class( javax.sql.rowset.serial.SerialBlob - JDK 1.5).
    For eg..
    For Storing a Blob to Database
    pstmt.setBlob(1,new  SerialBlob(jtextArea.getText().getBytes()));For Retrieving a Blob to JTextArea
    SerialBlob sblob = new SerialBlob(rs.getBlob("FieldName"));
    jTextArea.setText(new String(sblob.getBytes(1, (int)sblob.length())));Hope this serves this problem well.
    Regards,
    R.Amirdha Gopal.

  • Informix Stored Procedure Response

    Hi,
    I'm executing a Store Procedure on Informix DB to started a process.
    The Stored Procedure has just one return. But, my Inbound Message Payload has the following structure:
    <?xml version="1.0" encoding="utf-8"?>
    <ns1:MT_WMS_response xmlns:ns1="urn:interfaces:PI:SESI:WMS">
    <Statement_response>
    <response_1>
         <row>
              <(expression)>H2W0000476</(expression)>
         </row>
    </response_1>
    </Statement_response>
    </ns1:MT_WMS_response>
    Because it can´t use "(" as tag definition and getting and Mapping Error.
    Does anyone knows another way to solve this problem?
    Regards,
    Luis Diego

    refer to others with the same problem
    change in the declaration of procedure to return the result set
    ex:
    CREATE FUNCTION Nome_Arquivo ()
    RETURNING CHAR(100) AS arquivo  DEFINE vArq LIKE fs_full.nome_arquivo;;
      select first 1 nome_arquivo INTO vArq
      from fs_full;;
      RETURN vArq;;
    END FUNCTION
    Routine created.
    In RETURNING use "AS" enter field names your date types.
    its work.
    abs

  • Calling a stored procedure runs into an error

    Hello,
    We are testing the Database Adapter.
    In our database we created the following
    - Table tt
    - Package ttpackage, with a procedure with 1 input and 1 output parameter which inserts a record in the tt table.
    (see scripts at bottom of message)
    We created a Database Adapter based upon this Package (Call a stored procedure or function) and register this Database Adapter with the Integration Server.
    When we invoke this Database Adapter and enter the input, we can see in the database that 4 records are created. The Web Service returns after a minute with an error
    How can we solve this problem?
    Regards Leon Smiers
    ERROR
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 0
         at java.util.Vector.get(Vector.java:710)
         at oracle.tip.esb.server.common.wsif.WSIFInvoker.readResponseHeader(Unknown Source)
    SCRIPT
    drop table tt
    drop sequence seq_tt;
    drop package ttpackage;
    create table tt
    (field1 number(10) not null
    ,field2 varchar2(25) not null
    ,status varchar2(1) not null
    ,primary key (field1)
    create sequence seq_tt;
    create or replace package ttpackage is
    procedure insert_tt(
    pi_field2 in tt.field2%type,
    po_status out klacht_data.status%type);
    end;
    show errors
    create or replace package body ttpackage is
    procedure insert_tt(
    pi_field2 in tt.field2%type,
    po_status out klacht_data.status%type) is
    begin
    po_status:='I';
    insert into tt
    (field1, field2,status)
    values(seq_tt.nextval,pi_field2,po_status);
    end insert_tt;
    end;
    show errors
    /

    Hello Dave,
    Thanks for the quick fix.
    I've tested the fix. The 'Array index out of range: 0' disappeared.
    I get, unfortunately, the following error. I already described the steps I take in the first message. Based upon the TTpackage I create a Database adapter, register it with the ESB and invoke the URL from the ESB.
    Regards Leon
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.xml.parser.v2.XMLDOMException: Ongeldige naamruimte http://xmlns.oracle.com/pcbpel/adapter/db/OCOP/TTPACKAGE/INSERT_TT/ voor prefix xmlns
         at oracle.xml.parser.v2.XMLElement.setAttributeNS(XMLElement.java:1015)
         at oracle.tip.esb.utils.DOMUtil.copyContentsTo(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(Unknown Source)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:869)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:460)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    </faultstring><faultactor></faultactor></env:Fault></env:Body></env:Envelope>

  • Writing from Stored Procedure directly into a file...

    Hi guys,
    I would like to write the results of a stored procedure into a file. Indeed, I am calling a Stored Procedure from a script and I would like to write the result of that procedure to a file and not a table.
    Thanks guys,
    Pipoca

    Hi,
    The UTL would be nice, but since I am calling the procedure from a unix script and *I wanted to keep the file in the unix machine* I don't believe this is the solution.UTL_FILE - will refers to a directory - which resides on Server - I Hope your DB is placed on Unix and you script is exeucted from their only. Then obviously your resulted file and source exits on unix machine only.
    HTH
    - Pavan Kumar N
    OCP- Oracle 9i/10g
    http://oracleinternals.blogspot.com

  • Diaplay  Word file stored in blob into a browser using JSP

    Dear All
    I have files stored in oracle table in a blob field.I store the files using forms 10g and webutil. I can upload the files and display them successfully in forms, however when i use JSP to retrieve the files and display them in Internet Explorer, I'm able to display the pdf files, bmp , jpg and video but I'm getting junk characters when I try displaying (word , excel , access or powerpoint files which might contain arabic Characters )
    the code I use to display the files is as follows :
    <%
    try
    Connection conn = null;
    String username=session.getAttribute("username").toString().toUpperCase();
    String password=session.getAttribute("password").toString().toUpperCase();
    String ip = "*****************";
    String sid = "***************";
    Class.forName("oracle.jdbc.driver.OracleDriver");
    conn = DriverManager.getConnection("jdbc:oracle:thin:@"+ip+":1521:"+sid,username,password);
    String par = request.getParameter("LETTER");
    String par1 = request.getParameter("SERIAL");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from TableName where PK1 like '"+par+"'"+" and PK2 like '"+par1+"'" );
    if (rs.next())
    Blob pic = null;
    byte[] blobBytesArray = null;
    OutputStream stream = response.getOutputStream();
    pic = rs.getBlob("BLOBFIELD");
    int len = new Integer( new Long( pic.length()).toString() ).intValue();
    blobBytesArray = pic.getBytes(1,len);
    if (blobBytesArray != null)
    if (blobBytesArray.length > 0 )
    stream.write(blobBytesArray) ;
    catch(Exception e)
    System.out.println("Exception: " + e.getMessage() + "<BR>");
    %>
    can you please guide me of how to display other file types.
    Best Regards.

    Hello,
    Ideally when you store the document put the content-type in a column and set the content type in your JSP. This will indicate to the browser what is the type of file and you should not have any issue with any type.
    Regards
    Tugdual Grall

  • Convert Informix "with resume" feature in stored procedures to Oracle PL/SQL

    I am trying to convert an Informix stored procedure with the "return value with resume"
    feature into Oracle PL/SQL.
    So far, all I have gathered is that I need to use packages and reference cursors.
    What is hazy is that how and when does this value get returned? Is it on the execution of the FETCH statement or do I need to specify a RETURN statement.
    If anybody has any ideas or better yet any
    concrete examples, please email me.
    Thank you.

    This is a small example of the use of ref cursor , for further details see the Oracle documentation
    PL/SQL User's Guide and Reference
    Release 8.1.6
    A77069-01 . The stored procedure converter for informix (downloadable from Oracle Technology Network) does not unfortunately cover this situation.
    Turloch
    create or replace PACKAGE BYROYALTYPkg AS
    TYPE RT1 IS RECORD (
    val MTG_VERSION.VERSION%TYPE
    TYPE RCT1 IS REF CURSOR RETURN RT1;
    PROCEDURE byroyalty(
    RC1 IN OUT BYROYALTYPkg.RCT1);
    END;
    create or replace PACKAGE BODY BYROYALTYPkg AS
    PROCEDURE byroyalty(
    RC1 IN OUT BYROYALTYPkg.RCT1)
    AS
    BEGIN
    OPEN RC1 FOR
    SELECT VERSION FROM MTG_VERSION;
    END byroyalty;
    END;

  • JDBC stored procedure / java.lang.IllegalArgumentException

    Hi,
    I have created a JDBC adapter to access for a Oracle DB and the connection works successfully. I have tested the posting into the DB via xml-format and it works also fine.
    Accordingly i added a stored procedure (SP) into the xml-format and i get following error in the communication channel (in Pi monitoring the message is fine - no error):
    com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request
    in sax parser: Error when executing statement for table/stored proc.
    'em_end_load' (structure 'STATEMENT_StoreProcedure'):
    java.lang.IllegalArgumentException
    SP in DB:
    PROCEDURE em_end_load
        p_1                      IN  VARCHAR2,
        p_2                      IN  VARCHAR2    DEFAULT NULL,
        p_3                      IN  NUMBER,
        p_4                      IN  VARCHAR2    DEFAULT NULL,
        p_time                      IN  DATE        DEFAULT NULL
    AS
    I'm not sure if i have to use an output parameter, because in the description of the SP i read following:
    USAGE
         To compile from the SQL*Plus prompt:
         SQL> start [folder spec]/sp_em_end_load.pls
         To run from the SQL*Plus prompt:
         SQL> exec em_em_end_load
    PARAMETERS
         INPUT
            p_1
            p_2
            p_3
            p_4
          p_5
          p_6
         OUTPUT
            p_error_msg
    I have created in PI the data type for SP as follow:
                             value
    MT_JDBC
      STATEMENT_SP          0..1
         action          required     EXECUTE
         table          0..1          em_end_load
         p_1          1..1          010
           type          optional     VARCHAR
         p2               1..1          main
           type          optional     VARCHAR
         p3               1..1          100
           type          optional     VARCHAR
         p4               1..1          load
           type          optional     VARCHAR
         p5               1..1          26.04.2010
           type          optional     DATE
         p_error_msg     0..1          
           isInput          optional     1
           type          otpional     VARCHAR
    What is wrong with the processing of this SP? Could anyone help me?
    Regards,
    Lutz

    Sorry the explanation of the data type was a little bit misunderstanding:
    data type in PI:
    MT_JDBC
    -STATEMENT_SP           0..1
    --action                required        EXECUTE
    --table                 0..1            em_end_load
    --p_1                   1..1            010
    ---type                 optional        VARCHAR
    --p_2                   1..1            main
    ---type                 optional        VARCHAR
    --p_3                   1..1            100
    ---type                 optional        VARCHAR
    --p_4                   1..1            load
    ---type                 optional        VARCHAR
    --p_time                1..1            26.04.2010
    ---type                 optional        DATE
    --p_error_msg           0..1
    ---isInput              optional        1
    ---type                 optional        VARCHAR
    ...but the names of the parameters are identical - that i have checked several times.

  • Executing Stored Procedure from TOAD: ORA-00900: invalid SQL statement

    Ok…I have ALL the stored procedures converted into Oracle…now, when I go to test them I am getting the vague error of:
    ORA-00900: invalid SQL statement
    I am attempting to execute:
    --EXEC IEXGetAgentSysPerf(to_date('2008/09/01', 'yyyy/mm/dd/'), to_date('2008/09/11', 'yyyy/mm/dd'), 'US HelpDesk');
    EXEC IEXGetAgentSysPerf('9/1/2008', '9/11/2008', 'US HelpDesk');
    (Neither work). These are calling a Stored Procedure with the following header:
         PROCEDURE IEXGetAgentSysPerf (
              v_curparm_IEXGetAgentSysPerf     IN OUT      pkg_IEX.cur_IEXGetAgentSysPerf
              ,v_BDateTime     DATE
              ,v_EDateTime     DATE
              ,v_WorkGroup     VARCHAR2
    The IDE is “TOAD” for Oracle. Thanks in advance.

    Hi,
    This is your procedure
    PROCEDURE IEXGetAgentSysPerf (
    v_curparm_IEXGetAgentSysPerf IN OUT pkg_IEX.cur_IEXGetAgentSysPerf
    ,v_BDateTime DATE
    ,v_EDateTime DATE
    ,v_WorkGroup VARCHAR2
    you are providing the ,v_BDateTime DATE,v_EDateTime DATE and v_WorkGroup
    and how about "v_curparm_IEXGetAgentSysPerf ". So that procedures is returning the error.
    Adding the the earlier post, If you want to test the Stored Procedures... then I say you work on the PL/SQL
    Developer which good for debugging (easy to use...) When compare to TOAD.. :-)
    Test ..it there...
    - Pavan Kumar N

  • How pass progressive in a stored procedure

    Hi,
    I've 3 procedures:
    procedure EXEC_STOR_A;
    procedure EXEC_STOR_B (SERV_IN VARCHAR2, NAME_IN VARCHAR2);
    procedure EXEC_STOR_C (SERV_IN VARCHAR2, NAME_IN VARCHAR2);
    and I've created one stored procedure that run the 3 procedures simultaneously
    CREATE OR REPLACE PROCEDURE EXEC_MORE_PROC
    IS
    ERR_MSG VARCHAR2(300);
    ERR_NUM NUMBER;
    PROG NUMBER;
    BEGIN
    EXEC_STOR_A;
    EXEC_STOR_B ('OC', 'MY_STOR_B'));
    EXEC_STOR_C ('OC', 'MY_STOR_C'));
    EXCEPTION
    WHEN OTHERS THEN
         err_msg:= SUBSTR(SQLERRM, 1, 300);
         err_num:= SQLCODE;
         INSERT INTO REP_MESS (proc_name, err_code, err_msg, err_date)
    VALUES ('EXEC_MORE_PROC', err_num, err_msg, sysdate);
    COMMIT;
    END;
    EXEC_STOR_B and EXEC_STOR_C insert the value NAME_IN in the tables MY_TAB_B, MY_TAB_C and progressive starting from 0:
    CREATE TABLE MY_TAB_B (
    ID VARCHAR2 (12),
    NAME VARCHAR2 (32)
    PROGRESSIVE NUMBER);
    CREATE TABLE MY_TAB_B (
    ID VARCHAR2 (12),
    NAME VARCHAR2 (32)
    PROGRESSIVE NUMBER);
    for example when I execute the proc EXEC_MORE_PROC the first time I get (in MY_TAB_B):
    ID.........NAME........PROGRESSIVE
    1.........MY_STOR_B.........0
    10........MY_STOR_B.........0
    88........MY_STOR_B.........0
    99........MY_STOR_B.........0
    when I execute the proc EXEC_MORE_PROC the second time I get (in MY_TAB_B):
    ID.........NAME........PROGRESSIVE
    1.........MY_STOR_B.........1
    10........MY_STOR_B.........1
    88........MY_STOR_B.........1
    99........MY_STOR_B.........1
    Now I'd like to create my stored procedure, inserting into column NAME the value NAME_IN + progressive:
    for example when I execute the proc EXEC_MORE_PROC the first time I get (in MY_TAB_B):
    ID.........NAME..........PROGRESSIVE
    1.........MY_STOR_B_0.........0
    10........MY_STOR_B_0.........0
    88........MY_STOR_B_0.........0
    99........MY_STOR_B_0.........0
    when I execute the proc EXEC_MORE_PROC the second time I get (in MY_TAB_B):
    ID.........NAME..........PROGRESSIVE
    1.........MY_STOR_B_1.........1
    10........MY_STOR_B_1.........1
    88........MY_STOR_B_1.........1
    99........MY_STOR_B_1.........1
    How can I pass varchar2+number in my stored procedure??
    Thanks in advance!!

    and I've created one stored procedure that run the 3
    procedures simultaneouslyActually, you've create one procedure that runs the three procedures sequentially. If you want parallelism, you would have to do something like spawning three background jobs via DBMS_JOB.
    w I'd like to create my stored procedure, inserting
    into column NAME the value NAME_IN + progressive:
    How can I pass varchar2+number in my stored
    procedure??This looks to be the only question you're asking. The answer would seem to be to add a numeric parameter to the stored procedure(s). If the question is how to concatenate a number to a string, that's just
    <<string>> := <<string>> || to_char(<<number>>)Justin

  • Multiple stored procedure run across clusters

    Hi there,
    Currently we are having a single Oracle 11g instance. All our stored procedures are run on this database either directly from within the database (DBMS_JOB) or called externally from front-end java web apps.
    The question is we now have to cater for scenarios where there will lot more avenues (other java apps) calling the stored procedure and we want to provision for such scenarios without impacting the performance or agreed upon throughput back to the calling application.
    One option I read was about clustering (RAC) and how this can be configured at the database level to transparently cater to a huge volume of stored procedure calls to the database without affecting (requiring changes on the calling entities). So the java front end apps will only refer to a single database but Oracle RAC configured for the database will handle the heavy load scenario in seamless and transparent fashion across the clusters
    We don't want to split the execution of one single stored procedure run into multiple process for performance we have that part covered with optimizing the queries of the stored procedure
    but we want to provision for a scenario where multiple apps can spawn calls to the stored procedures simultaneously and the database is efficient about handling these parallel stored procedure invocations and does not overwhelm under the pressure of large volume of stored procedure run causing degradation of stored procedure runtime/response time.
    Please provide your thoughts.

    If those stored procedures are making DML calls against more-or-less the same data, you will be introduce contention.
    In a single instance (non-RAC) contention is within the SGA (buffer_cache, shared_pool, latches, enqueues). If the application is not scalable within the single instance, you will likely make performance worse when running it in RAC.
    So, you must first evaluate how it works (or would work) in a single instance database -- find out if it scalable merely by adding hardware. If it is scalable but your current hardware is limited, you can consider RAC. If it is not scalable and you have serialisation or contention, performance would be worse in RAC.
    Hemant K Chitale

  • Storing a voice into file using RTP

    Hello every body
    Can I store the voice Conversation which transmitted between two end points?
    Im using AVtransmit and AVReceive for transmitting and Receiving. I want to store the voice in to a file. is it possibe? kindly provide me the code if
    Thanking you in advancly
    Sreenath Kulkarni

    Now, Storing a Blob into Database from a JTextArea or any text components becomes easy with the SerialBlob class( javax.sql.rowset.serial.SerialBlob - JDK 1.5).
    For eg..
    For Storing a Blob to Database
    pstmt.setBlob(1,new  SerialBlob(jtextArea.getText().getBytes()));For Retrieving a Blob to JTextArea
    SerialBlob sblob = new SerialBlob(rs.getBlob("FieldName"));
    jTextArea.setText(new String(sblob.getBytes(1, (int)sblob.length())));Hope this serves this problem well.
    Regards,
    R.Amirdha Gopal.

  • How to Migrate Stored procedure on Sql server 2008 to Oracle Database

    Guys, I need help vey badly as I am new in this field.
    Problem is that, I have to migrate stored procedure on Sql server 2008 to oracle Oracle database:
    Whole scenario--
    1. Sql Server 2008 application on Windows server (source machine)
    2. I have to migrate 70 Stored Procedure
    3. To Oracle Database on Linux machine (Target machine)
    Any method (no problem)
    Please, help me or give me any reference as I don't know which keyword is differ in both database.
    Thanks in advance

    Hi,
      You could the free Oracle SQL*Developer to do this.
    There is information and a download link here -
    Oracle SQL Developer&lt;/title&gt;&lt;meta name=&quot;Title&quot; content=&quot;Oracle SQL Developer&quot;&gt;&lt;meta n…
    and information on using it for migrations here -
    http://www.oracle.com/technetwork/database/migration/index-084442.html
    You could use it in 2 ways -
    1. Go through a migration but just pull the stored procedure code from the file created after you generate the SQL from the SQL*Server database
    2. Use the scratch editor accessed from -
    - Tools - Migration - Scratch Editor
    and paste the SQL*Server stored procedure code into the window and it will convert it to Oracle code. The tool is very good but may have problems if you have very complicated procedures that use SQL*Server specific utilities.
    Regards,
    Mike

  • Using Stored Procedure w/Parameter and adding another parameter via CR

    I have a situation where I am using a SQL Stored Procedure that contains one Date Parameter. 
    I am pulling that Stored Procedure fwd into a Crystal Report, but as soon as I add another Parameter via Crystal Reports (in addition to the Parameter that was pulled fwd from the Stored Procedure) Two parameters prompts now appear for the Stored Procedure Parameter.
    I need to have the Crystal Report display the Stored Procedure Parameter only once.

    I have a Parameter within the SP that is for a Date entry.  So I pass the SP Parameter through the Command to CR.
    Then I have added some other Parameters that I have the users populating but they are only used in formulas and I donu2019t have those in the Select Records.
    Then I add another Parameter that would be for Supplier Selection.  As soon as I add this 4th Parameter for the Supplier Select within the Select Record, is when I then encounter the duplicate display of the SP Parameter.
    The first prompt is a Date field but for some reason is displaying in the Right hand corner SUPNAME (which is my Supplier Name field)  Then the next set of Parameters display is properly showing in the right hand corner all of my actually Parameters.
    Why would the first occurrence be associated with the Supplier Name? 
    I have tried adding a Supplier parameter to the SP itself, but then I am limited to a single entry, it will not allow me to set it to Multiple Values. 
    Any additional suggestions or information would be greatly appreciated.

  • ERROR WHILE INSERTING BLOBS AS PARAMETERS OF EXISTING STORED PROCEDURE

    I have 2 simple tables to keep large application data (as XMLDOCUMENT in one table and BLOB in another):
    SQL> desc bindata_tbl;
    Name Null? Type
    BDATA_ID NOT NULL NUMBER(10)
    BDATA NOT NULL BLOB
    SQL> desc metadata_tbl;
    Name Null? Type
    MDATA_ID NOT NULL NUMBER(10)
    MDATA NOT NULL SYS.XMLTYPE
    and stored preocedure to input new data into those tables:
    "SP_TEST_BIN_META_DATA"
    i_MetaData in METADATA_TBL.MDATA%TYPE,
    i_BinData in BINDATA_TBL.BDATA%TYPE
    as
    begin
    if i_MetaData is not null then
    insert into METADATA_TBL (MDATA_ID, MDATA)
    values (METADATA_SEQ.nextval, i_MetaData);
    end if;
    if i_BinData is not null then
    insert into BINDATA_TBL (BDATA_ID, BDATA)
    values (BINDATA_SEQ.nextval, i_BinData);
    end if;
    COMMIT;
    -- Handle exceptions
    EXCEPTION
    WHEN OTHERS THEN
    ROLLBACK;
    RAISE;
    end;
    I communicate with database from .Net application using "Oracle.DataAccess 10.1.0.200 (Runtime version v1.0.3705)" component.
    Following procesure is a [simplified] examlple of the code I use, which demonstrates the errors while inserting XMLDOCUMENT and BLOB values simultaneously.
    In my application those should be quite big objects (~200 K XML and ~5-25M binary image data), but following sample keeps failing even with very small-sized objects:
    Line Number
    1          private void PureTest()
    2          {
    3               OracleConnection conn = null;
    4               OracleTransaction tx = null;
    5               OracleCommand command = null;
    6
    7               try
    8               {
    9                    // Open connection
    10                    string strConn = "Data Source=AthenaWf; User ID=AthenaWf; Password=Poseidon";
    11                    conn = new OracleConnection( strConn );
    12                    conn.Open();
    13
    14                    // Begin transaction (not sure if really needed)
    15                    tx = conn.BeginTransaction();
    16
    17                    // Create command
    18                    string strSql = "SP_TEST_BIN_META_DATA";
    19                    command = new OracleCommand();
    20                    command.Connection = conn;
    21                    command.CommandText = strSql;
    22                    command.CommandType = CommandType.StoredProcedure;
    23
    24                    // Create parameters
    25                    // 1) XmlType parameter
    26                    string strXml = "<?xml version=\"1.0\"?><configuration testValue=\"123456789\"/>";
    27                    XmlDocument xmlDoc = new XmlDocument();
    28                    xmlDoc.LoadXml( strXml );
    29                    OracleXmlType oraXml = new OracleXmlType( conn, xmlDoc );
    30                    //oraXml = null;
    31                    //
    32                    OracleParameter xmlPrm = new OracleParameter();
    33                    xmlPrm.ParameterName = "i_MetaData";
    34                    xmlPrm.Direction = ParameterDirection.Input;
    35                    xmlPrm.OracleDbType = OracleDbType.XmlType;
    36                    xmlPrm.Value = oraXml;
    37                    command.Parameters.Add( xmlPrm );
    38
    39                    // 2) Blob type
    40                    byte[] buf = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    41                    OracleBlob oraBlob = new OracleBlob( conn, true );
    42                    //oraBlob.Write( buf, 0, buf.Length );
    43                    oraBlob = null;
    44                    //
    45                    OracleParameter blobPrm = new OracleParameter();
    46                    blobPrm.ParameterName = "i_BinData";
    47                    blobPrm.Direction = ParameterDirection.Input;
    48                    blobPrm.OracleDbType = OracleDbType.Blob;
    49                    blobPrm.Value = oraBlob;
    50                    command.Parameters.Add( blobPrm );
    51
    52
    53                    // Execute command finally
    54                    command.ExecuteNonQuery();
    55                    tx.Commit();
    56               }
    57               catch( Exception ex )
    58               {
    59                    // Clean-up
    60                    if( command != null )
    61                    {
    62                         command.Dispose();
    63                    }
    64                    if( tx != null )
    65                    {
    66                         tx.Dispose();
    67                    }
    68                    if( conn != null )
    69                    {
    70                         conn.Dispose();
    71                    }
    72
    73                    // Display error message
    74                    MessageBox.Show( ex.Message, "Error" );
    75               }
    76          }
    If I try insert only XMLDOCUMENT object (lines 30, 42 are commented out, 43 IS NOT) - everything is OK.
    If I try to insert only BLOB object (lines 30, 42 are NOT COMMENTED OUT, line 43 is commented out) - everything is OK again.
    If I try to insert them both having some values (lines 30, 43 are commented out, 42 is not commented out) - it fails right on "command.ExecuteNonQuery();" (line 54)
    with the following exception:
    "ORA-21500: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%]".
    Even when I nullify oraBlob before assigning it to OracleParameter value (line 30 is commented out, line 42 and 43 are not) I have the same exception.
    XMLDOCUMENT and DLOB data logically are very coupled objects (in my application), so I really want to insert them simultaneously in one stored procedure in transactional way.
    Is it bug of drivers, server, .net environment, or I miss something in implementation?
    PS. In some articles on Oracle web and in MSDN site I found a mention about necessity of wrapping all write/update operations in a transaction, while working with temporary LOBs. I use it here, but it does not look like changing anything.

    Hello,
    I tested your code with the 10.1.0.4.0 ODP and 10.1.0.4.0 Client and it worked fine.
    Can you please apply the 10.1.0.4.0 patches for both ODP and client to see if this resolves the issue for you.
    Here is the output from the same execution of the ODP application you provided as a testcase. These rows were inserted at the same time when I executed the application and passed the data as parameters to the SP you provided.
    Results of Testing with 10.1.0.4.0
    ==========================
    SQL> select count(*) from BINDATA_TBL
    2 ;
    COUNT(*)
    1
    SQL> select count(*) from METADATA_TBL;
    COUNT(*)
    1
    SQL> select dbms_lob.getlength(bdata) from BINDATA_TBL;
    DBMS_LOB.GETLENGTH(BDATA)
    10
    SQL> select mdata from METADATA_TBL;
    MDATA
    <?xml version="1.0"?><configuration testValue="123456789" />

Maybe you are looking for

  • Software update September 9, 2014...photos in text messaging take forever to download

    Ever since the update a couple of weeks ago, any time someone sends me a picture in a text message, it takes hours before it downloads to my phone.  I can see that it's there, it just won't come in fully for hours.  What gives?

  • REP-0118 Unable to create a temporary file in "Windows 7 "

    We are using Report Builder Version 6.0.8.24.0 and Windows7 32 bit operating system, here While Running a Report through form i am getting this below error. REP-0118 Unable to create a temporary file* But while running the same report in a windows 98

  • Workflow not getting triggered from Action definition in CRMD_ORDER

    Hello Experts, I have created a workflow which should send mail to partner team in a Change Request.This workflow should be triggered when a particular Zaction is performed on the CR.Zaction is created properly and my workflow is also assigned to it.

  • Referencing columns of a subselect query?

    Hello, I have the next query select columnA1, columnA2 from tableA where columnA1in (select columnB1 from tableB); TableB has a column (i.e. columnB2) that it has appear in the results of the select. How can I reference to this column in the query. I

  • Cflock and iText

    Developers, I'm using CFMX 7 with iText. I have a form in which users can select multiple pdf documents via checkboxes. After selecting a number of checkboxes, they can either immediately hit the Submit button to merge (using iText) all selected docu