Protected memory exception during bulkcopy of table with LOB columns

Hi,
I'm using ADO BulkCopy to transfer data from a SqlServer database to Oracle. In some cases, and it seems to only happen on some tables with LOB columns, I get the following exception:
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Oracle.DataAccess.Client.OpsBC.Load(IntPtr opsConCtx, OPOBulkCopyValCtx* pOPOBulkCopyValCtx, IntPtr pOpsErrCtx, Int32& pBadRowNum, Int32& pBadColNum, Int32 IsOraDataReader, IntPtr pOpsDacCtx, OpoMetValCtx* pOpoMetValCtx, OpoDacValCtx* pOpoDacValCtx)
at Oracle.DataAccess.Client.OracleBulkCopy.PerformBulkCopy()
at Oracle.DataAccess.Client.OracleBulkCopy.WriteDataSourceToServer()
at Oracle.DataAccess.Client.OracleBulkCopy.WriteToServer(IDataReader reader)
I'm not sure exactly what conditions trigger this exception; perhaps only when the LOB data is large enough?
I'm using Oracle 11gR2.
Has anyone seen this or have an idea how to solve it?
If I catch the exception and attempt row-by-row copying, I then get "ILLEGAL COMMIT" exceptions.
Thanks,
Ben

From the doc:
Data Types Supported by Bulk Copy
The data types supported by Bulk Copy are:
ORA_SB4
ORA_VARNUM
ORA_FLOAT
ORA_CHARN
ORA_RAW
ORA_BFLOAT
ORA_BDOUBLE
ORA_IBDOUBLE
ORA_IBFLOAT
ORA_DATE
ORA_TIMESTAMP
ORA_TIMESTAMP_TZ
ORA_TIMESTAMP_LTZ
ORA_INTERVAL_DS
ORA_INTERVAL_YM
I can't find any documentation on these datatypes (I'm guessing these are external datatype constants used by OCI??). This list suggests ADO.NET bulk copy of LOBs isn't supported at all (although it works fine most of the time), unless I'm misreading it.
The remaining paragraphs don't appear to apply to me.
Thanks,
Ben

