Problem with BULK COLLECT with million rows - Oracle 9.0.1.4

We have a requirement where are supposed to load 58 millions of rows into a FACT Table in our DATA WAREHOUSE. We initially planned to use Oracle Warehouse Builder but due to performance reasons, decided to write custom code. We wrote a custome procedure which opens a simple cursor and reads all the 58 million rows from the SOURCE Table and in a loop processes the rows and inserts the records into a TARGET Table. The logic works fine but it took 20hrs to complete the load.
We then tried to leverage the BULK COLLECT and FORALL and PARALLEL options and modified our PL/SQL code completely to reflect these. Our code looks very simple.
1. We declared PL/SQL BINARY_INDEXed Tables to store the data in memory.
2. We used BULK COLLECT into FETCH the data.
3. We used FORALL statement while inserting the data.
We did not introduce any of our transformation logic yet.
We tried with the 600,000 records first and it completed in 1 min and 29 sec with no problems. We then doubled the no. of rows to 1.2 million and the program crashed with the following error:
ERROR at line 1:
ORA-04030: out of process memory when trying to allocate 16408 bytes (koh-kghu
call ,pmucalm coll)
ORA-06512: at "VVA.BULKLOAD", line 66
ORA-06512: at line 1
We got the same error even with 1 million rows.
We do have the following configuration:
SGA - 8.2 GB
PGA
- Aggregate Target - 3GB
- Current Allocated - 439444KB (439 MB)
- Maximum allocated - 2695753 KB (2.6 GB)
Temp Table Space - 60.9 GB (Total)
- 20 GB (Available approximately)
I think we do have more than enough memory to process the 1 million rows!!
Also, some times the same program results in the following error:
SQL> exec bulkload
BEGIN bulkload; END;
ERROR at line 1:
ORA-03113: end-of-file on communication channel
We did not even attempt the full load. Also, we are not using the PARALLEL option yet.
Are we hitting any bug here? Or PL/SQL is not capable of mass loads? I would appreciate any thoughts on this?
Thanks,
Haranadh
Following is the code:
set echo off
set timing on
create or replace procedure bulkload as
-- SOURCE --
TYPE src_cpd_dt IS TABLE OF ima_ama_acct.cpd_dt%TYPE;
TYPE src_acqr_ctry_cd IS TABLE OF ima_ama_acct.acqr_ctry_cd%TYPE;
TYPE src_acqr_pcr_ctry_cd IS TABLE OF ima_ama_acct.acqr_pcr_ctry_cd%TYPE;
TYPE src_issr_bin IS TABLE OF ima_ama_acct.issr_bin%TYPE;
TYPE src_mrch_locn_ref_id IS TABLE OF ima_ama_acct.mrch_locn_ref_id%TYPE;
TYPE src_ntwrk_id IS TABLE OF ima_ama_acct.ntwrk_id%TYPE;
TYPE src_stip_advc_cd IS TABLE OF ima_ama_acct.stip_advc_cd%TYPE;
TYPE src_authn_resp_cd IS TABLE OF ima_ama_acct.authn_resp_cd%TYPE;
TYPE src_authn_actvy_cd IS TABLE OF ima_ama_acct.authn_actvy_cd%TYPE;
TYPE src_resp_tm_id IS TABLE OF ima_ama_acct.resp_tm_id%TYPE;
TYPE src_mrch_ref_id IS TABLE OF ima_ama_acct.mrch_ref_id%TYPE;
TYPE src_issr_pcr IS TABLE OF ima_ama_acct.issr_pcr%TYPE;
TYPE src_issr_ctry_cd IS TABLE OF ima_ama_acct.issr_ctry_cd%TYPE;
TYPE src_acct_num IS TABLE OF ima_ama_acct.acct_num%TYPE;
TYPE src_tran_cnt IS TABLE OF ima_ama_acct.tran_cnt%TYPE;
TYPE src_usd_tran_amt IS TABLE OF ima_ama_acct.usd_tran_amt%TYPE;
src_cpd_dt_array src_cpd_dt;
src_acqr_ctry_cd_array      src_acqr_ctry_cd;
src_acqr_pcr_ctry_cd_array     src_acqr_pcr_ctry_cd;
src_issr_bin_array      src_issr_bin;
src_mrch_locn_ref_id_array     src_mrch_locn_ref_id;
src_ntwrk_id_array      src_ntwrk_id;
src_stip_advc_cd_array      src_stip_advc_cd;
src_authn_resp_cd_array      src_authn_resp_cd;
src_authn_actvy_cd_array      src_authn_actvy_cd;
src_resp_tm_id_array      src_resp_tm_id;
src_mrch_ref_id_array      src_mrch_ref_id;
src_issr_pcr_array      src_issr_pcr;
src_issr_ctry_cd_array      src_issr_ctry_cd;
src_acct_num_array      src_acct_num;
src_tran_cnt_array      src_tran_cnt;
src_usd_tran_amt_array      src_usd_tran_amt;
j number := 1;
CURSOR c1 IS
SELECT
cpd_dt,
acqr_ctry_cd ,
acqr_pcr_ctry_cd,
issr_bin,
mrch_locn_ref_id,
ntwrk_id,
stip_advc_cd,
authn_resp_cd,
authn_actvy_cd,
resp_tm_id,
mrch_ref_id,
issr_pcr,
issr_ctry_cd,
acct_num,
tran_cnt,
usd_tran_amt
FROM ima_ama_acct ima_ama_acct
ORDER BY issr_bin;
BEGIN
OPEN c1;
FETCH c1 bulk collect into
src_cpd_dt_array ,
src_acqr_ctry_cd_array ,
src_acqr_pcr_ctry_cd_array,
src_issr_bin_array ,
src_mrch_locn_ref_id_array,
src_ntwrk_id_array ,
src_stip_advc_cd_array ,
src_authn_resp_cd_array ,
src_authn_actvy_cd_array ,
src_resp_tm_id_array ,
src_mrch_ref_id_array ,
src_issr_pcr_array ,
src_issr_ctry_cd_array ,
src_acct_num_array ,
src_tran_cnt_array ,
src_usd_tran_amt_array ;
CLOSE C1;
FORALL j in 1 .. src_cpd_dt_array.count
INSERT INTO ima_dly_acct (
     CPD_DT,
     ACQR_CTRY_CD,
     ACQR_TIER_CD,
     ACQR_PCR_CTRY_CD,
     ACQR_PCR_TIER_CD,
     ISSR_BIN,
     OWNR_BUS_ID,
     USER_BUS_ID,
     MRCH_LOCN_REF_ID,
     NTWRK_ID,
     STIP_ADVC_CD,
     AUTHN_RESP_CD,
     AUTHN_ACTVY_CD,
     RESP_TM_ID,
     PROD_REF_ID,
     MRCH_REF_ID,
     ISSR_PCR,
     ISSR_CTRY_CD,
     ACCT_NUM,
     TRAN_CNT,
     USD_TRAN_AMT)
     VALUES (
     src_cpd_dt_array(j),
     src_acqr_ctry_cd_array(j),
     null,
     src_acqr_pcr_ctry_cd_array(j),
          null,
          src_issr_bin_array(j),
          null,
          null,
          src_mrch_locn_ref_id_array(j),
          src_ntwrk_id_array(j),
          src_stip_advc_cd_array(j),
          src_authn_resp_cd_array(j),
          src_authn_actvy_cd_array(j),
          src_resp_tm_id_array(j),
          null,
          src_mrch_ref_id_array(j),
          src_issr_pcr_array(j),
          src_issr_ctry_cd_array(j),
          src_acct_num_array(j),
          src_tran_cnt_array(j),
          src_usd_tran_amt_array(j));
