StringIndexOutOfBoundsException using ARRAY data type

Hi all.
JDK 1.5.0_03, Oracle 9.2.0.4, 9i thin drivers.
I'm trying to use the ARRAY data type to submit a large amount of data to a stored procedure. Unfortunatley I'm getting an error when using the oracleCAllableStatement.setArray method. I've successfully set up my types in the database, and I can create my StructDescriptor and ArrayDescriptor objects but that's as far as I get.
Here's my code:
connection = ConnectionManager.getRawConnection(DatabaseProperties.CSA_DB);
connection.setAutoCommit(false);
ARRAY array = getDatabaseArray(timeSeriesList, date, connection);
String result = new String();
statement = (OracleCallableStatement)connection.prepareCall("{call DATA_LOAD.ARCHIVE_TIMESERIES(?, ?)");
statement.setARRAY(1, array);
statement.registerOutParameter(2, OracleTypes.VARCHAR, result);
statement.execute();
LOG.info(result);
connection.commit();
The line highlighted is where it fails. The exception is below. Unfortunatley its a Java exception rather than a Oracle one so not much help there.
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 40
     at java.lang.String.charAt(Unknown Source)
     at oracle.jdbc.driver.OracleSql.handleODBC(OracleSql.java:123)
     at oracle.jdbc.driver.OracleSql.parse(OracleSql.java:69)
     at oracle.jdbc.driver.OracleConnection.nativeSQL(OracleConnection.java:1181)
     at oracle.jdbc.driver.OracleStatement.expandSqlEscapes(OracleStatement.java:6412)
     at oracle.jdbc.driver.OracleStatement.parseSqlKind(OracleStatement.java:6401)
     at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:152)
     at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableStatement.java:77)
     at oracle.jdbc.driver.OracleCallableStatement.<init>(OracleCallableStatement.java:48)
     at oracle.jdbc.driver.OracleConnection.privatePrepareCall(OracleConnection.java:1134)
     at oracle.jdbc.driver.OracleConnection.prepareCall(OracleConnection.java:988)
     at com.db.csa.systems.csa.timeseries.DataArchivedTimeSeriesProvider.archiveTimeseriesForDate(DataArchivedTimeSeriesProvider.java:46)
     at com.db.csa.experiments.TimeseriesArchiver.main(TimeseriesArchiver.java:26)
I'm now completely stuck as short of decompiling the class that's throwing the exception I have no idea what's going on.
Anyone got any ideas?
Thanks, Rob
Message was edited by:
user470390

Hi,
Shouldn't:
statement = (OracleCallableStatement)connection.prepareCall("{call DATA_LOAD.ARCHIVE_TIMESERIES(?, ?)");be this:
statement = (OracleCallableStatement)connection.prepareCall("{call DATA_LOAD.ARCHIVE_TIMESERIES(?, ?)}");i.e. have a closing brace?
- Mark