Similar Messages

  • When comparing database tables with lob columns via "Database diff" in different environments indexes are shown as different

    When using "Database diff" selecting other schemas only for compare own objects are shown too!Hi!
    For tables with lob columns (clob, blob, etc.) indexes with system names are automatically created per lob column.
    If I am on different database instances (eg. dev/test) these system names can differ and are shown as differences, but these is a false positive.
    Unfortunately there is now way to influence the index names.
    Any chance to fix this in sql developer?
    Best regards
    Torsten

    Only the Sql Dev team can respond to that question.
    Such indexes should ONLY be created by Oracle and should NOT be part of any DDL that you, the user, maintains outside the database since they will be created by Oracle when the table is created and will be named at that time.
    It is up to the Sql Dev team to decide whether to deal with that issue and how to deal with it.

  • Oracle 11.2 - Perform parallel DML on a non partitioned table with LOB column

    Hi,
    Since I wanted to demonstrate new Oracle 12c enhancements on SecureFiles, I tried to use PDML statements on a non partitioned table with LOB column, in both Oracle 11g and Oracle 12c releases. The Oracle 11.2 SecureFiles and Large Objects Developer's Guide of January 2013 clearly says:
    Parallel execution of the following DML operations on tables with LOB columns is supported. These operations run in parallel execution mode only when performed on a partitioned table. DML statements on non-partitioned tables with LOB columns continue to execute in serial execution mode.
    INSERT AS SELECT
    CREATE TABLE AS SELECT
    DELETE
    UPDATE
    MERGE (conditional UPDATE and INSERT)
    Multi-table INSERT
    So I created and populated a simple table with a BLOB column:
    SQL> CREATE TABLE T1 (A BLOB);
    Table created.
    Then, I tried to see the execution plan of a parallel DELETE:
    SQL> EXPLAIN PLAN FOR
      2  delete /*+parallel (t1,8) */ from t1;
    Explained.
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 3718066193
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |  2048 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |  2048 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |  2048 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    PLAN_TABLE_OUTPUT
    Note
       - dynamic sampling used for this statement (level=2)
    And I finished by executing the statement.
    SQL> commit;
    Commit complete.
    SQL> alter session enable parallel dml;
    Session altered.
    SQL> delete /*+parallel (t1,8) */ from t1;
    2048 rows deleted.
    As we can see, the statement has been run as parallel:
    SQL> select * from v$pq_sesstat;
    STATISTIC                      LAST_QUERY SESSION_TOTAL
    Queries Parallelized                    1             1
    DML Parallelized                        0             0
    DDL Parallelized                        0             0
    DFO Trees                               1             1
    Server Threads                          5             0
    Allocation Height                       5             0
    Allocation Width                        1             0
    Local Msgs Sent                        55            55
    Distr Msgs Sent                         0             0
    Local Msgs Recv'd                      55            55
    Distr Msgs Recv'd                       0             0
    11 rows selected.
    Is it normal ? It is not supposed to be supported on Oracle 11g with non-partitioned table containing LOB column....
    Thank you for your help.
    Michael

    Yes I did it. I tried with force parallel dml, and that is the results on my 12c DB, with the non partitionned and SecureFiles LOB column.
    SQL> explain plan for delete from t1;
    Explained.
    | Id  | Operation             | Name     | Rows  | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | DELETE STATEMENT      |          |     4 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  DELETE               | T1       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR      |          |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)| :TQ10000 |     4 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR |          |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL| T1       |     4 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    The DELETE is not performed in Parallel.
    I tried with another statement :
    SQL> explain plan for
    2        insert into t1 select * from t1;
    Here are the results:
    11g
    | Id  | Operation                | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT         |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  LOAD TABLE CONVENTIONAL | T1       |       |       |            |          |        |      |            |
    |   2 |   PX COORDINATOR         |          |       |       |            |          |        |      |            |
    |   3 |    PX SEND QC (RANDOM)   | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   4 |     PX BLOCK ITERATOR    |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    |   5 |      TABLE ACCESS FULL   | T1       |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    12c
    | Id  | Operation                          | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
    |   0 | INSERT STATEMENT                   |          |     4 |  8008 |     2   (0)| 00:00:01 |        |      |            |
    |   1 |  PX COORDINATOR                    |          |       |       |            |          |        |      |            |
    |   2 |   PX SEND QC (RANDOM)              | :TQ10000 |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | P->S | QC (RAND)  |
    |   3 |    LOAD AS SELECT                  | T1       |       |       |            |          |  Q1,00 | PCWP |            |
    |   4 |     OPTIMIZER STATISTICS GATHERING |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
    |   5 |      PX BLOCK ITERATOR             |          |     4 |  8008 |     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
    It seems that the DELETE statement has problems but not the INSERT AS SELECT !

  • ASSM and table with LOB column

    I have a tablespace created with ASSM option. I've heard about that tables with LOB columns can't take the advantage of ASSM.
    I made a test : create a table T with BLOB column in a ASSM tablespace. I succeeded!
    Now I have some questions:
    1. Since the segments of table T can't use ASSM to manage its blocks, what's the actrual approach? The traditional freelists??
    2. Will there be some bad impacts on the usage of the tablespace if table T becomes larger and larger and is used frequently?
    Thanks in advance.

    Can you explain what you mean by #1 because I believe it is incorrect and it does not make sense in my personal opinion. You can create a table in an ASSM tablespace that has a LOB column from 9iR2 on I believe (could be wrong). LOBs don't follow the traditional PCTFREE/PCTUSED scenario. They allocate data in what are called "chunks" that you can define at the time you create the table. In fact I think the new SECUREFILE LOBs actually require ASSM tablespaces.
    HTH!

  • Export table with LOB column

    Hi!
    I have to export table with lob column (3 GB is the size of lob segment) and then drop that lob column from table. Table has about 350k rows.
    (I was thinking) - I have to:
    1. create new tablespace
    2. create copy of my table with CTAS in new tablespace
    3. alter new table to be NOLOGGING
    4. insert all rows from original table with APPEND hint
    5. export copy of table using transport tablespace feature
    6. drop newly created tablespace
    7. drop lob column and rebuild original table
    DB is Oracle 9.2.0.6.0.
    UNDO tablespace limited on 2GB with retention 10800 secs.
    When I tried to insert rows to new table with /*+append*/ hint operation was very very slow so I canceled it.
    How much time should I expect for this operation to complete?
    Is my UNDO sufficient enough to avoid snapshot too old?
    What do you think?
    Thanks for your answers!
    Regards,
    Marko Sutic

    I've seen that document before I posted this question.
    Still I don't know what should I do. Look at this document - Doc ID:     281461.1
    From that document:
    FIX
    Although the performance of the export cannot be improved directly, possible
    alternative solutions are:
    +1. If not required, do not use LOB columns.+
    or:
    +2. Use Transport Tablespace export instead of full/user/table level export.+
    or:
    +3. Upgrade to Oracle10g and use Export DataPump and Import DataPump.+
    I just have to speed up CTAS little more somehow (maybe using parallel processing).
    Anyway thanks for suggestion.
    Regards,
    Marko

  • Table with LOB column

    Hi,
    I have a proble. How to move a table with LOB colum? How to create a table with LOB column by specifying another tablespace for LOB column?
    Please help me.
    Regards,
    Mathew

    What is it that you are not able to find?
    The link that I provided was answer to your second question.

  • Shrink table with LOB column

    Hello,
    I have a table with 1.000.000 BLOB records. I updated almost a half of the records with NULL. Now I try to reclaim the free space using:
    ALTER TABLE table MODIFY LOB (column) (SHRINK SPACE);
    It's still running from some time, but what I am surprised about is that this operation generates a lot of redo logs (the full table had 30Gb, after the update it should have 15Gb, and by now I already have about 8Gb of generated archive logs).
    Do you know why this operation generates redo logs?
    Thank you,
    Adrian

    The REDO stream that Oracle generates is full of physical addresses (i.e. ROWIDs). If you run an update statement
    UPDATE some_table
      SET some_column = 4
    WHERE some_key = 12345;Oracle actually records in the REDO the logical equivalent of
    UPDATE some_table
      SET some_column = 4
    WHERE ROWID = <<some ROWID>>That is, Oracle converts your logical SQL statement into a series of updates to a series of physical addresses. That's a really helpful thing if the REDO has to be re-applied at a later date because Oracle doesn't have to do all the work of processing the logical SQL statement again (this would be particularly useful if your UPDATE statement were running a bunch of queries that took minutes or hours to return).
    But that means that if you are physically moving rows around, you have to record that fact in the redo stream. Otherwise, if you had to re-apply the redo information (or undo information) in the future, the physical addresses stored in the redo logs may not match the physical addresses in the database. That is, if you move the row with SOME_KEY = 12345 from ROWID A to ROWID B and move the row with SOME_KEY = 67890 from ROWID C to ROWID A, you have to record both of those moves in the redo stream so that the statement
    UPDATE some_table
      SET some_column = 4
    WHERE ROWID = <<ROWID A>>updates the correct row.
    Justin

  • Conflict resolution for a table with LOB column ...

    Hi,
    I was hoping for some guidance or advice on how to handle conflict resolution for a table with a LOB column.
    Basically, I had intended to handle the conflict resolution using the MAXIMUM prebuilt update conflict handler. I also store
    the 'update' transaction time in the same table and was planning to use this as the resolution column to resolve the conflict.
    I see however these prebuilt conflict handlers do not support LOB columns. I assume therefore I need to code a customer handler
    to do this for me. I'm not sure exactly what my custom handler needs to do though! Any guidance or links to similar examples would
    be very much appreciated.

    Hi,
    I have been unable to make any progress on this issue. I have made use of prebuilt update handlers with no problems
    before but I just don't know how to resolve these conflicts for LOB columns using custom handlers. I have some questions
    which I hope make sense and are relevant:
    1.Does an apply process detect update conflicts on LOB columns?
    2.If I need to create a custom update/error handler to resolve this, should I create a prebuilt update handler for non-LOB columns
    in the table and then a separate one for the LOB columns OR is it best just to code a single custom handler for ALL columns?
    3.In my custom handler, I assume I will need to use the resolution column to decide whether or not to resolve the conflict in favour of the LCR
    but how do I compare the new value in the LCR with that in the destination database? I mean how do I access the current value in the destination
    database from the custom handler?
    4.Finally, if I need to resolve in favour of the LCR, do I need to call something specific for LOB related columns compared to non-LOB columns?
    Any help with these would be very much appreciated or even if someone can direct me to documentation or other links that would be good too.
    Thanks again.

  • Add columns to a table with lob column

    Hi,
    Just a quick question: is there a performance penalty after adding columns to a table with a lob fied? the lob field is now the last column in the table and via via I was told that adding columns will impact badly the IO performance on the table if the lob field isn't anymore the last column. The table is on a Oracle 10.2.0.3 version.
    thanks. regards
    Ivan

    Havent heard of performance degradation specifically due to a LOB column not being the last column in a table (although there are several issues with just having a LOB column in a table).
    You may want to build a test database to test it out. It should be easy to run tests comparing one with the additional column and one the original to prove or refute it. The results would be interesting to learn - please post them up if you intend to test it out.

  • Exact space occupied by a table with LOB column

    Hi Gurus,
    I need to check the exact amount of space used (in bytes or MB) by a table which is having a BLOB column.
    I tried the following query but it is not giving the proper usage.
    select segment_name , sum(bytes)
    from dba_extents
    where segment_type='TABLE'
    and segment_name in ('TEST_CLOB','TEST_BLOB','TEST_CLOB_ADV','TEST_BLOB_ADV')
    group by segment_name;
    I even tried the following stored procedure
    create or replace procedure sp_get_table_size (p_table_name varchar2)
    as
        l_segment_name          varchar2(30);
        l_segment_size_blocks   number;
        l_segment_size_bytes    number;
        l_used_blocks           number; 
        l_used_bytes            number; 
        l_expired_blocks        number; 
        l_expired_bytes         number; 
        l_unexpired_blocks      number; 
        l_unexpired_bytes       number; 
    begin
        select segment_name
        into l_segment_name
        from dba_lobs
        where table_name = p_table_name;
        dbms_output.put_line('Segment Name=' || l_segment_name);
        dbms_space.space_usage(
            segment_owner           => 'dldbo', 
            segment_name            => l_segment_name,
            segment_type            => 'LOB',
            partition_name          => NULL,
            segment_size_blocks     => l_segment_size_blocks,
            segment_size_bytes      => l_segment_size_bytes,
            used_blocks             => l_used_blocks,
            used_bytes              => l_used_bytes,
            expired_blocks          => l_expired_blocks,
            expired_bytes           => l_expired_bytes,
            unexpired_blocks        => l_unexpired_blocks,
            unexpired_bytes         => l_unexpired_bytes
        dbms_output.put_line('segment_size_blocks       => '||  l_segment_size_blocks);
        dbms_output.put_line('segment_size_bytes        => '||  l_segment_size_bytes);
        dbms_output.put_line('used_blocks               => '||  l_used_blocks);
        dbms_output.put_line('used_bytes                => '||  l_used_bytes);
        dbms_output.put_line('expired_blocks            => '||  l_expired_blocks);
        dbms_output.put_line('expired_bytes             => '||  l_expired_bytes);
        dbms_output.put_line('unexpired_blocks          => '||  l_unexpired_blocks);
        dbms_output.put_line('unexpired_bytes           => '||  l_unexpired_bytes);
    end sp_get_table_size;
    But it is giving the error
    Error starting at line 298 in command:
    exec sp_get_table_size ('TEST_CLOB_ADV')
    Error report:
    ORA-03213: Invalid Lob Segment Name for DBMS_SPACE package
    ORA-06512: at "SYS.DBMS_SPACE", line 210
    ORA-06512: at "SYS.SP_GET_TABLE_SIZE", line 20
    ORA-06512: at line 1
    03213. 00000 -  "Invalid Lob Segment Name for DBMS_SPACE package"
    *Cause:    The Lob Segment specified in the DBMS_SPACE operation does not
               exist.
    *Action:   Fix the Segment Specification
    Although the LOB section is specified in create table syntax.
    Please help.
    Thanks
    Amitava.

    Here is a query that I use, to associate space from all segments under s schema (LOBs, indexes, etc.) back to the tables they support:
    with schema as (select '&your_schema' as name from dual),
    segs_by_table as(
      select 'TABLE' seg_supertype, seg.segment_name as related_table, seg.* from dba_segments seg, schema where seg.owner = schema.name and seg.segment_type in ('TABLE','TABLE PARTITION','TABLE SUBPARTITION')
      union all
      select 'INDEX' seg_supertype, i.table_name as related_table, seg.* from dba_segments seg, dba_indexes i, schema where seg.owner = schema.name and seg.segment_type in ('INDEX','INDEX PARTITION','INDEX SUBPARTITION')
      and Seg.OWNER = i.owner and seg.segment_name = i.index_name
      union all
      select 'LOB' seg_supertype, lob.table_name as related_table, seg.* from dba_segments seg, dba_lobs lob, schema where seg.owner = schema.name and seg.segment_type in ('LOBSEGMENT','LOB PARTITION')
      and seg.OWNER = lob.owner and seg.segment_name = lob.segment_name
    union all
      select 'LOB' seg_supertype, lob.table_name as related_table, seg.* from dba_segments seg, dba_lobs lob, schema where seg.owner = schema.name and seg.segment_type in ('LOBINDEX')
    and seg.OWNER = lob.owner and seg.segment_name = lob.index_name
    select owner,related_table,
    segment_type,   segment_name , partition_name, blocks
    from segs_by_table, schema
    where owner = schema.name
    --and related_table like 'BLOB_TEST%'
    order by owner,related_table,  segment_type, segment_name;
    You can revise as needed to limit to a single table, to summarize, etc.
    Mike

  • Inserting and retrieving Word docs from a custom table with LOB column

    Hi,
    I'm sure I'm not looking around in the right place for some docs on this.
    Basically I need to build a custom interface in Web PL/SQL to allow a MS Word doc to be uploaded for a user's browser and also a mechanism to retrieve the doc.
    Not sure what is the 'best' column datatype to use for this either.
    Portal Forms are out of the question due to inflexibility of application.
    Cheers,
    John

    bumping to the top!

  • Sparse table with many columns

    Hi,
    I have a table that contains around 800 columns. The table is a sparse table such that many rows
    contain up to 50 populated columns (The others contain NULL).
    My questions are:
    1. Table that contains many columns can cause a performance problem? Is there an alternative option to
    hold table with many columns efficiently?
    2. Does a row that contains NULL values consume storage space?
    Thanks
    dyahav

    [NULLs Indicate Absence of Value|http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10743/schema.htm#sthref725]
    A null is the absence of a value in a column of a row. Nulls indicate missing, unknown, or inapplicable data. A null should not be used to imply any other value, such as zero. A column allows nulls unless a NOT NULL or PRIMARY KEY integrity constraint has been defined for the column, in which case no row can be inserted without a value for that column.
    Nulls are stored in the database if they fall between columns with data values. In these cases they require 1 byte to store the length of the column (zero).
    Trailing nulls in a row require no storage because a new row header signals that the remaining columns in the previous row are null. For example, if the last three columns of a table are null, no information is stored for those columns. In tables with many columns, the columns more likely to contain nulls should be defined last to conserve disk space.
    Most comparisons between nulls and other values are by definition neither true nor false, but unknown. To identify nulls in SQL, use the IS NULL predicate. Use the SQL function NVL to convert nulls to non-null values.
    Nulls are not indexed, except when the cluster key column value is null or the index is a bitmap index.>
    My guess for efficiently storing this information would be to take any columns that are almost always null and place them at the end of the table definition so they don't consume any space.
    HTH!

  • Select count(x) on a table with many column numbers?

    Hi all,
    i have a table with physical data with 850 (!!) colums and
    ~1 Million rows.
    The select count(cycle)from test_table Statement is very, very slow
    WHY?
    The select count(cycle)from test_table is very fast by e.g 10 Colums. WHY?
    What has the number of columns, to do with the SELECT count(cyle).... statement?
    create test_table(
    cycle number primary key,
    stamp date,
    sensor 1 number,
    sensor 2 number,
    sensor_849 number,
    sensor_850 number);
    on W2K Oracle 9i Enterprise Edition Release 9.2.0.4.0 Production
    Can anybody help me?
    Many Thanks
    Achim

    hi lennert, hi all,
    many thanks for all the answers. I�m not an Oracle expert.
    Sorry for my english.
    Hi Lennert,
    you are right, what must i do to use the index in the
    query? Can you give me a pointer of direction, please?
    Many greetings
    Achim
    select count(*) from w4t.v_tfmc_3_blocktime;
    COUNT(*) ==> Table with 3 columns (very fast)
    306057
    Ausf�hrungsplan
    0 SELECT STATEMENT Optimizer=CHOOSE
    1 0 SORT (AGGREGATE)
    2 1 TABLE ACCESS (FULL) OF 'V_TFMC_3 _BLOCKTIME'    
    Statistiken
    0 recursive calls
    0 db block gets
    801 consistent gets
    794 physical reads
    0 redo size
    388 bytes sent via SQL*Net to client
    499 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed
    select count(*) from w4t.v_tfmc_3_value;
    COUNT(*)==> Table with 850 columns (very slow)
    64000
    Ausf�hrungsplan
    0 SELECT STATEMENT Optimizer=CHOOSE
    1 0 SORT (AGGREGATE)
    2 1 TABLE ACCESS (FULL) OF 'V_TFMC_3 _VALUE'    
    Statistiken
    1 recursive calls
    1 db block gets
    48410 consistent gets
    38791 physical reads
    13068 redo size
    387 bytes sent via SQL*Net to client
    499 bytes received via SQL*Net from client
    2 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    1 rows processed

  • Error while importing a table with BLOB column

    Hi,
    I am having a table with BLOB column. When I export such a table it gets exported correctly, but when I import the same in different schema having different tablespace it throws error
    IMP-00017: following statement failed with ORACLE error 959:
    "CREATE TABLE "CMM_PARTY_DOC" ("PDOC_DOC_ID" VARCHAR2(10), "PDOC_PTY_ID" VAR"
    "CHAR2(10), "PDOC_DOCDTL_ID" VARCHAR2(10), "PDOC_DOC_DESC" VARCHAR2(100), "P"
    "DOC_DOC_DTL_DESC" VARCHAR2(100), "PDOC_RCVD_YN" VARCHAR2(1), "PDOC_UPLOAD_D"
    "ATA" BLOB, "PDOC_UPD_USER" VARCHAR2(10), "PDOC_UPD_DATE" DATE, "PDOC_CRE_US"
    "ER" VARCHAR2(10) NOT NULL ENABLE, "PDOC_CRE_DATE" DATE NOT NULL ENABLE) PC"
    "TFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS"
    " 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "TS_AGIMSAPPOLOLIVE030"
    "4" LOGGING NOCOMPRESS LOB ("PDOC_UPLOAD_DATA") STORE AS (TABLESPACE "TS_AG"
    "IMSAPPOLOLIVE0304" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE L"
    "OGGING STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEF"
    "AULT))"
    IMP-00003: ORACLE error 959 encountered
    ORA-00959: tablespace 'TS_AGIMSAPPOLOLIVE0304' does not exist
    I used the import command as follows :
    imp <user/pwd@conn> file=<dmpfile.dmp> fromuser=<fromuser> touser=<touser> log=<logfile.log>
    What can I do so that this table gets imported correctly?
    Also tell me "whether the BLOB is stored in different tablespace than the default tablespace of the user?"
    Thanks in advance.

    Hello,
    U can either
    1) create a tablespace with the same name in destination where you are trying to import.
    2) get the ddl of the table, modify the tablespace name to reflect the existing tablespace name in destination and run the ddl in the destination database, and run your import command with option ignore=y--> which will ignore all the create errors.
    Regards,
    Vinay

  • HOW TO CREATE A TABLE WITH 800 COLUMNS?

    I have to create a table with 800 columns.I know the create statement to create a table but it will take more time.
    So tell me the other method.

    If you really think that you have to store 800 values for a given entity, it would be a wise idea if you store you information in columnar fashion. Make a main table and a attribute table, keep the primary identifier in the  main table and store other attributes in the attribute table where you can keep the primary key of the first table as foreign key (not necessary) to maintain the relationship.
    eg.
    emp_id
    emp_name
    dob
    city
    state
    country
    pincode
    1
    Mr X
    01/01/1990
    ABC
    ZXC
    MMM
    12345
    Can be stored as
    Main Table
    emp_id
    emp_name
    1
    Mr X
    Attribute Table
    attr_id
    emp_id
    attr_nam
    attr_value
    1
    1
    dob
    01/01/1990
    2
    1
    city
    ABC
    3
    1
    state
    ZXC
    4
    1
    country
    MMM
    5
    1
    pincode
    12345
    Creating table with large number of columns is bad design as suggested by other Gurus.
    Thanks

Maybe you are looking for

  • Creative, if you can't help me or let me know if I should buy elsewhe

    OK after having my last thread Hijacked by someone else and my problem going unheard, I need to know if I should rip out your soundcard and buy somewhere else or if there is hope that maybe this can be fixed. http://forums.creative.com/creativel...es

  • Getting error while posting GR using IBD from BAPI_GOODSMVT_CREATE

    Hi Experts, While posting GR from IBD using BAPI_GOODSMVT_CREATE with all necessary values like plant,material,mvttype and serial numbers etc... getting error from BAPI return "1  E VLA 315 Item 000010 requires serial numbers; use the inbound deliver

  • Dump while Select files - Confirm Target step in MOPZ

    Hi All, I'm getting dump while trying to confirm files in mopz. This is in the step confirm target. Please see this link, issue exactly what we have but the notes cannot be implemented which is in this link Maintenance Optimizer: "Value loss during a

  • Steps to configure IP Address

    Can any one explain me the full steps to change ip address in solaris 2.5,7 & solaris8 on sparc & x86 platform? any differences are in commands in all versions? if yes explain me

  • Excution time counter

    Hi, I got a simple little question: I've search without succes for a function or Express VI that justs return me the time of an execution of my application. I'm reading data from an external device and I need to check about frequency. So, if there's