COMMIT;
END bulkload;
SHOW ERRORS
-----------------------------------------------------------------------------

do you have a unique key available in the rows you are fetching?
It seems a cursor with 20 million rows that is as wide as all the columnsyou want to work with is a lot of memory for the server to use at once. You may be able to do this with parallel processing (dop over 8) and a lot of memory for the warehouse box (and the box you are extracting data from)...but is this the most efficient (and thereby fastest) way to do it?
What if you used a cursor to select a unique key only, and then during the cursor loop fetch each record, transform it, and insert it into the target?
Its a different way to do a lot at once, but it cuts down on the overall memory overhead for the process.
I know this isnt as elegant as a single insert to do it all at once, but sometimes trimming a process down so it takes less resources at any given moment is much faster than trying to do the whole thing at once.
My solution is probably biased by transaction systems, so I would be interested in what the data warehouse community thinks of this.
For example:
source table my_transactions (tx_seq_id number, tx_fact1 varchar2(10), tx_fact2 varchar2(20), tx_fact3 number, ...)
select a cursor of tx_seq_id only (even at 20 million rows this is not much)
you could then either use a for loop or even bulk collect into a plsql collection or table
then process individually like this:
procedure process_a_tx(p_tx_seq_id in number)
is
rTX my_transactions%rowtype;
begin
select * into rTX from my_transactions where tx_seq_id = p_tx_seq_id;
--modify values as needed
insert into my_target(a, b, c) values (rtx.fact_1, rtx.fact2, rtx.fact3);
commit;
exception
when others
rollback;
--write to a log or raise and exception
end process_a_tx;
procedure collect_tx
is
cursor tx is
select tx_seq_id from my_transactions;
begin
for rTx in cTx loop
process_a_tx(rtx.tx_seq_id);
end loop;
end collect_tx;