Similar Messages

  • Using CLOB data type - Pros and Cons

    Dear Gurus,
    We are designing a database that will be receiving comments from external data source. These comments are stored as CLOB in the external database. We found that only 1% of incoming data will be larger than 4000 characters and are now evaluating the Pros and Cons of storing only 4000 characters of incoming comments in VARCHAR2 data type or using CLOB data type.
    Some of the concerns brought up during discussion were:
    - having to store CLOBs in separate tablespace;
    - applications, such Toad require changing defaults settings to display CLOBs in the grid. Default value is not to display them;
    - applications that build web page with CLOBs will be struggling to fit 18 thousand chararcters of which 17 thousand are blank lines;
    - cashing CLOBs in memory will consume big chunk of data buffers which will affect performance;
    - to manipulate CLOBs you need PL/SQL anonymous block or procedure;
    - bind variables cannot be assigned CLOB value;
    - dynamic SQL cannot use CLOBs;
    - temp tables don't work very well with CLOBs;
    - fuzzy logic search on CLOBs is ineffective;
    - not all ODBC drivers support Oracle CLOBs
    - UNION, MINUS, INTERSECT don't work with CLOBs
    I have not delt with CLOB data type in the past, so I am hoping to hear from you of any possible issues/hastles we may encounter?

    848428 wrote:
    Dear Gurus,
    We are designing a database that will be receiving comments from external data source. These comments are stored as CLOB in the external database. We found that only 1% of incoming data will be larger than 4000 characters and are now evaluating the Pros and Cons of storing only 4000 characters of incoming comments in VARCHAR2 data type or using CLOB data type.
    Some of the concerns brought up during discussion were:
    - having to store CLOBs in separate tablespace;They can be stored inline too. Depends on requirements.
    - applications, such Toad require changing defaults settings to display CLOBs in the grid. Default value is not to display them;Toad is a developer tool so that shouldn't matter. What should matter is how you display the data to end users etc. but that will depend on the interface. Some can handle CLOBs and others not. Again, it depends on the requirements.
    - applications that build web page with CLOBs will be struggling to fit 18 thousand chararcters of which 17 thousand are blank lines;Why would they struggle? 18,000 characters is only around 18k in file size, that's not that big to a web page.
    - cashing CLOBs in memory will consume big chunk of data buffers which will affect performance;Who's caching them in memory? What are you planning on doing with these CLOBs? There's no real reason they should impact performance any more than anything else, but it depends on your requirements as to how you plan to use them.
    - to manipulate CLOBs you need PL/SQL anonymous block or procedure;You can manipulate CLOBs in SQL too, using the DBMS_LOB package.
    - bind variables cannot be assigned CLOB value;Are you sure?
    - dynamic SQL cannot use CLOBs;Yes it can. 11g supports CLOBs for EXECUTE IMMEDIATE statements and pre 11g you can use the DBMS_SQL package with CLOB's split into a VARCHAR2S structure.
    - temp tables don't work very well with CLOBs;What do you mean "don't work well"?
    - fuzzy logic search on CLOBs is ineffective;Seems like you're pulling information from various sources without context. Again, it depends on your requirements as to how you are going to use the CLOB's
    - not all ODBC drivers support Oracle CLOBs not all, but there are some. Again, it depends what you want to achieve.
    - UNION, MINUS, INTERSECT don't work with CLOBsTrue.
    I have not delt with CLOB data type in the past, so I am hoping to hear from you of any possible issues/hastles we may encounter?You may have more hassle if you "need" to accept more than 4000 characters and you are splitting it into seperate columns or rows, when a CLOB would do it easily.
    It seems as though you are trying to find all the negative aspects of CLOBs and ignoring all the positive aspects, and also ignoring the negative aspects of not using CLOB's.
    Without context you're assumptions are just that, assumptions, so nobody can tell you if it will be right or wrong to use them. CLOB's do have their uses, just as XMLTYPE's have their uses etc. If you're using them for the right reasons then great, but if you're ignoring them for the wrong reasons then you'll suffer.

  • Array data type in SQL server

    Hi there,
    I have stored procedure which does have array data type. recently we have migrated oracle to SQL server
    but this array datatype doesn't support in SQL server.
    How can we rewrite this stored procedure to make it work exactly same as Oracle SP.
    Can you please help on this.
    ALTER PROCEDURE [dbo].[New1]
    @i_ID dbo.t_IdArray READONLY ,
    @i_ArraySize INT ,
    @SWP_Ret_Value FLOAT = NULL OUTPUT
    AS
    Begin
    UPDATE fmm.SITES
    SET DISPLAY_ORDER = id.t_RowNum
    FROM @i_ID id
    JOIN dbo.SITE1 s
    on s.SITE_ID = id.t_ID
    end
    Thanks for your help.

    Hi Latheesh,
    I have tried your bit except configure the SQLCommand and TVP parameter I don't where I need to do this bit.
    Without that bit I have tried your code it was throwing an error like this
    Operand type clash: int is incompatible with t_IdArray
    Can you please have a look .
    Thanks,
    RK
    can you show the definition for  dbo.t_IdArray
    what does it contain?
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Using non_build_in data type in web service

    Hi everybody,
    Can anyone tell me the process of using a data type which is not supported in java web services(data types such as "DATE",...)???
    Any examples can be helpful.
    Thanks in advance

    Hi everybody,
    Can anyone tell me the process of using a data type which is not supported in java web services(data types such as "DATE",...)???
    Any examples can be helpful.
    Thanks in advance

  • Using Complex Data Types in Import JavaBean Model

    Hi,
    I have searched and read forums and weblogs related to import javabean model.
    But I am not clear about how to use complex data types like ArrayList, Collection etc in my java bean.
    If I use these complex datatypes in my bean, when creating model in WDF it displays the Complex data elements in Model Relation. I dont know how to use this model relation in my WD project.
    Anyone please explain the<b> step by step solution</b> about using complex data type(used in Bean) in WD Project.
    Thanks,
    Krishna Kumar

    Hi Krishna,
    Valery`s blog contains sample code ( http://www.jroller.com/resources/s/silaev/Employees.zip )
    Another blogs from this area:
    /people/anilkumar.vippagunta2/blog/2005/09/02/java-bean-model-importer-in-web-dynpro
    /people/valery.silaev/blog/2005/08/30/javabean-model-import-when-it-really-works
    And forum topics:
    Import JavaBean Model
    Problem Importing JavaBean Model in NetWeaver Developer Studio
    Issue on "Import JavaBean Model"
    import  JavaBean Model: no executable Methods?
    JavaBeans Model Import
    POLL : JavaBean Model Importer
    JavaBean-Model
    Invalid Class - Javabean not available for import
    WebDynpro Using JavaBean Model ->Please Help
    Best regards, Maksim Rashchynski.

  • How to use same Data Type and Length for two fields

    How to use same data type and length for two fields when using 'FOR ALL ENTRIES IN' in a select statement? For instance the select queries are :
    SELECT bukrs gjahr belnr lifnr budat bldat zlspr dmbtr waers shkzg
    FROM bsik
    INTO TABLE it_bsik
    WHERE bukrs = p_bukrs
    AND lifnr IN s_lifnr.
    IF it_bsik IS NOT INITIAL.
    SELECT belnr gjahr awkey awtyp
    FROM bkpf
    INTO TABLE it_bkpf
    FOR ALL ENTRIES IN it_bsik
    WHERE belnr = it_bsik-belnr
    AND gjahr = it_bsik-gjahr.
    IF it_bkpf IS NOT INITIAL.
    SELECT belnr gjahr lifnr xblnr
    FROM rbkp
    INTO TABLE it_rbkp
    FOR ALL ENTRIES IN it_bkpf
    WHERE belnr = it_bkpf-awkey+0(10)
    AND gjahr = it_bkpf-awkey+10(4).
    ENDIF.
    ENDIF.
    Here it gives an error in the 3rd select query that 'When you use the addition "FOR ALL ENTRIES IN itab", the fields "GJAHR" and "IT_BKPF2-AWKEY+10(4)" must have the same type and the same length.'
    Kindly clarify.

    Hi Saurabh,
    Please see the example code that I have developed for you. It will help you solve the problem.
    REPORT ZTEST_3 .
    tables : BKPF.
    data : begin of it_bkpf occurs 1,
             belnr type RE_BELNR,
             awkey type awkey,
             awtyp type awtyp,
             gjahr type GJAHR,
           end of it_bkpf.
    data : begin of it_bkpf1 occurs 1,
             belnr type RE_BELNR,
             awkey type gjahr,              " change the data type
             awtyp type awtyp,
             gjahr type GJAHR,
           end of it_bkpf1.
    data : begin of it_rbkp occurs 1,
             belnr type BELNR_D,
             gjahr type gjahr,
             lifnr type LIFRE,
             xblnr type XBLNR,
           end of it_rbkp.
    select belnr
           awkey
           awtyp
           gjahr
           from bkpf
           into table it_bkpf
           where BUKRS = 'TELH'.
    loop at it_bkpf.
    it_bkpf1-belnr = it_bkpf-belnr.
    it_bkpf1-awkey = it_bkpf-awkey+10(4).           "Here only append the required length.
    it_bkpf1-awtyp = it_bkpf-awtyp.
    it_bkpf1-gjahr = it_bkpf-gjahr.
    append it_bkpf1.
    clear it_bkpf1.
    endloop.
    select  belnr
            gjahr
            lifnr
            xblnr
            from RBKP
            into table it_rbkp
            for all entries in it_bkpf1
            where belnr = it_bkpf1-belnr
    This is just an example. Change the fields according to your requirement.
    Regards
    Abhii
    Edited by: Abhii on Mar 9, 2011 9:08 AM

  • Using java date type

    Hi,
    Is possible to use one data type defined in java in one forms.? How do yo define this type in forms. We need insert data in one vector java(defined in java).
    Thank all

    for example:
    javax.jcr.Session session = resourceResolver.adaptTo(Session.class);
    String parentPath = "/content/blah"; // or whatever your parent path is
    String nodetype = "nt:unstructured"; // or whatever other node type you require
    Calendar calendar = Calendar.getInstance(); // or whatever date
    Node node = session.getNode(parentPath).addNode("nodename", nodetype);
    node.setProperty("myproperty", calendar);
    session.save();

  • How to use array or type in "IN" criteria

    Hi all,
    anybody knows how to use group of same datatype data ( array or type ) in SQL statement
    For example
    ls_dept[1] = 'abc';
    ls_dept[2] = 'xyz';
    ls_dept[10] = 'ppr';
    i want to use this group of data in "IN" criteria like
    Select * from department where dept in ('abc','xyz'.....''ppr');
    if anybody know how to use please reply me as soon as possible.
    Thanks,

    I hope you are not suggesting concatenating literals from a web front-end application ;) Is it not what he was saying.. he is getting user input info from an application.. if the user sends multiple values.. he has to build a string with concatenating literals..
    correct me if I am wrong.

  • Call library function node with array of clusters using array data pointer

    Hello all.
    I am writing a LabVIEW wrapper for an existing DLL function.
    The function has, as one of its parameters, an array of structs.  The struct is very simple, containing two integers.  I am using the call library function node to access it.
    In Labview I created an array of clusters, where the cluster has two 32-bit integers as its members.  So far, so good.
    Now I have to pass this in to the Call Library Function Node.  Here I am running into trouble.
    I have used The topic in LAVA and The topic in the knowledge base as my primary sources of information, though I have read a bunch of forum topics on the subject too.
    I do understand that I could write a new function which takes as a parameter a struct with the size as the first member and an array as the second, and I might just do this and have it call the regular function, but I was hoping to do it more simply.
    According to the C file which LabVIEW generates for me from the CLFN when I choose "Adapt to Type" and "Array Data Pointer", the prototype it is expecting is:
    int32_t myFunc(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, void data[], int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex);
    And the prototype of the function in my DLL is
    int borland_dll myFunc(DWORD handle, usint channel,
    int FIFOnumber, struct mStruct *data, int numWords, int *actualLoaded, int *actualStartIndex);
    This looks like a match to me, but it doesn't work (I get garbage in data).  From the topic in LAVA referenced above, I understood that it would work.  It does not.
    If I cast data to the pointer-to-pointer I get when I generate c code by wiring my struct to a CIN and generating, then I seem to get what I expect. But this seems to work when I choose "pointers to handles" too, and I would expect array data pointer to give a different result.
    Is there any way to get this to work directly, or will I have to create a wrapper?  (I am currently using LabVIEW 2011, but we have customers using 2009 and 2012, if not other versions as well).
    Thank you.
    Batya
    Solved!
    Go to Solution.

    OK, here is more detailed information.
    I have attached the VI.
    This is the code from the  "C" file created by right-clicking the CLN and creating a "C" file. 
    When the parameter in the CLN is set to "array data pointer":
    /* Call Library source file */
    #include "extcode.h"
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, void data[], int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex);
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, void data[], int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex)
    /* Insert code here */
     When the parameter is "pointers to handles":
    /* Call Library source file */
    #include "extcode.h"
    /* lv_prolog.h and lv_epilog.h set up the correct alignment for LabVIEW data. */
    #include "lv_prolog.h"
    /* Typedefs */
    typedef struct {
    int32_t control;
    int32_t data;
    } TD2;
    typedef struct {
    int32_t dimSize;
    TD2 data[1];
    } TD1;
    typedef TD1 **TD1Hdl;
    #include "lv_epilog.h"
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, TD1Hdl *data, int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex);
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, TD1Hdl *data, int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex)
    /* Insert code here */
     When the parameter is set to "handles by value":
    /* Call Library source file */
    #include "extcode.h"
    /* lv_prolog.h and lv_epilog.h set up the correct alignment for LabVIEW data. */
    #include "lv_prolog.h"
    /* Typedefs */
    typedef struct {
    int32_t control;
    int32_t data;
    } TD2;
    typedef struct {
    int32_t dimSize;
    TD2 data[1];
    } TD1;
    typedef TD1 **TD1Hdl;
    #include "lv_epilog.h"
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, TD1Hdl *data, int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex);
    int32_t Load_Transmit_FIFO_RTx(uint32_t handle, uint16_t channel,
    int32_t FIFOnumber, TD1Hdl *data, int32_t numWords, int32_t *actualLoaded,
    int32_t *actualStartIndex)
    /* Insert code here */
    As to the DLL function, it is a bit more complicated than I explained above, in the current case.  My VI calls the function by this name in one DLL, and that DLL loads a DLL and calls a function (with the same name) in the second DLL, which does the work. (Thanks Rolfk, for helping me with that one some time back!)
    Here is the code in the first ("dispatcher") DLL:
    int borland_dll Load_Transmit_FIFO_RTx(DWORD handle, usint channel, int FIFOnumber, struct FIFO_DATA_CONTROL *data, int numWords, int *actualLoaded, int *actualStartIndex)
    t_DispatchTable *pDispatchTable = (t_DispatchTable *) handle;
    int retStat = 0;
    retStat = mCheckDispatchTable(pDispatchTable);
    if (retStat < 0)
    return retStat;
    if (pDispatchTable->pLoad_Transmit_FIFO_RTx == NULL)
    return edispatchercantfindfunction;
    return pDispatchTable->pLoad_Transmit_FIFO_RTx(pDispatchT​able->handlertx, channel, FIFOnumber, data, numWords, actualLoaded, actualStartIndex);
    borland_dll is just "__declspec(dllexport)"
    The current code in the DLL that does the work is:
    // TEMP
    typedef struct {
    int control;
    int data;
    } TD2;
    typedef struct {
    int dimSize;
    TD2 data[1];
    } TD1;
    typedef TD1 **TD1Hdl;
    // END TEMP
    int borland_dll Load_Transmit_FIFO_RTx(int handlertx, usint channel, int FIFOnumber, struct FIFO_DATA_CONTROL *data, int numWords, int *actualLoaded, int *actualStartIndex){
    struct TRANSMIT_FIFO *ptxFIFO; //pointer to transmit FIFO structure
    usint *pFIFOlist; //pointer to array of FIFO pointers to FIFO structures
    int FIFOentry, numLoaded;
    usint *lclData;
    usint nextEntryToTransmit;
    // TEMP
    FILE *pFile;
    int i;
    TD1** ppTD = (TD1**) data;
    TD1 *pTD = *ppTD;
    pFile = fopen("LoadFIFOLog.txt", "w");
    fprintf(pFile, "Starting Load FIFO with %d data words, data pointer 0x%x, with the following data&colon; \n", numWords, data);
    for (i = 0; i < numWords; i++) {
    fprintf(pFile, "%d: control--0x%x, data--0x%x \n", i, data[i].control, data[i].data);
    fflush(pFile);
    fprintf(pFile, "OK, using CIN generated structures: dimSize %d, with the following data&colon; \n", pTD->dimSize);
    for (i = 0; i < numWords; i++) {
    fprintf(pFile, "%d: control--0x%x, data--0x%x \n", i, pTD->data[i].control, pTD->data[i].data);
    fflush(pFile);
    // END TEMP
    if ((handlertx) <0 || (handlertx >= NUMCARDS)) return ebadhandle;
    if (cardrtx[handlertx].allocated != 1) return ebadhandle;
    pFIFOlist = (usint *) (cardrtx[handlertx].segaddr + cardrtx[handlertx].glob->dpchn[channel].tr_stk_ptr​);
    pFIFOlist += FIFOnumber;
    ptxFIFO = (struct TRANSMIT_FIFO *)(cardrtx[handlertx].segaddr + *pFIFOlist);
    //use local copy of ptxFIFO->nextEntryToTransmit to simplify algorithm
    nextEntryToTransmit = ptxFIFO->nextEntryToTransmit;
    //on entering this routine nextEntryToLoad is set to the entry following the last entry loaded
    //this is what we need to load now unless it's at the end of the FIFO in which case we need to wrap around
    if ( ptxFIFO->nextEntryToLoad >= ptxFIFO->numEntries)
    *actualStartIndex = 0;
    else
    *actualStartIndex = ptxFIFO->nextEntryToLoad;
    //if nextEntryToLoad points to the last entry in the FIFO and nextEntryToTransmit points to the first, the FIFO is full
    //also if nextEntryToLoad == nextEntryToTransmit the FIFO is full and we exit without loading anything
    if (( (( ptxFIFO->nextEntryToLoad >= ptxFIFO->numEntries) && (nextEntryToTransmit == 0)) ||
    ( ptxFIFO->nextEntryToLoad == nextEntryToTransmit)) && (ptxFIFO->nextEntryToLoad != INITIAL_ENTRY)){
    *actualLoaded = 0; //FIFO is full already, we can't add anything
    return 0; //this is not a failure, we just have nothing to do, this is indicated in actualLoaded
    numLoaded = 0;
    lclData = (usint *)data; //must use 16 bit writes to the module
    //conditions are dealt with inside the for loop rather than in the for statement itself
    for (FIFOentry = *actualStartIndex; ; FIFOentry++) {
    //if we reached the end of the FIFO
    //if the module is about to transmit the first element of the FIFO, the FIFO is full and we're done
    //OR if the module is about to transmit the element we're about to fill in, we're done - the
    //exception is if this is the first element we're filling in which means the FIFO is empty
    if ((( FIFOentry >= ptxFIFO->numEntries) && (nextEntryToTransmit == 0)) ||
    ((FIFOentry == nextEntryToTransmit) && (FIFOentry != *actualStartIndex) )){
    *actualLoaded = numLoaded;
    //set nextEntryToLoad to the end of the FIFO, we'll set it to the beginning next time
    //this allows us to distinguish between full and empty: nextEntryToLoad == nextEntryToTransmit means empty
    ptxFIFO->nextEntryToLoad = FIFOentry;
    return 0;
    //we reached the end but can continue loading from the top of the FIFO
    if ( FIFOentry >= ptxFIFO->numEntries)
    FIFOentry = 0;
    //load the control word
    ptxFIFO->FifoData[FIFOentry * 3] = *lclData++;
    //skip the high of the control word, the module only has a 16 bit field for control
    lclData++;
    //now put in the data
    ptxFIFO->FifoData[(FIFOentry * 3) + 2] = *lclData++;
    ptxFIFO->FifoData[(FIFOentry * 3) + 1] = *lclData++;
    numLoaded++;
    //we're done because we loaded everything the user asked for
    if (numLoaded >= numWords) {
    *actualLoaded = numLoaded;
    ptxFIFO->nextEntryToLoad = FIFOentry+1;
    return 0;
    //if we reached here, we're done because the FIFO is full
    *actualLoaded = numLoaded;
    ptxFIFO->nextEntryToLoad = FIFOentry;
    fclose (pFile);
    return 0;
     As you can see, I added a temporary diagnostic with the structures that were created in the "Handles by value" case, and print out the data.  I see what is expected, whichever of the options I pick in the CLN!  
    I understood (from the information in the two links I mentioned in my original post, and from the name of the option itself) that "array data pointer" should pass the array of data itself, without the dimSize field.  But that does not seem to be what is happening.
    Batya
    Attachments:
    ExcM4k Load Transmit FIFO.vi ‏15 KB

  • Using Long Data type in the Page

    Hi ,
    I have a page (in multiple page creation form ) which is suppose to contain only the NOTES field of the entity being created . The Notes field is defined as LONG data type in the table.
    Two Doubts.
    1. As of now in Jdev , u only have Varchar2 data type when assigning to any messageText layout item. What should be the max value set for Max Lenght of this field on the form . I suppose its 32k+ ,since its Long Field .
    Anybody has used Long notes field before ??
    2. This page has only one item on it , ie Notes ,which i have defined as messageRichText as style. I have been trying to resize this item ,so that it stretches out on entire page . But it just doesnt resizes .. any idea ..below is my PG.xml code
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <!-- dbdrv: exec java oracle/jrad/tools/xml/importer XMLImporter.class java &phase=dat+24 checkfile:~PROD:~PATH:~FILE &fullpath:~PROD:~PATH:~FILE -username &un_apps -password &pw_apps -dbconnection &jdbc_db_addr -userId "1" -rootPackage /oracle/apps/~PROD -rootdir &fullpath:~PROD:mds:directory -->
    <page xmlns:jrad="http://xmlns.oracle.com/jrad" xmlns:oa="http://xmlns.oracle.com/oa" xmlns:ui="http://xmlns.oracle.com/uix/ui" version="9.0.3.8.13_1426" xml:lang="en-US" xmlns:user="http://xmlns.oracle.com/jrad/user" xmlns="http://xmlns.oracle.com/jrad" file-version="$Header$">
    <content>
    <oa:pageLayout id="NotesMainR" amDefName="oracle.apps.xxi.pro.server.ProAM" windowTitle="Pro Notes" controllerClass="oracle.apps.xxi.pro.webui.ProNotesCO">
    <ui:corporateBranding>
    <oa:image id="corporateBrandingImage" source="/OA_MEDIA/FNDSSCORP.gif"/>
    </ui:corporateBranding>
    <ui:contents>
    <oa:messageComponentLayout id="ProInfoR" extends="/oracle/apps/xxi/pro/webui/ProInfoRN"/>
    <oa:pageButtonBar id="PgButton">
    <ui:contents>
    <oa:submitButton id="Back" use="/oracle/apps/fnd/attributesets/Buttons/Back" unvalidated="true" serverUnvalidated="false"/>
    <oa:submitButton id="Save" use="/oracle/apps/fnd/attributesets/Buttons/Save"/>
    <oa:submitButton id="Continue" use="/oracle/apps/fnd/attributesets/Buttons/Continue"/>
    </ui:contents>
    </oa:pageButtonBar>
    <oa:tableLayout id="region3" hAlign="center">
    <ui:contents>
    <oa:rowLayout id="region4" hAlign="left" vAlign="top" width="100%">
    <ui:contents>
    <oa:cellFormat id="region5" height="100%" width="100%" hAlign="left" columnSpan="1" vAlign="top">
    <ui:contents>
    <oa:header id="region6" text="Notes In Table Layout">
    <ui:contents>
    <oa:messageRichTextEditor id="ProNotesI" maximumLength="20000" viewName="CustomerPOVO" viewAttr="ProNotes" fontBar="true" alignmentGroup="true" tipType="shortTip" prompt="Pro Notes" richTextModeDisplayHeight="100%" richTextModeDisplayLength="100%"/>
    </ui:contents>
    </oa:header>
    </ui:contents>
    </oa:cellFormat>
    </ui:contents>
    </oa:rowLayout>
    </ui:contents>
    </oa:tableLayout>
    </ui:contents>
    </oa:pageLayout>
    </content>
    </page>
    any idea??
    thanks

    Hi Padma,
    Thanks for reply !!
    The width is still pain point for me ,as i am unable to increase its width .
    I tried increasing the width of the table to 100%, however ,it still doesn work .
    Any pointers ??
    If you have used this widget before , could you assist me with any sample code u hv ??
    I would really appreciate it
    thanks

  • Problem to get ResultSet when it is used a Date type in the query condition

    hello ,
    I having a bit of nightmare getting a ResultSet how result of one simple Query for a table when the condition WHERE involve a Date type.
    To change the String value in a date to use in the query condition, I tried both:
    String strDate = "dd/mm/yyyy";
    (1.) java.sql.Date sqlDate = new java.sql.Date(strDate.getTime() )
    (2.) SimpleDateFormat formatter = new SimpleDateFormat(strDate) ; sqlDate = formatter.parse(strDate);
    and finally I use this code to get the ResultSet:
    sql = "SELECT * FROM myTable Where (idCli = " + cd_Cli + " And dateReg = " + sqlDate + ")";
    statement = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    resultSet = statement.executeQuery(sql);
    boolean ok = resultSet.last();
    totNumberOfRegistration = resultSet.getRow();
    But In both the cases I get a empty resultSet.
    I shoul like if someone would look my code to say me where it is the mistake...
    thank you
    tonyMrsangelo
    P.S. I tryed using PrepareStatement too to get the ResultSet, but in that case I couldn't use the ResultSet because executing the statement resultSet.last() I get the error: "Result set type is TYPE_FORWARD_ONLY"

    In a database like Oracle, you need to use a function like TO_DATE; other databases may have something similar.
    However, the proper way to do this is to use a PreparedStatement. Then you can say
    PreparedStatement ps = conn.prepareStatement("update SOMETABLE set SOME_DATE=? where SOME_ID=?");
    ps.setDate(1, new java.sql.Date(someJavaUtilDate.getTime()));
    ps.setInt(2, theId);
    ps.executeUpdate();

  • Using imported data types

    Hi,
    While modeling a NW BPM process I wanted to create my own data types. After I have imported a Enterprise Service by SAP all the used data types are accessible in the imported namespace. I can even use them as types for DOs but unfortunately not as reference data types while creating my own xsd files. Am I doing anything wrong is it just not possible to do this?
    Thanks,
    Manfred

    This is unfortunately a conceptial problem with WSDL: XSD types and elements that are defined in the inline schema of WSDLs cannot be imported into other WSDs.
    If you have a WSDL that has the interesting types in an extenal XSD, you are lucky. In this case you can simply reference them from you new type by setting the visibility in the XSD editor to "workspace".
    If not, the unnice thing is that you would need to either refactor the WSDL (taking the types out into an external XSD) or you need to copy the relevant types.
    When you copy, you should us a differen namespace. As long as the original type and your copy have a similar structure - mainly the field names stay the same - the automapping is smart enough to copy field-by-field.

  • Printing Greek on SQR Using NVARCHAR2 Data type

    <p><span style=" font-size: 12pt;"><font face="Times New Roman"size="3">I need some information about reading GREEK from Database. I have used following line in SQR.INI To print Greek in thereport.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Encoding = CP28597</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">The data type in which I store Greek isVARCHAR2.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">But My requirement is to have Data TypeNVARCHAR2 and print Greek. I Store Greek in NVARCHAR2 but onHyperion 8.5, it display Garbage Values in-stead ofGreek</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3"> </font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">In short:</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">I Need to get values from NVARCHAR2 anddisplay it on report. the Value store is Greek.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Data Base is Oracle9i.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3"> </font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Thanks</font></span></p>

    <p><span style=" font-size: 12pt;"><font face="Times New Roman"size="3">I need some information about reading GREEK from Database. I have used following line in SQR.INI To print Greek in thereport.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Encoding = CP28597</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">The data type in which I store Greek isVARCHAR2.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">But My requirement is to have Data TypeNVARCHAR2 and print Greek. I Store Greek in NVARCHAR2 but onHyperion 8.5, it display Garbage Values in-stead ofGreek</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3"> </font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">In short:</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">I Need to get values from NVARCHAR2 anddisplay it on report. the Value store is Greek.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Data Base is Oracle9i.</font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3"> </font></span></p><p class="msonormal"><span style=" font-size: 12pt;"><font face= "Times New Roman" size="3">Thanks</font></span></p>

  • Dynamic Drop Down creation using simple data types

    Hi all,
    I have got a requirement in which i have to create an iView which is going to have 6 drop down values and with in that 1 value is going to have sub values which needs to get displayed in the similar drop down fashion.
    I have created a simple data type having enumeration of the 6 values and linked the same to iView with drop down by key which is working successfully. And for the purpose of sub values i have created a similar simple data type with two values and linked the same with a value attribute.
    Well, can any one tell me the further process to proceed ?
    Thanks in advance ...
    Vipin

    Vipin,
    There are quite some steps to achieve what you need. Since you have both your DropDownByKey elements defined and bound to context elements, it may make sense to keep the Second DropDownByKey element invisible and make it visible only when user selects a specified key from first DropDownByKey. To achieve this, follow these steps.
    1. Create an action with a parameter "key" of type string.
    2. Bind this action with onSelect event of your First DropDownByKey UI Element.
    3. Do mapping of parameter "key" in your wdDoModifyView with following code.
      if (firstTime)
             final IWDDropDownByKey dk = (IWDDropDownByKey)view.getElement("DropDownByKey1");
               // Replace DropDownByKey1 with id of your DropDownByKey Element.
             dk.mappingOfOnSelect().addSourceMapping("key", "key");
    4. Create a context attribute of type WDVisibility say "DDVisible" and bind to "visible" property of your second DropDownByKey.
    5. Set DDVisible to NONE in wdInit().
    wdContext.currentContextElement().setDDVisible(WDVisibility.NONE); 
    6. In onSelect action write this code to make second visible
    if(key.equalsIgnoreCase("Two")){
         //Replace "Two" with your required value.
             wdContext.currentContextElement().setDDVisible(WDVisibility.VISIBLE);
           else{
                wdContext.currentContextElement().setDDVisible(WDVisibility.NONE); 
    This should give the desired results.
    Hope this helps.
    Vishwas.

  • Help Me using BLOB Data Type

    Hi All
    i want to create 1 simple table with BLOB data types
    now i after this i want to insert 25,000 characters through insert query from oracle
    could u give me 1 simple example creation n insertion of data
    i have tried this but i m getting problem if i m inserting more than 4,000 character.
    Pls any one help me or suggests me how can i do this
    Thanks All
    Regards,
    Ajay

    Hi
    Edited by: user10717753 on Dec 16, 2008 3:53 AM

Maybe you are looking for