Cancel long running statement in Oracle Lite (OLITE_10.3.0.3.0 olite40.jar)

On JDBC statement, there is the method 'cancel' to instruct the database to cancel an executing statement. This works fine on Oracle server database, but not on Oracle lite database. The method call 'cancel' just blocks and the running statement is never interrupted.
The example I tried is very simple. There is a thread started which executes a long running statement. I noticed, that when moving the cursor forward by calling rs.next(), it just blocks. That would be ok, if the statement could be canceled from within the main thread by stmt.cancel. But this call blocks as well with no implact on the running statement. Why is that? Do I miss something or is it not possible to cancel a long running statements in Oracle Lite?
In the following my code snipped:
public class CancelStatement {
     private static final String PATH_DB = "XX";
     private static final String PATH_LIB = "XX";
     private static final String CON_STRING = "jdbc:polite:whatever;DataDirectory=" + PATH_DB + ";Database=XX;IsolationLevel=Read Committed;Autocommit=Off;CursorType=Forward Only";
     private static final String USER = "XX";
     private static final String PASSWORD = "XX";
     public static void main(String args[]) throws Exception {
          System.setProperty("java.library.path", PATH_LIB);
          Class.forName("oracle.lite.poljdbc.POLJDBCDriver");
          Connection con = DriverManager.getConnection(CON_STRING, USER, PASSWORD);
          Statement stmt = con.createStatement();
          Thread thread = new Thread(new LongStatementRunnable(con, stmt));
          thread.start();
          Thread.sleep(3000);
          // stop long running statement
          System.out.println("cancel long running statement");
          stmt.cancel(); // XXX does not work, as call is blocked until out of memory
          System.out.println("statement canceled");
     private static class LongStatementRunnable implements Runnable {
          private Connection con;
          private Statement stmt;
          public LongStatementRunnable(Connection con, Statement stmt) {
               this.con = con;
               this.stmt = stmt;
          @Override
          public void run() {
               try {
                    System.out.println("start long running statement...");
                    // execute long running statement
                    ResultSet rs = stmt.executeQuery("SELECT * FROM PERSON P1, PERSON P2");
                    while (rs.next()) { // here the execution gets blocked
                         System.out.println("row"); // is never entered
                    rs.close();
                    stmt.close();
                    con.close();
                    System.out.println("long running statement finished...");
               } catch (Exception e) {
                    e.printStackTrace();
}I would be very glad if you could help me.
Thanks a lot
Daniel
Edited by: 861793 on 26.05.2011 14:29

Unfortunately Oracle Lite doesn't have this option. You can call your statement from a second thread as you have done, but you won't be able to kill or cancel this operation. The only way to get fix this is by rebooting. You can use process explorer to find the dll process that is executing the SQL, but the tables will be locked and sync would be locked as well until the process is finished running in shared memory.

Similar Messages

  • Long running statement

    Hi,
    Is there any way to find out the long running statement from the previous night batch program?
    Thanks

    Another method is by using OEM.
    1) Click on the performance tab, switch to historical selection from the drop down View Data on top right corner.
    2) Scroll down to Additional Monitoring Links and select Period SQL. Use the selector at bottom of top graph to the spike in activity. Again the heavy SQL will show.
    3) Click the SQL in question by examining CPU and elapsed times. Use the plan hash value to select from v$sql or v$sqltext if required. Check the SQL plan and tuning information if available.
    4) From 2 above you an also schedule SQL Tuning or SQL Access advisor.

  • LONG running qurries in oracle database

    HI,
    How to check LONG running qurries in oracle database ? and also can you please tell me how to check current runnning quries in DB.
    Thanks,
    Shyamu.A.

    you mean long ops...
    SELECT sid, to_char(start_time,'hh24:mi:ss') stime,
    message,( sofar/totalwork)* 100 percent
    FROM v$session_longops
    WHERE sofar/totalwork < 1if you want locked objects
    select
      object_name,
      object_type,
      session_id,
      type,           -- Type or system/user lock
      lmode,         -- lock mode in which session holds lock
      request,
      block,
      ctime           -- Time since current mode was granted
    from
      v$locked_object, all_objects, v$lock
    where
      v$locked_object.object_id = all_objects.object_id AND
      v$lock.id1 = all_objects.object_id AND
      v$lock.sid = v$locked_object.session_id
    order by
      session_id, ctime desc, object_name
    /Query for currently running queries more than 60 secs...
    select s.username,s.sid,s.serial#,s.last_call_et/60 mins_running,q.sql_text from v$session s
    join v$sqltext_with_newlines q
    on s.sql_address = q.address
    where status='ACTIVE'
    and type <>'BACKGROUND'
    and last_call_et> 60
    order by sid,serial#,q.piece

  • Long running statement including function

    Hello expert,
    I have a long running statement and corresponding function as follows:
    select
    pp.policy_premium_pk,
    pp.policy_fk,
    pp.policy_term_fk,
    pp.risk_fk,
    pp.coverage_fk,
    pp.transaction_log_fk,
    pp.coverage_component_code,
    hiroc_rpt_user.hiroc_get_delta_amount(pp.policy_fk, pp.policy_term_fk, pp.risk_fk, pp.coverage_fk, pp.transaction_log_fk, pp.coverage_component_code),
    pp.rate_period_from_date
    from proddw_mart.rmv_policy_premium pp
    where pp.rate_period_type_code = 'TERM_COVG'
    and pp.coverage_component_code <> 'NETPREM'
    -- and pp.premium_amount <> 0
    -- *** Following line is included for faster performance
    and hiroc_rpt_user.hiroc_get_delta_amount(pp.policy_fk, pp.policy_term_fk, pp.risk_fk, pp.coverage_fk, pp.transaction_log_fk, pp.coverage_component_code) != 0
    group by pp.policy_premium_pk,
    pp.policy_premium_pk,
    pp.policy_fk,
    pp.policy_term_fk,
    pp.risk_fk,
    pp.coverage_fk,
    pp.transaction_log_fk,
    pp.coverage_component_code,
    pp.rate_period_from_date;
    CREATE OR REPLACE FUNCTION HIROC_RPT_USER."HIROC_GET_DELTA_AMOUNT" (
    p_policy_fk IN NUMBER,
    p_policy_term_history_fk IN NUMBER,
    p_risk_fk IN NUMBER,
    p_coverage_fk IN NUMBER,
    p_transaction_log_fk IN NUMBER,
    p_comp_code IN VARCHAR2)
    RETURN NUMBER
    IS
    v_prev_trlog_fk NUMBER;
    v_delta NUMBER;
    v_parm VARCHAR2(1000);
    v_msg VARCHAR2(200);
    comma VARCHAR2(1) := ',';
    v_src VARCHAR2(100) := 'Get_Delta_Amount';
    BEGIN
    SELECT nvl(MAX(pp.transaction_log_fk), -1)
    INTO v_prev_trlog_fk
    FROM proddw_mart.rmv_Policy_Premium pp
    WHERE pp.coverage_fk = p_coverage_fk
    AND pp.policy_term_fk = p_policy_term_history_fk
    AND pp.transaction_log_fk+0 < p_transaction_log_fk
    AND pp.coverage_component_code = p_comp_code
    AND pp.rate_period_type_code = 'TERM_COVG';
    SELECT nvl(SUM(decode(pp.transaction_log_fk, p_transaction_log_fk, premium_amount, 0)), 0) -
    nvl(SUM(decode(pp.transaction_log_fk, p_transaction_log_fk, 0, pp.premium_amount)), 0)
    INTO v_delta
    FROM proddw_mart.rmv_Policy_Premium pp
    WHERE pp.coverage_fk = p_coverage_fk
    AND pp.policy_term_fk = p_policy_term_history_fk
    AND pp.transaction_log_fk+0 IN (p_transaction_log_fk, v_prev_trlog_fk)
    AND pp.rate_period_type_code = 'TERM_COVG'
    AND INSTR(p_comp_code, pp.coverage_component_code) > 0;
    RETURN v_delta;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    return 0;
    WHEN OTHERS THEN
    return 0;
    END;
    and it execution plan is as follows:
    PLAN_TABLE_OUTPUT
    Plan hash value: 319541564
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 92525 | 5511K| | 17417 (4)| 00:03:30 |
    | 1 | HASH GROUP BY | | 92525 | 5511K| 14M| 17417 (4)| 00:03:30 |
    |* 2 | MAT_VIEW ACCESS FULL| RMV_POLICY_PREMIUM | 92525 | 5511K| | 16045 (4)| 00:03:13 |
    Predicate Information (identified by operation id):
    2 - filter("PP"."RATE_PERIOD_TYPE_CODE"='TERM_COVG' AND
    "PP"."COVERAGE_COMPONENT_CODE"<>'NETPREM' AND
    "HIROC_RPT_USER"."HIROC_GET_DELTA_AMOUNT"("PP"."POLICY_FK","PP"."POLICY_TERM_FK","PP"."RISK_
    FK","PP"."COVERAGE_FK","PP"."TRANSACTION_LOG_FK","PP"."COVERAGE_COMPONENT_CODE")<>0)

    As the first (warming up) step you could rewrite your function to do it's task with a single select
    CREATE OR REPLACE FUNCTION
    HIROC_RPT_USER."HIROC_GET_DELTA_AMOUNT" (p_policy_fk IN NUMBER,  /* not used */
                                             p_policy_term_history_fk IN NUMBER,
                                             p_risk_fk IN NUMBER,    /* not used */
                                             p_coverage_fk IN NUMBER,
                                             p_transaction_log_fk IN NUMBER,
                                             p_comp_code IN VARCHAR2
      RETURN NUMBER
      IS
      v_prev_trlog_fk NUMBER;
      v_delta NUMBER;
    BEGIN
      SELECT nvl(MAX(pp.transaction_log_fk), -1)
        INTO v_prev_trlog_fk
        FROM proddw_mart.rmv_Policy_Premium pp
       WHERE pp.coverage_fk = p_coverage_fk
         AND pp.policy_term_fk = p_policy_term_history_fk
         AND pp.transaction_log_fk+0 < p_transaction_log_fk
         AND pp.coverage_component_code = p_comp_code
         AND pp.rate_period_type_code = 'TERM_COVG';
      SELECT nvl(SUM(decode(pp.transaction_log_fk, p_transaction_log_fk, premium_amount, 0)), 0) -
             nvl(SUM(decode(pp.transaction_log_fk, p_transaction_log_fk, 0, pp.premium_amount)), 0)
        INTO v_delta
        FROM proddw_mart.rmv_Policy_Premium pp
       WHERE pp.coverage_fk = p_coverage_fk
         AND pp.policy_term_fk = p_policy_term_history_fk
         AND pp.transaction_log_fk+0 IN (p_transaction_log_fk, v_prev_trlog_fk)
         AND pp.rate_period_type_code = 'TERM_COVG'
         AND INSTR(p_comp_code, pp.coverage_component_code) > 0;
      select nvl(sum(case transaction_log_fk when p_transaction_log_fk
                                             then premium_amount
                                             else -premium_amount
                     end
                 0
        into v_delta
        from proddw_mart.rmv_Policy_Premium
       where coverage_fk = p_coverage_fk
         and policy_term_fk = p_policy_term_history_fk
         and instr(p_comp_code,coverage_component_code) > 0
         and rate_period_type_code = 'TERM_COVG'
         and transaction_log_fk in (select p_transaction_log_fk,nvl(max(transaction_log_fk),-1)
                                       from proddw_mart.rmv_Policy_Premium
                                      where coverage_fk = p_coverage_fk
                                        and policy_term_fk = p_policy_term_history_fk
                                        and transaction_log_fk < p_transaction_log_fk
                                        and coverage_component_code = p_comp_code
                                        and rate_period_type_code = 'TERM_COVG'
      RETURN v_delta;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN return 0;
      WHEN OTHERS THEN return 0;
    END;in the next step you could get rid of the function call:
    something along the lines of
    select pp.policy_premium_pk,
           pp.policy_fk,
           pp.policy_term_fk,
           pp.risk_fk,
           pp.coverage_fk,
           pp.transaction_log_fk,
           pp.coverage_component_code,
           nvl(sum(case f.transaction_log_fk when pp.transaction_log_fk
                                             then f.premium_amount
                                             else -f.premium_amount
                   end
               0
              ) premium_amount,
           pp.rate_period_from_date
      from proddw_mart.rmv_policy_premium pp,
           (select p.premium_amount,
                   p.policy_term_fk,
                   p.coverage_fk,
                   p.transaction_log_fk,
                   p.coverage_component_code
              from proddw_mart.rmv_Policy_Premium p
             where p.rate_period_type_code = 'TERM_COVG'
               and instr('NETPREM',coverage_component_code) > 0
           ) f
    where pp.rate_period_type_code = 'TERM_COVG'
       and pp.coverage_component_code = 'NETPREM'
       and pp.policy_term_fk = f.policy_term_fk
       and pp.coverage_fk = f.coverage_fk
       and (
            pp.transaction_log_fk = f.transaction_log_fk
        or
            pp.transaction_log_fk = (select nvl(max(transaction_log_fk),-1)
                                       from proddw_mart.rmv_Policy_Premium
                                      where rate_period_type_code = 'TERM_COVG'
                                        and coverage_component_code = 'NETPREM'
                                        and policy_term_fk = pp.policy_term_fk
                                        and coverage_fk = pp.coverage_fk
                                        and transaction_log_fk < pp.transaction_log_fk
    group by pp.policy_premium_pk,
              pp.policy_premium_pk,
              pp.policy_fk,
              pp.policy_term_fk,
              pp.risk_fk,
              pp.coverage_fk,
              pp.transaction_log_fk,
              pp.coverage_component_code,
              pp.rate_period_from_dateRegards
    Etbin

  • How can i cancel long running queries (red x doesnt work)

    hi there
    i am trying to work with some long running queries - it would be very nice to be able to cancel them (like toads cancel button)
    I have tried the red X in the circle but it doesnt seem to work - it appears to have cancelled it (the cylon-eye style comfort bar stops ocillating) but if i try to use the connection again, or disconnect or open another connection it says:
    "connection currently busy. Try again?"
    i have tried this in the latest release vanilla & the latest release plus patch 2
    thanks
    Martin

    Good news that this will be improved. Can't resist to post this Link: [plsql forum thread about start/stop.. | http://forums.oracle.com/forums/thread.jspa?forumID=75&threadID=927697]
    I have experienced the same and also noted that it feels better to execute stored procedures in sqldeveloper
    - by editing
    - compiling (might hang if already busy)
    - run from the same dialog just to get the the cylon's eye for emergency stops (which waits .... ) meanwhile jump to apex to fiddle with small table triggering exception to stop the procedure.
    If stored procedure is executed from the list via 'right mouse click'-style then you see in the log-region "connecting to databse ... ." but no method to stop nor cancel or cylon's eye is well hidden.
    When such "busy" is running I also noted that the database-connection right mouse click has greyed/inactivated the selections "connect/disconnect" so the next logical step for stopping via "disconnect" is out of the question.
    I think this also boils down also to question whether the user has rights to see gv$session and be able to drop/stop busy/jamming sessions. E.g. public synonyms listing has small icons with mystic red :)
    /paavo
    Java(TM) Platform     1.6.0_14
    Oracle IDE     1.5.4.59.40

  • Cancel long running queries

    Hi Folks,
    Is it possible to submit a SELECT statment using OraSqlStmt object and retrieve the data so generated?
    I want to submit a long-running SELECT query against Oracle, and have the option to cancel the query.
    I can submit the query asynchronously NONBLK option of OraSqlStmt and then be able to cancel it. However, I also want to display the dataset returned by the query. But I think it is not possible to create a dataset / recordset or dynaset using OraSqlStmt.
    THe question is:
    How can I submit a long running Select query, be able to cancel it and if the query is not cancelled then be able to display the records in a grid? I am using VB6.
    Thanks

    Good news that this will be improved. Can't resist to post this Link: [plsql forum thread about start/stop.. | http://forums.oracle.com/forums/thread.jspa?forumID=75&threadID=927697]
    I have experienced the same and also noted that it feels better to execute stored procedures in sqldeveloper
    - by editing
    - compiling (might hang if already busy)
    - run from the same dialog just to get the the cylon's eye for emergency stops (which waits .... ) meanwhile jump to apex to fiddle with small table triggering exception to stop the procedure.
    If stored procedure is executed from the list via 'right mouse click'-style then you see in the log-region "connecting to databse ... ." but no method to stop nor cancel or cylon's eye is well hidden.
    When such "busy" is running I also noted that the database-connection right mouse click has greyed/inactivated the selections "connect/disconnect" so the next logical step for stopping via "disconnect" is out of the question.
    I think this also boils down also to question whether the user has rights to see gv$session and be able to drop/stop busy/jamming sessions. E.g. public synonyms listing has small icons with mystic red :)
    /paavo
    Java(TM) Platform     1.6.0_14
    Oracle IDE     1.5.4.59.40

  • In forms how to cancel long running process or query in 10g

    We have application which is hosted on 10g AS. Some forms has lot of processing to be done and sometimes user wants to cancel the processing in between maybe because he wants to change some value and refire processing.
    Based on the search on net 'Esc' key was used in earlier version of forms to function as User requested Cancel operation. How can same be done in 10g. Do we have to do anything in fmrweb.res for this. Is there some setting to be done in forms or in AS for this functionality.
    Does this matter on whether JInitiator is used or JPI is used for running the application?
    Edited by: suresh_mathew on May 21, 2013 1:36 AM

    Hi,
    Exit can be used to cancel query mode i.e. in case you go into query mode by Exit you can cancel query mode. Suppose you went into query mode and you have fired query which will take some time to fetch how can I abort it.
    In earlier version of form there was 'Cancel' facility wherein if triggered it used to fire an error message 'Ora--01013 user requested cancel of current operation"
    With this facility you can abort any query which is executing or any long running process which forms is currently performing.
    fmrweb.res would have entry like
    27 : 0 : "Esc" : 1001 : "Cancel"
    The above entry I picked from OPN
    Java Function Numbers And Key Mappings For Forms Deployed Over Web [ID 66534.1]
    Unfortunately this is not working for us even if I put this in frmweb.res of 10g AS
    Basically I want ability to Abort/Cancel a long running process be it query execution or standard process triggered in the form.
    Any advise or help is highly appreciated.
    Suresh

  • Update statement in Oracle Lite

    Hi
    I'm having a problem when I do an Update on the database.
    if I set a column which is a primary key in the table with the same value I get a foreign key error.
    Ex: update company set company_id = 1 where company_id = 1;
    in Oracle 8i there is no problem ,but when I run it in 8i Lite a get the foreign key error.
    I appreciate any help

    Is it necessary to update the entire record in Oracle Lite, or should it be possible to update select columns only when performing an update query?
    Thanks,
    Allen

  • SQL Developer Locking up/Unable to Cancel long Running tasks

    I have had the same problem with a number of versions of SQL Developer (and version 3.2.09). It occurs when trying to cancel a long-running PL-SQL Function or procedure that has been started by 'Run' in SQL Developer.
    Select Terminate in Run Manager does not stop the job. Nor does trying to exit SQLDeveloper; it asks whether I want to kill the job; then doesn't kill it and doesn't exit either.
    Trying to save modifications to anything the process depends on results in SQL Developer locking for ~20 minutes.
    I have to resort to getting a DBA to manually kill the process at the server.
    Is there any possiblity of a workaround or a way of making the PL/SQL not lock so it can be terminated please?
    Thanks

    I have had the same problem with a number of versions of SQL Developer (and version 3.2.09). It occurs when trying to cancel a long-running PL-SQL Function or procedure that has been started by 'Run' in SQL Developer.
    Select Terminate in Run Manager does not stop the job. Nor does trying to exit SQLDeveloper; it asks whether I want to kill the job; then doesn't kill it and doesn't exit either.
    Trying to save modifications to anything the process depends on results in SQL Developer locking for ~20 minutes.
    I have to resort to getting a DBA to manually kill the process at the server.
    Is there any possiblity of a workaround or a way of making the PL/SQL not lock so it can be terminated please?
    Thanks

  • How to Cancel Long Running Report

    Hello
    I'm looking for a way to cancel the printing of a long running report programatically? I'm using the CrystalDecisions.CrystalReports.Engine.ReportDocument() class.
    Thanks for your help

    Hi Syed,
    The old viewer was COM based and the new viewer is .NET. CR has the ability if the DB server supports Async communication. Most DB's don't so it wasn't of much use. For those that did the functionality was through custom coding within the Designer only. Async would allow CR to send a stop processing command to the DB server. If the server did not have the ability then CR can only wait for the data to start coming back before stopping the viewer from updating.
    In any event I don't believe the Windows Viewer in .NET has the ability but I will suggest it to the Product group to add the ability in some future version.
    Thank you
    Don

  • Canceling long running queries

     

    This definitely occurs in 1.5.5 - in my particular case, and this is really strange, if one uses Task Manager to shut down SQLDeveloper because it is just taking forever to get a Data view (via the + expand sign on the side of a given admittedly big table, then clicking on the Data tab), SQLDeveloper freezes. Even if I start a new instance of SQLDeveloper, and ask for a Data view again, it freezes - I've waited as much as 1/2 hour, where as in prior days I'd get a response within say 1 min.
    I've even uninstalled and re-installed. Same deal. This is what's the strangest by far. How can it be that SQLDeveloper remembers that a long running query was once canceled even after an uninstall / reinstall ? I could not find anything remotely related to this in the Registry after the uninstall either.
    [By the way, if on the other hand, I say SELECT * FROM {table_name}, I get an instant response !]

  • How to cancel long running query by client

    Hi,
    I have the following problem:
    The user calls a service function (business logic) by an application client. Inside the function call an SQL-Query is generated and started on the database (JDBC). Depending on comlexity of the query or search parameter (e.g. search for chemical structures with SYMYX or Accord) the statement is running very long. In this case the user would like to cancle the search by pressing a button in the client application.
    Using preparedStatements there is a cancle method. Because the preparedStatement is inside the called business logic function the preparedStatement is not accessible fom the client or other service methods the normal way. If I understand this correct, I have to make all started preparedStatements public inside my service and then try to access the correct statement by an additional service call (other thread). This sounds a bit like a hack.
    Has anyone this constellation running or is there an other way?
    I would be happy about any hints or suggestions.
    Thanks, Antje.

    Best to post this in the Java > SQL/JDBC Forum

  • Cancel long running print job

    I'm using the .NET report view component. We have customers with a lot of data and some print jobs may take several minutes to process.
    Is there a way to cancel the processing of the report once I have set the viewer Reportsource?
    Tosch

    Hello Tosch,
    unfortunately there is not .NET viewer event to indicate whether data load process has finished or not.
    This was a possible event to trigger in the ActiveX viewer.
    Maybe you can find somehting on .NET OS level. The  CR .NET viewer has no event to trigger on.
    Please see all possible events in the viewer class [here|https://boc.sdn.sap.com/node/14834].
    Best regards
    Falk

  • Cancelling of Long Running Queries feature for GRID data block

    Hi,
    Maybe someone knows solution-
    we have custom form with Spreadtable (JTF_GRID object) block (similar as, for example, EBS form WMSCTLBD).
    Is here any possibility to enable ‘Cancel Long Running Queries’ feature for it?
    I have reviewed built-in JTF_GRID library (with hope to implement it by adding some custom timer) but I cannot find any API which could be used for cancelling already submitted queries.
    I have created a SR but analyst suggested to ask for it in forums :)
    Our Oracle Forms Version is 6.0.8.28.0
    Thanks in advance.
    BR,
    Kristaps

    Try CTRL-ALT-DELETE
    :-)

  • Master detail against Oracle Lite was working, now broken -help?

    I have a master detail form running against an Oracle Lite database which was working fine. Today I made several changes - added create method so I could default some values, changed background colors, connected to the rest of the columns in the child entity, changed some display formats.
    Now whenever I try to update or insert on the child table I get errors:
    DAC-305: DbAccess commitTransaction failed. Session: Session1
    JBO-26041: Failed to post data to database during "Insert": SQL Statement " INSERT INTO CBC(DAY,HORSE_ID,WBC,HGB,HCT,PLT,MCHC,PMN,STAB,BASO,LYMPH,MONO,EOS,FECAL,MY,ALBUMIN,BL) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) ".
    Unhandled object
    on insert, or
    DAC-104: ImmediateAccess: setAttribute failed. ColumnView: Hct row: 1
    JBO-26080: Error while selecting entity for Cbc
    [ODBC S1C00] driver not capable of this operation
    on update.
    I've undone most of what I did today trying to figure out what broke it. Wish I had a backup! What gives? How do I debug this thing?
    Thanks, Bryan

    Solution:
    For Oracle Lite anyhow, you must be careful to use the right data types in the BC4J EO (Entity Objects). Timestamp works, Date doesn't. BigDecimal works, number doesn't. If the wrong data type is set the application will read and display data, but attempts to insert new data or update existing data will throw the errors above.

Maybe you are looking for