Similar Messages

  • Problem with implicitly created Oracle pipes

    Hi, I am having a problem with implicitly created Oracle pipes. I am not sure if this is the correct forum for this topic, but I could not see one which suited better..
    I am using Oracle pipes as a commiunication mechanism between processes (some are written in PL/SQL and other in PRO*C).
    The general problem I have is that if a timeout occurs during the communication process, I end up with 1 or perhaps 2 implicitly created pipes.
    The biggest problem for me is that I am unable to determine if a create is implicitly created (via dbms_pipe.send_message or receive_message). This causes problems, since these implicitly created pipes are left behind and not deleted. I'll show you the basic flow of the processes and you shall see my problem.
    server: create request pipe "req_pipe"
    server: listen for request on requests pipe.
    client: create two pipes for comms with server.
    client: send request and the names of the newly created pipes to the server.
    server: read request and pipename from request pipe (from this point all comms between the client and server are now done over the 2 pipes the client created).
    server: send ack message to client to ensure they are still there (since requests can be queued in the request pipe and clients could have timed out before the request is received)
    client: send "i'm still here" ack back to the server.
    server: process request and send result back to client.
    client: send ack back to server to let server know we have received the response.
    server: send ack back to client to show that work is now committed.
    OK thats the general event flow. I use the rule, that pipes created by a process are removed by a process. So the client always removes the pipes it created in all situations. But since this can happen at any point we can get in the situation:
    client: timeout occurs, delete pipes.
    server: send message to client (creates an implicit pipe) and therefor works (no errors raised)
    server: do a read for response from previous message. (implicitly creates pipe) (will fail).
    Now we have two implicitly created pipes! These pipes will exist until the database instance is shutdown, and in a poorly performing environment, we could get thousands of these pipes lying around... not a good situation.
    How can I either stop pipes being implicilty created, or how do I detect if a pipe was implicitly created.
    I have tried a couple of things, like using v$db_pipes to check if a pipe exists before doing send/reveive calls but this is FAR to slow to do a select on that view.
    We have also looked at keeping a record of pipes created by the client then have some process (perhaps the server) clean up these pipes after some time frame. This is a workable solution but is not favourable since it adds extra overhead having to check these pipes often, and created an extra level of complexity which is not required..
    Any suggestions will be greatly appreciated.
    Feel free to email me with any suggestions on my email provided below, or just post a reply to this formum..
    Many thanks,
    Karl Bridger
    [email protected]

    I solved the problem by changing the SOAP massage format from Document/Wrapped to Document/Literal

  • Problems with Download of Oracle IFS /IFS Devkit for NT

    I am having problems with download of Oracle IFS and Oracle IFS Devkit for NT.
    When I ran the ifsdevkit.bat file the last four files did not get copied over. Subsequently when I ran the upload_ifsdevkit batch file as indicated in document I got error message saying
    'System cannot find the path specified'.
    When I opened the batch file it is looking for BIN directory under the C:\OraHome1\ifs directory but none exists. I wonder if this is the cause of problem. This would mean that the ifs1081.zip file has a bug in that it did not create the BIN directory and files under C:\OraHome1\ifs
    Would appreciate if somebody can help. Thanks
    null

    Is C:\OraHome1 your ORACLE_HOME directory? (Usually, it's C:\Oracle\Ora81)
    Also, have you installed iFS (successfully) in that ORACLE_HOME? If so, you are guaranteed to have an %ORACLE_HOME%\ifs\bin directory.
    Finally, did you enter the correct directory as the parameter to the DEVKIT script?

  • Problem with RollBack in  Oracle Batching

    Hi all,
    This is Adhil. I am facing a problem with Oracle Batching in java.
    I am using java 1.5 and Oracle 10 g.
    I have a below standalone code to test the Oracle Batching (Assume that i have the 2 tables with zero records ).
    with the batch size set as 10, I am trying add 2 records in each table.
    Now I rise divideByZero error exception manually and trying to rollback the connection in catch statement . But couldn't rollback the connection. I see the 2 records added in both of my tables.
    The same code when i set the batchsize 2 and trying to insert 10 records ,I could rollback and no rows get inserted.
    Since I am going to get the no of insert from user in runtime , my rollback may fail in any combinations as in my first case(with batch size 10 and if the no of insert is 2).
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import oracle.jdbc.*;
    public class BatchTest{
         public static void main(String args[]) throws Exception{
              Connection conn = null;
              conn = new BatchTest().createConnection();
              new BatchTest().insertdata(conn);
         public Connection createConnection() throws Exception{
                   Properties props =new Properties();
                   props.load(ClassLoader.getSystemResourceAsStream("connection.properties"));
                   String connectionString = (String)props.get("connection");
                   String username = (String)props.get("username");
                   String password = (String)props.get("password");
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                   Connection connection = DriverManager.getConnection(connectionString, username, password);
                   return connection;
         public void insertdata(Connection dbConnection){
              PreparedStatement psCnt =null;
              PreparedStatement psImp =null;
              try{
              dbConnection.setAutoCommit(false);
              psCnt = dbConnection.prepareStatement("insert into CHKCNT values (?,?)");
              psImp = dbConnection.prepareStatement("insert into CHKIMP values (?,?)");
              ((OraclePreparedStatement)psCnt).setExecuteBatch (10);
              ((OraclePreparedStatement)psImp).setExecuteBatch (10);
              int x=0;
              for(int i=1;i<=2;i++){
                        psCnt.setInt(1,i);
                        psCnt.setString(2,"Jack");
                        psImp.setInt(1,i);
                        psImp.setString(2,"John");
                        psImp.executeUpdate();
                        psCnt.executeUpdate();
              if(true) x=10/0;
              dbConnection.commit();
              }catch(Exception e){
                   try{
                   dbConnection.rollback();
                   dbConnection.close();
                   }catch(Exception ex){
                   e.printStackTrace();
              }finally{
                   try{
                        psCnt.close();
                   }catch(Exception ee){
                   ee.printStackTrace();
    Can anyone suggest me a way to make my rollback work.
    Thanks in advance.
    -adhil.J

    Hi all,
    This is Adhil. I am facing a problem with Oracle Batching in java.
    I am using java 1.5 and Oracle 10 g.
    I have a below standalone code to test the Oracle Batching (Assume that i have the 2 tables with zero records ).
    with the batch size set as 10, I am trying add 2 records in each table.
    Now I rise divideByZero error exception manually and trying to rollback the connection in catch statement . But couldn't rollback the connection. I see the 2 records added in both of my tables.
    The same code when i set the batchsize 2 and trying to insert 10 records ,I could rollback and no rows get inserted.
    Since I am going to get the no of insert from user in runtime , my rollback may fail in any combinations as in my first case(with batch size 10 and if the no of insert is 2).
    import java.io.*;
    import java.util.*;
    import java.sql.*;
    import oracle.jdbc.*;
    public class BatchTest{
         public static void main(String args[]) throws Exception{
              Connection conn = null;
              conn = new BatchTest().createConnection();
              new BatchTest().insertdata(conn);
         public Connection createConnection() throws Exception{
                   Properties props =new Properties();
                   props.load(ClassLoader.getSystemResourceAsStream("connection.properties"));
                   String connectionString = (String)props.get("connection");
                   String username = (String)props.get("username");
                   String password = (String)props.get("password");
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                   Connection connection = DriverManager.getConnection(connectionString, username, password);
                   return connection;
         public void insertdata(Connection dbConnection){
              PreparedStatement psCnt =null;
              PreparedStatement psImp =null;
              try{
              dbConnection.setAutoCommit(false);
              psCnt = dbConnection.prepareStatement("insert into CHKCNT values (?,?)");
              psImp = dbConnection.prepareStatement("insert into CHKIMP values (?,?)");
              ((OraclePreparedStatement)psCnt).setExecuteBatch (10);
              ((OraclePreparedStatement)psImp).setExecuteBatch (10);
              int x=0;
              for(int i=1;i<=2;i++){
                        psCnt.setInt(1,i);
                        psCnt.setString(2,"Jack");
                        psImp.setInt(1,i);
                        psImp.setString(2,"John");
                        psImp.executeUpdate();
                        psCnt.executeUpdate();
              if(true) x=10/0;
              dbConnection.commit();
              }catch(Exception e){
                   try{
                   dbConnection.rollback();
                   dbConnection.close();
                   }catch(Exception ex){
                   e.printStackTrace();
              }finally{
                   try{
                        psCnt.close();
                   }catch(Exception ee){
                   ee.printStackTrace();
    Can anyone suggest me a way to make my rollback work.
    Thanks in advance.
    -adhil.J

  • Having problems with front row (and the opticle drive)

    I bought my macbook three days ago, and I'm already having problems. First off, I transfered music from my user profile on my old iMac G5 to the macbook via data DVD. My music collection had some purchaces from the itunes store, so I had to go through the authorization thing, and I can now play them just fine in the iTunes library, but the problem is, if I try to use the front row program to play my purchaced music, I get the message saying that I have to authorize it first. What the ****? Does anybody else have this problem? Also, like many other macbook users, I'm having problems with the opticle drive, such as getting cds to be recognized and other things of that nature.

    I noticed that this problem started after I tried to use a software to unlock my drive's region...
    I believe this is the problem. The VLC Media Player will usually play DVDs from other regions without changing the settings on your optical drive. You may need to reset your optical drive's firmware back to the original setting, make sure you have the region set for the one you'd prefer to use the most and then use VLC to play the other DVDs.
    -Doug
    P.S. After two years in the Front Row forum, I'm not sure I've ever heard of anyone playing HDDVD_TS folders with Front Row. I'm not saying it won't work, but I'm not sure it's really supported either. I do have DVD Studio Pro myself, but I'll have friends or family staying with me for nearly the next month, so my evenings and weekends will be a bit full to try making one up for testing...

  • Problem with query for Oracle

    Hello Experts,
    I'm tryng to develop my first application for EP (v7 SP12) with NWDS (without NWDI).
    This application has to read and write data in the EP DB (oracle v10).
    I'm using:
    <u>a Dictionary Project</u> (define the DB Tables)
    <u>a Java Project</u> (define class as DAO, DBManager etc)
    <u>a Library Project</u>
    <u>an EJB Project</u>
    <u>an EAR Project</u>
    With these projects I can deploy a <u>webService</u> in my EP server.
    BUT I have some problem with a query that I'm tryng to sent to my DB through a DAO Class called by my WebService.
    The query is simple and correct but it does not work...
    This is the error message returned (the query id in bold)
    (column names: GIORNO, NOMEDITTA, NOMEAREA, NOMESETTORE)
    <i>HTTP/1.1 500 Internal Server Error
    Connection: close
    Server: SAP J2EE Engine/7.00
    Content-Type: text/xml; charset=UTF-8
    Date: Fri, 21 Sep 2007 14:29:57 GMT
    Set-Cookie: <value is hidden>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>java.sql.SQLException: com.sap.sql.log.OpenSQLException: The SQL statement <b>"SELECT NOMESETTORE, MIN(? - "GIORNO") AS GIORNI FROM SRS_DATEINFORTUNI WHERE NOMEDITTA = ? AND NOMEAREA= ? GROUP BY NOMESETTORE ORDER BY NOMESETTORE"</b> <u>contains the syntax error[s]: - 1:25 - the arithmetic expression >>? - "GIORNO"<< contains a host variable (parameter marker)</u></faultstring><detail><ns1:getGiorniSettori_com.akhela.giorniSenzaInfortuni.ejb.exception.GiorniSenzaInfortuniException xmlns:ns1='urn:GiorniSenzaInfortuniWSWsd/GiorniSenzaInfortuniWSVi'></ns1:getGiorniSettori_com.akhela.giorniSenzaInfortuni.ejb.exception.GiorniSenzaInfortuniException></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope></i>
    The variable '?' is the today date, the difference <b>"(?-GIORNO)"</b> is an int..
    Moreover in my DAO class the query is <b>"SELECT NOMESETTORE, MIN(? - GIORNO) AS GIORNI FROM SRS_DATEINFORTUNI WHERE NOMEDITTA = ? AND NOMEAREA= ? GROUP BY NOMESETTORE ORDER BY NOMESETTORE</b>", instead in the error message is reported <b>MIN(? - "GIORNO")</b>...
    We have tryed also with alternative query, for example we used <b>"MIN(SYSDATA - GIORNO)"</b> but <b>SYSDATA</b> was interpreted as column name and  not found....
    Any help???
    Best Regards

    Hi, I found something about the Host Variable (http://help.sap.com/saphelp_nw70/helpdata/en/ed/dbf8b7823b084f80a6eb7ad43bdbb9/content.htm), there explain that if you want to use an host variable you have to put ':' as prefix..
    My problem is that <u>I need to extract the minimum of the subtraction between two dates:</u>
    Query <b>MIN(? - GIORNO)</b> --> <i>Error: the arithmetic expression >>? - "GIORNO"<< contains a host variable (parameter marker)</i>
    So I tried to use the ':' as indicated in the manual..
    <b>MIN:(? - GIORNO)</b> --> - <i>SQL syntax error: the token ":" was not expected here
                   - expecting LPAREN, found ':'</i>
    <b>MIN(:(? - GIORNO))</b> --> <i>- 1:25 - Open SQL syntax error: :PARAMETER not allowed
                   - 1:26 - SQL syntax error: the token "(" was not expected here
                   - 1:26 - expecting ID, found '('</i>
    Then I tried to avoid the MIN() function and I tried to do just the subtraction:
    <b>? - GIORNO</b> --><i> - 1:21 - the arithmetic expression >>? - "GIORNO"<< contains a host variable (parameter marker)</i>
    <b>:(? - GIORNO)</b> --> <i>- 1:21 - Open SQL syntax error: :PARAMETER not allowed
                - 1:22 - SQL syntax error: the token "(" was not expected here
                - 1:22 - expecting ID, found '('</i>
    <b>'2007-09-24' - GIORNO</b> --> <i>- 1:34 - SQL syntax error: first argument of operator "-" must be a number, date/time or interval
                     - 1:43 - SQL syntax error: arguments of operator "-" do not have correct types
                     - 1:43 - SQL syntax error: derived columns in SELECT list with AS must be values</i>
    <b>GIORNO - GIORNO</b> --> <i>- 1:21 - the group by list and the select list are inconsistent: the column >>"GIORNO"<< is neither grouped nor aggregated
                  - 1:30 - the group by list and the select list are inconsistent: the column >>"GIORNO"<< is neither grouped nor aggregated</i>
    Why these parts of query are not accepted???
    I don't understand why... I hope you can help me.
    Best Regards
    Alessandro

  • Weird Problem with Add Row Button in Master Detail Page

    I have a page that was created with a Master Detail Wizard. When I click the Add Row button on our Production Environment, the row counter increments BUT no blank row shows on the screen.
    In our Development Environment, when I click the Add Row button, a blank row appears as expected. Thinking there was some problem with the production app, I exported the Dev version and imported into Production. Still no blank row.
    Thinking perhaps it had something to do with the data, I copied our production application data back into the development application tables. Still, the development app creates the blank row where the production version does not.
    I even used the same browser window for both environments and still get the same results. This was working fine in production then just stopped one day.
    The only clue I have is that the Add Row WILL work if the Master Record has no details or less than a page worth. It seems to happen when the detail records are more than one page worth. Also, when I click the Add Row button, it goes to the last page of the list (say three pages of 10, 10, 6) but no blank row shows up. Again, works fine in the development environment no matter how many pages.
    Any ideas or suggestions why this is happening? Could there be some environment setting that is causing this to happen?

    I have a page that was created with a Master Detail Wizard. When I click the Add Row button on our Production Environment, the row counter increments BUT no blank row shows on the screen.
    In our Development Environment, when I click the Add Row button, a blank row appears as expected. Thinking there was some problem with the production app, I exported the Dev version and imported into Production. Still no blank row.
    Thinking perhaps it had something to do with the data, I copied our production application data back into the development application tables. Still, the development app creates the blank row where the production version does not.
    I even used the same browser window for both environments and still get the same results. This was working fine in production then just stopped one day.
    The only clue I have is that the Add Row WILL work if the Master Record has no details or less than a page worth. It seems to happen when the detail records are more than one page worth. Also, when I click the Add Row button, it goes to the last page of the list (say three pages of 10, 10, 6) but no blank row shows up. Again, works fine in the development environment no matter how many pages.
    Any ideas or suggestions why this is happening? Could there be some environment setting that is causing this to happen?

  • Two problems with Front Row

    Hello.
    I have all my music on my iMac and I am streaming it to my Mac Mini connected to my TV and stereo. What I have noticed is that the cover art on my music tracks don't show when I play any of the shared tracks or playlists, just the default picture with the two notes. Is there something I can do that will display it? I have tried to start iTunes and connect the shared library there before starting Front Row but that didn't help.
    I also have a problem with listing my pictures in Front Row. I have an external drive connected to my Mini that has all my pictures and movies. I have no trouble playing the movies (I created an alias in the Movies catalog to the Movies catalog on the external drive), but if I create an alias in the Pictures catalog to the Pictures catalog on the external drive the catalog isn't shown in Front Row. Do I have to import all the pictures into iPhoto? I don't use iPhoto at all because I always use the program that came with my Nikon camera that shows all the picture information, such as focal length, what lens I used, white balance setting, etc. (or Adobe Photoshop Elements it I want to make some changes). Is there something I can do to fix this too?
    Thanks,
    Erik Aleksander Moe

    Bernd, since your comp is still under warranty you may wish to give the online tech support a try -->HERE<--</a>. Click on the "Chat with a support agent" link.
    If you don't want to go that route, then I suggest that you call them over the phone. Hopefully, you have the AppleCare Protection Plan if your 90 day warranty ran out.
    Good Luck.
    G5 20' iMac w/iSight/Remote, 2.5GB RAM, 250GB HD Mac OS X (10.4) OS 10.4.3

  • Problem with multi row delete

    Hi, I'm new in apex and I tried to build master detail report on some view. Everything is cool but "delete checked" doesn't work.
    "ORA-20001: Error in multi row delete operation: row= , ORA-06502: PL/SQL: numeric or value error: NULL index table key value,"
    the problem is that I don't know what is wrong :), I have a special trigger "instead of delete on MY_VIEW", but in this error problem is not explained.
    Anybody knows what can be wrong? It is probably a problem with trigger or multi row doesn't work with views? I couldn't find how MRD knows what kind of statement use to delete rows so I don't know if the statement that program used is correct. In debug it lokks that:
    0.32: ...Do not run process "ApplyMRU", process point=AFTER_SUBMIT, condition type=REQUEST_IN_CONDITION, when button pressed=
    0.32: ...Process "ApplyMRD": MULTI_ROW_DELETE (AFTER_SUBMIT) #OWNER#:MY_VIEW:ITEM1:ITEM2
    0.33: Show ERROR page...
    0.33: Performing rollback...
    thanks for any help
    //sorry for english mistakes
    edit: it doesn't matter if I use in trigger delete from ... where item1=:OLD.item1 ; or if I use item1=:P4_item1 (which actually saves correct values)
    Edited by: user5931224 on 2009-06-13 08:55

    I realised that this is not a problem with trigger, I changed trigger to "NULL;" and problem is the same. Maybe sb used master detail on view not only on tables and know what can be wrong in this situation?

  • Problem with XMLDOM package (Oracle 10.2.0.1.0)

    Hi,
    I am using the dbms_xmldom package to generate xml files (specific structure).
    Below is the code but It produces nothing (dbms_output does not return) :
    DECLARE
    doc xmldom.DOMDocument;
    main_node xmldom.DOMNode;
    root_node xmldom.DOMNode;
    root_elmt xmldom.DOMElement;
    transmissionHeaderNode xmldom.DOMNode;
    transmissionHeaderElement xmldom.DOMElement;
    item_node xmldom.DOMNode;
    item_elmt xmldom.DOMElement;
    item_text xmldom.DOMText;
    buffer_problem CLOB;
    BEGIN
    doc := xmldom.newDOMDocument;
    main_node := xmldom.makeNode(doc);
    xmldom.setversion(doc,'1.0');
    root_elmt := xmldom.createElement(doc, 'InvoiceTransmission');
    root_node := xmldom.appendChild( main_node, xmldom.makeNode(root_elmt));
    transmissionHeaderElement := xmldom.createElement(doc, 'TransmissionHeader');
    transmissionHeaderNode := xmldom.appendChild(root_node, xmldom.makeNode(transmissionHeaderElement));
    item_elmt := xmldom.createElement(doc, 'TransmissionDateTime');
    item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    item_text := xmldom.createTextNode(doc, TO_CHAR(SYSDATE,'DD-MM-YYYY'));
    item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    item_elmt := xmldom.createElement(doc, 'IssuingOrganiszationID');
    item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    item_text := xmldom.createTextNode(doc,'0258');
    item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    item_elmt := xmldom.createElement(doc, 'Version');
    item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    item_text := xmldom.createTextNode(doc, 'IATA:ISXMLInvoiceV3.0');
    item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    xmldom.writetobuffer(doc, buffer_problem);
    dbms_output.put_line(buffer_problem);
    xmldom.freeDocument(doc);
    END;
    That's strange because when remove a code part like :
    item_elmt := xmldom.createElement(doc, 'Version');
    item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    item_text := xmldom.createTextNode(doc, 'IATA:ISXMLInvoiceV3.0');
    item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    I can get the ouput xml :
    <?xml version="1.0"?>
    <InvoiceTransmission>
    <TransmissionHeader>
    <TransmissionDateTime>26-10-2010</TransmissionDateTime>
    <IssuingOrganiszationID>0258</IssuingOrganiszationID>
    </TransmissionHeader>
    </InvoiceTransmission>
    I don't if it's a problem with xmldom or with dbms_output package...
    Please someone can help me ?

    Works fine for me
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
    SQL> set serveroutput on;
    SQL>
    SQL> DECLARE
      2     doc xmldom.DOMDocument;
      3     main_node xmldom.DOMNode;
      4     root_node xmldom.DOMNode;
      5     root_elmt xmldom.DOMElement;
      6 
      7     transmissionHeaderNode xmldom.DOMNode;
      8     transmissionHeaderElement xmldom.DOMElement;
      9     item_node xmldom.DOMNode;
    10     item_elmt xmldom.DOMElement;
    11     item_text xmldom.DOMText;
    12 
    13     buffer_problem CLOB;
    14 
    15  BEGIN
    16 
    17     doc := xmldom.newDOMDocument;
    18     main_node := xmldom.makeNode(doc);
    19     xmldom.setversion(doc,'1.0');
    20     root_elmt := xmldom.createElement(doc, 'InvoiceTransmission');
    21     root_node := xmldom.appendChild( main_node, xmldom.makeNode(root_elmt));
    22 
    23     transmissionHeaderElement := xmldom.createElement(doc, 'TransmissionHeader');
    24     transmissionHeaderNode := xmldom.appendChild(root_node, xmldom.makeNode(transmissionHeaderElement));
    25 
    26     item_elmt := xmldom.createElement(doc, 'TransmissionDateTime');
    27     item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    28     item_text := xmldom.createTextNode(doc, TO_CHAR(SYSDATE,'DD-MM-YYYY'));
    29     item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    30 
    31     item_elmt := xmldom.createElement(doc, 'IssuingOrganiszationID');
    32     item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    33     item_text := xmldom.createTextNode(doc,'0258');
    34     item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    35 
    36     item_elmt := xmldom.createElement(doc, 'Version');
    37     item_node := xmldom.appendChild(transmissionHeaderNode, xmldom.makeNode(item_elmt));
    38     item_text := xmldom.createTextNode(doc, 'IATA:ISXMLInvoiceV3.0');
    39     item_node := xmldom.appendChild(item_node, xmldom.makeNode(item_text));
    40 
    41     --buffer_problem := 'a';  -- added to initialize clob
    42     xmldom.writetobuffer(doc, buffer_problem);  -- change to writetoclob
    43     dbms_output.put_line(buffer_problem);
    44     xmldom.freeDocument(doc);
    45 
    46  END;
    47  /
    <?xml version="1.0"?>
    <InvoiceTransmission>
      <TransmissionHeader>
        <TransmissionDateTime>26-10-2010</TransmissionDateTime>
        <IssuingOrganiszationID>0258</IssuingOrganiszationID>
        <Version>IATA:ISXMLInvoiceV3.0</Version>
      </TransmissionHeader>
    </InvoiceTransmission>Suggestions:
    - Use dbms_xmldom instead of just xmldom. Oracle changed the name in the 9i days and xmldom is a synonym to dbms_xmldom.
    - Use .writeToClob intead of .writeToBuffer
    - I would suggest trying to upgrade to .4 as you pick up a lot of improvements and bug fixes. Whether what you are encountering is a bug I cannot say but would seem so.
    - See the FAQ under your sign-in name to learn how to use the tag to format the code like I did above.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Problem with WMS themes & Oracle MapViewer Version 11.1.1.2

    Hello, in my application I load the background raster from a external server using wms. With differents version of mapviewer 11 with a weblogic server (e.g: release 1, release 11.1.1.4) all it's allrigth, but when I change the mapviewer to release 11.1.1.2 I can't see the raster and I get the next error:
    21-sep-2011 11:33:10 oracle.sdovis.theme.WMSMapThemeDefinition setSrs
    INFO: Theme SRID set to 23030 for EPSG 82337
    21-sep-2011 11:33:10 oracle.sdovis.theme.WMSMapThemeProducer prepareData
    SEVERE: MAPVIEWER-01048: Cannot load WMS map image.
    21-sep-2011 11:33:10 oracle.sdovis.theme.DynGeomThemeProducer prepareData
    I can understand why..., I don't know what's is the problem because differents versions of mapviewer work without problem on the same weblogic server (Weblogic 11 patchset R2).
    Anyone know if mapviewer 11.1.1.2 has a problem with WMS?
    Thanks for your answer!!

    although with Oracle Fusion Middleware MapViewer Version 11g ps3 (11.1.1.4) and 11g ps4 (11.1.1.5.1) everything work ok in my WebLogic Server: 10.3.3.0, with Mapviewer Version 11.1.1.2 I get the next error:
    29-sep-2011 13:25:53 oracle.sdovis.theme.WMSMapThemeDefinition setSrs
    INFO: Theme SRID set to 23030 for EPSG 82337
    sun.awt.image.ImageFormatException: Not a JPEG file: starts with 0xff 0xd9
         at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
         at sun.awt.image.JPEGImageDecoder.produceImage(JPEGImageDecoder.java:119)
         at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:246)
         at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
         at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
    29-sep-2011 13:25:53 oracle.sdovis.theme.WMSMapThemeProducer prepareData
    SEVERE: MAPVIEWER-01048: Cannot load WMS map image.
    I've seen that the wms external service works ok and returns an url with the correct image, but something wrong happens inside of mapviewer that don't allow generate the image....

  • Problems with Enterprise Manager Oracle 10gR2

    Hi,
    The installation of 10gR2 on Windows 2000 seems to work.
    I only have a problem with web enterprise manager.
    I can connect to the database correctly and I can manage the database (creating tables, users and so on).
    The only problem is in the first page (home) of the database, accessing with the web enterprise manager.
    In fact I get this "error: java.lang.Exception: IOException in sending Request :: Connection refused", but I however access the db.
    I verified the DBSNMP user and it's active.
    Did someone get the same error?
    Excuse if I'm repeating a previous post, but I received answers about linux environment only (I have Windows 2000 server, instead).
    thanks a lot,
    Francesco

    We have in fact seen the same error. In our case, it appeared after the network guys moved the Oracle server from one domain to another. (This is not an action that I highly recommend, by the way.)
    I used emca to delete the Enterprise Manager agent and recreate it. For a single instance server not in a cluster or on a grid, the commands look like this:
    emca -deconfig dbcontrol db
    emca -config dbcontrol db
    That worked just fine. However, we started getting an "account locked" error when the Enterprise Manager started. And the result is the same as you described. The account is not locked by any means. If you ignore what you see on the screen about an error, you can go on and administer the database just fine. It's just when you get back to the home screen, it tells you that your account is locked and you are not in touch with the instance.
    I can make the error go away for awhile by stopping and starting the agent with
    emctl stop dbconsole
    emctl start dbconsole
    But the error comes back in a little while.
    We don't consider it a show stopper, since the database performs normally. It's just one of those things you wish it would not do.

  • Google style autosuggest with millions rows table

    Hi All,
    I'm exploring the ways of implementing a "google style autosuggest" on a table with no less than 30 millions rows. It has a field with an address (varchar) and I'd like to create a Ajax call while the user is typing that would suggest the user few addresses.
    I was thinking about using contains+fuzzy... but not sure if it will be fast enough and if it will return the right results.
    Any suggestions ?
    thanks

    2 million rows with XML type data
    link may be of your interest.
    HTH
    Girish Sharma

  • Still problem with single-row subquery returns more than one row

    //i did join each table but query runs forever and fail. looks Cartesian join so comes up the following SQL
    the following query has a problem. would you please help me, please
    Select pe.expense_id
    ,PE.CODE
    ,PE.PROJECT_ID
    ,PE.LDATE
    ,PE.INAMOUNT pe_amount
    ,(SELECT TRX.INV_AMOUNT FROM TRXEXPENSES TRX
    WHERE PE.EXPENSE_ID=TRX.EXPENSE_ID) AS invamount
    ,(SELECT RE.AMOUNT FROM REEXPENSES RE WHERE
    PE.EXPENSE_ID=RE.EXPENSE_ID) AS recogamount
    ,(SELECT MLE.M_AMOUNT FROM MATEXPENSES MLE
    WHERE PE.EXPENSE_ID=MLE.EXPENSE_ID) AS matamount
    from EXPENSES PE
    where pe.expense_id=5600
    group by expense_id,CODE,PROJECT_ID,LDATE,inamount
    //get error message
    ora-01427:single-row subquery returns more than one row
    //check database
    select expense_id,count(*) from TRXEXPENSES
    where expense_id in(select expense_id from
    expenses)
    group by expense_id
    having count(*)>1
    //here is duplicate record a lot
    EXPENSE_ID     COUNT(*)
    4176     2
    5600     3
    9572     2
    9573     2
    9574     2

    Yes, Expense_id has so many returning rows for trx.inv_amount from trxexpenses in subquery.
    I want to show Expense_id with retruning rows using the above query.
    ex)The result of the query is like that;
    Expense_ Id project_id Ldate InvAmount RecogAmount MatAmount
    5600 123 3/2/02 $100(InvAmount)
    5600 432 3/12/02 $200(recogAmount)
    5600 432 4/12/02 $250(MatAmount)
    Thank you so much
    Message was edited by:
    user524064
    Message was edited by:
    user524064

  • Problems with multiple row operations in a dataTable

    Dear fellows,
    I have a strange problem, i want to do multiple row deletion in a dataTable. Can any one tell me a better way to do it. Because the way i am doing it, it is causing me strange problems. In some places it start working and in some it dont.
    The way i am doing it, it has the following code:
    <h:form>
    <h:dataTable id="list" value="#{availableRoomsList}"  var="RoomTypes" >
    <h:column>
         <f:facet name="header">
                 <h:outputText value="Select"/>
           </f:facet>
                 <h:selectBooleanCheckbox value="#{roomSelection[RoomTypes]}" >
                   </h:selectBooleanCheckbox>
    </h:column>
    <h:column>
         <f:facet name="header">
              <h:outputText value="Available Date"/>
         </f:facet>
         <h:outputText value="#{RoomTypes.availableDate}"/>
    </h:column>
    <h:column>
         <f:facet name="header">
              <h:outputText value="Available Rooms"/>
         </f:facet>
         <h:outputText value="#{RoomTypes.noOfRooms}"/>
    </h:column>
    </h:dataTable>
    <h:commandButton value="delete Selected Rooms" action="#{RoomResvAction.deleteRooms}" />
    </h:form>Now the back end code that i am using is as follows:
         private List<HotelRoomTypes> availableRoomsList;
          Map<HotelRoomTypes, Boolean> roomSelection = new HashMap<HotelRoomTypes, Boolean>();
             public String deleteRoom(){
                  System.out.println("In the delete selection method aad.");
                  try{
                       for (HotelRoomTypes item: availableRoomsList) {
                          Boolean selected = roomSelection.get(item);
                          if (selected!=null && selected) {
                               roomSelection.put(item, false);
                               //deleteRoom(item);
                  }catch(Exception e){
                       //e.printStackTrace();
                  return null;
             }The problem with the JSF code is when i click the command button it do not calls the associated action method with it. i dont know what is the problem with the code.
    And as far as the backend code is concern it should work fine.
    can anybody help me on this matter.

    thanks BalusC ,
    I will see this example and let you know, thanx for the help.
    but also please try and see my code and tell me what is wrong in it. because at some places it works and at some it simply dont . dont know why?
    well once again thanx for the help

Maybe you are looking for

  • How can I stabilise large transfers of data & retain full smart playlists?

    Hi, I hope somebody can help. Now that I have more than 20,000 songs in my iTunes, all of which I want to sync, my ipod classic 160gb goes into the 'infinite reset loop', or, when occasionally appearing to sync correctly, ends up with 0 songs, 0 vide

  • DVD Drive not recognized in secondary IDE slot

    PLease help.  I removed my DVD player from the primary IDE slot and plugged into the secondary IDE slot and now it is not recognized by either the BIOS or XP.  I installed a new ATA hard drive into the primary IDE slot.  The ATA drive is recognized a

  • Af:tree inside af:accordion is not showing all the nodes

    Hi All, I am using Oracle JDeveloper 11g Release 2. I have af:tree enclosed inside af:panelStretchLayout, displaying data from database table. af:tree is not displaying all data(nodes) in the space available to it. It is hiding the data at middle. I

  • Compiler Errors With Class Definitions and Clients

    Hi there, I need help with some code, here it is. import java.util.*; import java.text.*; public class InvestCalc {      //declaration of instance variables      private double interest, principal;      //default constructor, sets interest and princi

  • Need help with openDialog

    In the Photoshop script I'm writing, I ask the user to open a file using:      open(File(openDialog())); That works fine. But the user will always be opening an Illustrator (.ai) file. Normally that brings up a dialog box called "Import PDF". But tha