Could it be? ... Stray LOB segments!

Oracle 11.2 on Linux.

When I run the following query I get shows 4 lines of output:
select  owner, segment_name, partition_name, segment_type, segment_subtype, tablespace_name
  from  dba_segments  
 where  segment_name like '%40231008C%' ;


OWNER  SEGMENT_NAME                 PARTITION_NAME  SEGMENT_TYPE  SEGMENT_SUBTYPE  TABLESPACE_NAME
-----  ---------------------------  --------------  ------------  ---------------  ---------------
RP     SYS_LOB0040231008C00005$$                    LOBSEGMENT    MSSM             RP             
RP     SYS_IL0040231008C00005$$                     LOBINDEX      MSSM             RP             
RP     SYS_LOB0040231008C00006$$                    LOBSEGMENT    MSSM             RP             
RP     SYS_IL0040231008C00006$$                     LOBINDEX      MSSM             RP             
Now, try to find what is associated with these LOB, run these 2 queries. No row is returned.
select  *
  from  dba_lobs
 where  ( segment_name like '%40231008C%' OR
          index_name   like '%40231008C%'  ) ;


select  *
  from  dba_indexes
 where  index_name like '%40231008C%' ;
Is it possible that the original table has been abandoned, and these were left as the index and stray LOB segments?
Or is there another place I could watch to learn where they belong?

Thank you
I.ChiMoon

Note Oracle Support

Drop Table does not remove the Blob LobIndex Segment [ID 394442.1]

If the deleted table is always in the trash then you will always see segments of business for her. Purge of the trash will remove them.

Kind regards
Bob

Tags: Database

Similar Questions

  • ALTER table move lob segment of a partition

    How I could move a LOB from a table segment partitioned (11.1 DB)?

    I have after the table script:
    CREATE TABLE COMMON.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE COMMON_ARCHIVE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE COMMON_ARCHIVE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (  
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_DATA
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),  
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS 
        TABLESPACE COMMON_ARCHIVE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE COMMON_ARCHIVE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING;
    and I would switch USERS tablespace lob segment to the other...

    TNX

    ALTER table move partition lob () store as (tablespace )

    SQL> CREATE TABLE WISSEM.TEST_AAA2_ARH
    (
      ID           INTEGER,
      TEKST        VARCHAR2(200 CHAR),
      UPDATESTAMP  DATE,
      OBJEKAT      CLOB
    )
    LOB (OBJEKAT) STORE AS (
      TABLESPACE EXAMPLE
      ENABLE       STORAGE IN ROW
      CHUNK       8192
      RETENTION
      NOCACHE
      LOGGING)
    TABLESPACE EXAMPLE
    LOGGING
    PARTITION BY RANGE (UPDATESTAMP)
    (
      PARTITION P_201012 VALUES LESS THAN (TO_DATE(' 2011-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_201101 VALUES LESS THAN (TO_DATE(' 2011-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE USERS
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING),
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE EXAMPLE
        LOB (OBJEKAT) STORE AS (
          TABLESPACE EXAMPLE
          ENABLE       STORAGE IN ROW
          CHUNK       8192
          PCTVERSION  10
          NOCACHE
          LOGGING)
    )
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    MONITORING;
      2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56
    Table created.
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE LOB (OBJEKAT) STORE AS (TABLESPACE USERS)
                       *
    ERROR at line 1:
    ORA-14511: cannot perform operation on a partitioned object
    
    SQL> ALTER TABLE WISSEM.TEST_AAA2_ARH MOVE PARTITION P_201101 LOB (OBJEKAT) STORE AS (TABLESPACE USERS);
    
    Table altered.
    
    SQL> 
    

    Published by: orawiss on May 5, 2011 14:03

  • Displacement of the LOB segments.

    Is there a a way to move LOB segment, keeping the segment of the table? The statement:

    ALTER table < tab > move lob (< lob >) store as (tablespace < TBS >)

    moves not only the LOB segment, but also table segments, so consumes a lot of resources, needs to rebuild indexes etc.

    Thank you.

    If you move the lob segment, then the data of the line must change because the lob is in a different place. There is no way around that. The row stores a pointer to LOB. Oracle has decided to implement this in a way that makes all change of rowid (you can't influence that).

    So, as I said - it's life.

  • Help understand about values retrieved by Tom Kyte script for my LOB segment

    I have the LOB segment. When I use Tom Kyte show_space script

    ()https://asktom.oracle.com/pls/apex/f?p=100:11:0:P11_QUESTION_ID:14339684180676) have this output:

    Unformatted blocks...             107

    FS1 Blocks (0-25)...               0

    FS2 Blocks (25-50)...               0

    FS3 Blocks (50-75)...               0

    FS4 Blocks (75-100)...               0

    Complete blocks...         859 438

    Total blocks...       1 746 304

    Total number of bytes...  14,305,722,368

    Total MB...          13 643

    Unused blocks...               0

    Unused bytes...               0

    Used in last Ext FileId...               5

    Used in last Ext BlockId...       1 261 056

    Used in last block...             128

    I have only full blocks = 859 438, but Total of blocks = 1 746 304 why so?

    Looks like you chunk's size 16 k - Oracle seems to watch only the headers of piece in this code; so you expect the segment number raw blocks to be twice the space 'blocks', as this report if you are using a size of 8 KB block and a fragment of 16 k size.

    Concerning

    Jonathan Lewis

  • LOB segment seen in dba_segments but not in dba_lobs.

    HII,

    I have a situation where I hvave a LOB segment and its index that I see in DBA_SEGMENTS, but can not find back DBA_LOBS.

    Select

    s.segment_name

    Of

    dba_lobs one

    where

    a.tablespace_name in ('DWH_DYND', 'DWH_DYNI');

    no selected line.

    and:

    Select

    s.segment_name nom_segment

    Of

    s dba_segments

    where

    s.tablespace_name in ('DWH_DYND', 'DWH_DYNI')

    and

    s.segment_type like '% LOB % ';

    NOM_SEGMENT

    ----------------------------------------

    SYS_LOB0000286033C00004$ $

    SYS_IL0000286033C00004$ $

    Does anyone know why?

    Thank you in advance.

    Kind regards.

    I think that this is a double post.

    https://community.Oracle.com/thread/2355525?TSTART=0

    HTH - Antonio NAVARRO

  • Calculate the free space of the lob segment / reclaim space?

    Friends...

    DB: 11 GR 2

    OS: Linux

    I am trying shrink lob segment and recover the free space between the business segments.

    This area in Oracle DB is new to me so try to learn and to shrink the segment.

    I went through various metalink doco (386341.1) but not be able to get answers for below...

    Issues related to the:

    1. how much free space is available in the lob segment?

    2 can I assume 'no LOB DATA' as the free space currently and even will be recovered once the segment will be shrunk?

    3. no disadvantage of using "ALTER TABLE... SHRINK SPACE.

    4. is it true if storage segment is 100 GB as many redo will be generated when trying to alter table... shrink the space?

    I'm following the steps below.

    1 find Segment name-> sys_lob123

    2. find the size of storage - > 100 GB

    3. find the size of the LOB data-> 70

    4. find the size of the data not LOB-> 30

    2. the storage size

    Select 'storage' from dba_extents bytes

    where nom_segment = 'sys_lob123. '

    100 GB

    3. the size of the LOB

    Select dbms_lob.getlength (col_lob) in the table_lob;

    70 GB

    4. the size of the LOB data not

    100-70 = 30 GB (i.e. #3 - #2)

    Thanks in advance and enjoy your time looking into this...

    Use DBMS_REDEFINITION to reorganize the LOB segment, it is the best way to retrieve a LOB segment space. Also use the clause "MEANS of COMPRESS" and SECURE LEADER, creating the temp table. There is no reason that you can use the BASIC FILE. It's online process, which means that your app can stay up to... However, make sure that monitor you the database when executing redef, as it can cause conflicts and slow down your application, in which case you must kill the reorg...

    If this process is not feasible or overwhelms you, "ALTER TABLE MOVE" is another option.

    With 'Displacement of Alter table', you need to rebuild all indexes after you move the LOB segment. Don't forget this is an offline process and your application needs a time out while you do this.

    Here is the query to list the 10 LOBs albums in your database-

    fixed line 160

    Col a20 PROPRIETARY format

    Col TABLE_NAME format a30

    Col COLUMN_NAME format a30

    Col nom_segment format a30

    size col 999 999 999 format

    SELECT *.

    FROM (SELECT b.owner,

    b.table_name,

    b.column_name,

    a.segment_name,

    SUM (a.bytes) / (1024 * 1024) "size".

    FROM dba_segments a, b dba_lobs

    WHERE a.segment_name LIKE '% SYS_LOB '.

    AND a.segment_name = b.segment_name

    AND a.owner NOT IN ('SYS', 'SYSTEM', 'GENERAL', "OUTLN")

    B.owner GROUP,

    b.table_name,

    b.column_name,

    a.segment_name

    ORDER BY DESC 5)

    WHERE ROWNUM<>

  • ORA-01691: impossible to extend the confusions of lob segment

    Hi all

    11.2.0.1 64-bit

    on DELL R610

    It seemed oracle missed

    I am inserting a large table with LOB pictures with 300,000 lines. I expect not to occupy the 40G drive. So I created 3 data files on the USERS tablespace where my diagram

    by default. From Oracle or the server or according to which of them is the culprit has the limit of 32G per data file even if they are the two 64-bit. This, I do not understand why? I thought

    Only 32-bit OS and Oracle 32bin has limited the maximum size of 32G on each data file? But I found out that now that he has failed on two platform.

    So what I've done is create another 2 data files in the USERS tablespace. Then I insert again, but still, I got ORA-1691. I can see that

    /oradata/USERS1.dbf a 32G size feel we reach the limit, but I don't understand why he did not move for the next 2 dbfs? who were intact

    /oradata/users2.dbf has 2G (original intact)

    /oradata/users3.dbf has 2G (original intact)

    Is oracle not smart enough to see that there are other available data files?

    Please help me shed some light on this confusion

    Thank you very much

    zxy

    Look for error messages in the alert.log

    Is your LOB segment in tablespace even?

    The data files are set to AUTOEXTEND ON?

    Hemant K Collette

  • Truncate table removes the corresponding LOB segment of the table or not?

    Hi all

    I have little table with BUSINESS segments, if I pull the table truncated on the table it will purge the LOB segment as well?

    About how long will take to truncate 100 GB LOB segments.

    Thank you

    903787 wrote:
    Hello

    1 Truncate will delete the LOB segment or not?

    It will not erase the LOB segments, but it must release the majority of the allocated space.

    >

    2. If you want to recover the space, we need to run the command, below is correct?

    ALTER TABLE CHANGE LOB (LOB_COLUMN) (SHRINK SPACE);

    Should not be necessary to 11.2:

    SQL> select * from v$version;
    
    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE    11.2.0.2.0      Production
    TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    
    SQL> select count(*) from user_segments;
    
      COUNT(*)
    ----------
             0
    
    SQL>
    SQL> create table t(x clob);
    
    Table created.
    
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    ---------------------------------------- ------------------ ----------
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    
    SQL>
    SQL> insert into t select lpad(segment_name,8192) from dba_segments;
    
    6312 rows created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    ---------------------------------------- ------------------ ----------
    T                                        TABLE                  393216
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT           53477376
    
    SQL>
    SQL> truncate table t;
    
    Table truncated.
    
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    ---------------------------------------- ------------------ ----------
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    
    SQL>
    SQL> alter table t modify lob(x) (shrink space);
    
    Table altered.
    
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    ---------------------------------------- ------------------ ----------
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    
    SQL>
    
  • java.sql.SQLException: ORA-01691: impossible to extend lob segment

    Hello

    I get the following code:
    java.sql.SQLException: ORA-01691: unable to extend lob segment 
    MI.SYS_LOB0000082688C00020$$ by 128 in tablespace SYSTEM
    I googled and found this thread helpful ORA-01691: impossible to extend lob segment
    alter database datafile '<DATA_FILE_NAME>' autoextend on maxsize unlimited;
    and you can also do the same with the temp tablespace.
    It's my data files. Am I right? If yes then I change all 4 of the following? Also, where can I find the temp tablespace
    select name from v$datafile
    /usr/lib/oracle/xe/oradata/XE/system.dbf
    /usr/lib/oracle/xe/oradata/XE/undo.dbf
    /usr/lib/oracle/xe/oradata/XE/sysaux.dbf
    /usr/lib/oracle/xe/oradata/XE/users.dbf
    Thank you in anticipation

    Published by: Christy h. on December 24, 2011 11:30

    Why the schema object specific MEDICALINTERNATIONAL in the SYSTEM tablespace?; that's reserved for Oracle?

    ALTER database datafile ' / usr/lib/oracle/xe/oradata/XE/system.dbf' autoextend on maxsize unlimited;

  • How to move the lob segment in a partitioned table

    My Oracle 11.2, I have a partitioned table that I want to switch to a different tablespace

    After invoking the script, there are still inside for the insensitive lob segment table
    CREATE TABLE BONGO.AAA_3
    (
      ID       NUMBER,
      DATUM    DATE,
      OBJEKAT  BLOB
    )
    TABLESPACE BONGODATA_HUGE
    PCTUSED    40
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    LOGGING
    PARTITION BY RANGE (DATUM)
    (  
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE BONGODATA_HUGE
    LOB (OBJEKAT) STORE AS 
            (   TABLESPACE  BONGODATA 
              ENABLE        STORAGE IN ROW
              CHUNK       8192
              RETENTION
              NOCACHE
              STORAGE    (
                          INITIAL          64K
                          NEXT             1M
                          MINEXTENTS       1
                          MAXEXTENTS       UNLIMITED
                          PCTINCREASE      0
                          FREELISTS        1
                          FREELIST GROUPS  1
                          BUFFER_POOL      DEFAULT
                         )
            )
        PCTUSED    40
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    INITIAL          64K
                    NEXT             1M
                    MINEXTENTS       1
                    MAXEXTENTS       UNLIMITED
                    FREELISTS        1
                    FREELIST GROUPS  1
                    BUFFER_POOL      DEFAULT
                   )
    )
    NOCOMPRESS 
    NOCACHE
    NOPARALLEL
    MONITORING;
    How to move this lob segment in a partitioned table?

    or, is there a package for data move in storage?

    concerning

    ALTER TABLE current_table MOVE PARTITION nom_partition
    TABLESPACE destination_table_space
    LOB (column_name) STORE AS (TABLESPACE current_tablespace);

  • Oracle LOB segment

    My database is oracle11g.

    I have the table with a CLOB column. Should I keep the LOB segment in the same tablespace or different tablespace?

    What are the advantages and disadvantages if we keep the LOB segment in tablespace even?
    What are the advantages and disadvantages if we keep the LOB segment in tablespace different?


    I would strongly appreciate it if one can provide comments?

    Concerning

    SB: You may want to reconsider this answer? I'd do it. Ok does not solve you your answer so I'll.

    The answer whether if LOB segments must be stored in a different tablespace reports to a number of issues, among them the size of the LOB, he enters the same block perfectly the LOB data not, and if you wondering other than the LOB columns often and only need to access the LOB on rare occasions.

    If the LOB is stored out of line, then Oracle does not grant it if it is not needed.

    If the LOB is stored in the same tablespace is not relevant. Especially if your data is striped and mirrored as is almost all of the data of these days.

  • Movement of the LOB Segment

    I am trying to write a PL/SQL procedure that will move all my lob segments in a tablespace again (this is for when a dev environment is created... lots of storage & compaction of the things endure us in the production takes place then!)

    I know that the SQL is:
    alter table X move lob (name-of-lob) store as tablespace NEWTBS;
    But I want to build these declarations programmatically by querying views user_ or all_. I don't know where to start. If I look in WHERE USER_SEGMENTS, I see segments with names like SYS_LOB0000048001C00017$ $... but I don't know what the table in order to begin to construct the statement "alter table...". ». (In other words, I think I reason that the command ' alter table SYS_LOB0000048001C00017$ $ move lob... ") ("wouldn't be correct).

    Similarly, the SQL will require me to know the name of the lob, I think, and that should be the name of the column in the table. But what view will allow me to extract this information, so I can complete my little building SQL?

    Can someone point me in the right direction please?

    Oh, and also: in WHERE USER_SEGMENTS, I see that I have «LOBSEGMENT "and types of segment"LOBINDEX"... assuming that the above SQL moves lob segments, how can I move the index business?»

    I think that you are looking for the table USER_LOBS (or ALL_LOBS or DBA_LOBS). Who has the TABLE_NAME, COLUMN_NAME and nom_segment. So I expect that you are looking for something like (not tested)

    FOR x IN (SELECT * FROM user_lobs)
    LOOP
      EXECUTE IMMEDIATE
          'ALTER TABLE ' ||
            x.table_name ||
            ' MOVE LOB (' ||
            x.segment_name ||
            ') STORE AS TABLESPACE newtbs';
    END LOOP;
    

    Justin

    Published by: Justin Cave on October 7, 2009 12:03 AM

    Fixed formatting

  • The initial change, next, pctincrease and a LOB segment

    Hi guys,.

    I wonder if anyone can help understand me how these four parameters of work of a LOB, please.

    When I try to change a LOB to the evolution of its parameter as:

    ALTER TABLE TEST. T03 MOVE TABLESPACE "TBS_1" LOB (COL2)

    STORE AS SECUREFILE (DISABLE online CHUNK STORAGE 5000 PCTVERSION 22 CACHE BED FILESYSTEM_LIKE_LOGGING STORAGE ( INITIAL 1024 NEXT 1111 PCTINCREASE 11))


    The result looks like this:

    LOB ("COL2") AS BASICFILE STORE)

    TABLESPACE "TBS_1" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 21

    CACHE BED NOLOGGING

    STORAGE (INITIAL 16384 NEXT 8192 MINEXTENTS 1 MAXEXTENTS 2147483645)

    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1

    USER_TABLES DEFAULT))"


    I'm confused about how these four parameters set to these values. Could someone help to figure this out, please?

    an initial measure and the next step, and the piece of less than 1 block from Oracle is not sensible. The default Oracle block size is 8 k.

    Also locally the minimum initial measure Managed Tablespace is 16 k, as each segment has a header block.

    Also in LMT pctincrease is ignored.

    ------------

    Sybrand Bakker

    Senior Oracle DBA

  • move the lob segment fails with invalid identifier

    Why this fails:

    SQL > desc APPLSYS. WF_INBOUND_TABLE
    Name Null? Type
    ----------------------------------------- -------- ----------------------------
    Q_NAME VARCHAR2 (30)
    MSGID NOT NULL RAW (16)
    CORRID'ART VARCHAR2 (128)
    PRIORITY NUMBER
    NUMBER OF THE STATE
    TIMESTAMP DELAY (6)
    NUMBER OF EXPIRY
    TIME_MANAGER_INFO TIMESTAMP (6)
    NUMBER OF LOCAL_ORDER_NO
    NUMBER OF CHAIN_NO
    NUMBER OF THE CSCN
    DSCN NUMBER
    ENQ_TIME TIMESTAMP (6)
    NUMBER OF ENQ_UID
    ENQ_TID VARCHAR2 (30)
    DEQ_TIME TIMESTAMP (6)
    NUMBER OF DEQ_UID
    DEQ_TID VARCHAR2 (30)
    NUMBER OF RETRY_COUNT
    EXCEPTION_QSCHEMA VARCHAR2 (30)
    EXCEPTION_QUEUE VARCHAR2 (30)
    NUMBER OF STEP_NO
    NUMBER OF RECIPIENT_KEY
    DEQUEUE_MSGID RAW (16)
    USER_DATA SYSTEM. WF_PAYLOAD_T
    SENDER_NAME VARCHAR2 (30)
    SENDER_ADDRESS VARCHAR2 (1024)
    NUMBER OF SENDER_PROTOCOL
    ANYDATA USER_PROP


    SQL > alter table APPLSYS. WF_INBOUND_TABLE move TABLESPACE APPS_TS_TX_DATA;

    Modified table.

    SQL > ALTER TABLE APPLSYS. WF_INBOUND_TABLE MOVE LOB (USER_PROP) STORE DID (TABLESPACE APPS_TS_TX_DATA);
    *
    ERROR on line 1:
    ORA-00904: "USER_PROP": invalid identifier

    user600570 wrote:
    Well, no matter what the type is be, how to move to this segment?

    The segment does not move when the corresponding table is moved to new tablespace?
    At least that's what I see.

    SQL> select * from v$version ;
    
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
    PL/SQL Release 10.2.0.4.0 - Production
    CORE     10.2.0.4.0     Production
    TNS for Solaris: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    
    SQL> create table t nologging as select * from applsys.wf_inbound_table where 1 = 2 ;
    
    Table created.
    
    SQL> select dbms_metadata.get_ddl('TABLE','T') from dual ;
    
    DBMS_METADATA.GET_DDL('TABLE','T')
    --------------------------------------------------------------------------------
    
      CREATE TABLE "APPS"."T"
       (     "Q_NAME" VARCHAR2(30),
         "MSGID" RAW(16),
         "CORRID" VARCHAR2(128),
         "PRIORITY" NUMBER,
         "STATE" NUMBER,
         "DELAY" TIMESTAMP (6),
         "EXPIRATION" NUMBER,
         "TIME_MANAGER_INFO" TIMESTAMP (6),
         "LOCAL_ORDER_NO" NUMBER,
         "CHAIN_NO" NUMBER,
         "CSCN" NUMBER,
         "DSCN" NUMBER,
         "ENQ_TIME" TIMESTAMP (6),
         "ENQ_UID" NUMBER,
         "ENQ_TID" VARCHAR2(30),
         "DEQ_TIME" TIMESTAMP (6),
         "DEQ_UID" NUMBER,
         "DEQ_TID" VARCHAR2(30),
         "RETRY_COUNT" NUMBER,
         "EXCEPTION_QSCHEMA" VARCHAR2(30),
         "EXCEPTION_QUEUE" VARCHAR2(30),
         "STEP_NO" NUMBER,
         "RECIPIENT_KEY" NUMBER,
         "DEQUEUE_MSGID" RAW(16),
         "USER_DATA" "SYSTEM"."WF_PAYLOAD_T" ,
         "SENDER_NAME" VARCHAR2(30),
         "SENDER_ADDRESS" VARCHAR2(1024),
         "SENDER_PROTOCOL" NUMBER,
         "USER_PROP" "SYS"."ANYDATA"
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
      STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
      PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "APPLSYSD"
     OPAQUE TYPE "USER_PROP" STORE AS LOB (
      ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      CACHE
      STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
      PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
    
    SQL> select owner, table_name, column_name, segment_name, tablespace_name from dba_lobs
      2  where table_name = 'T' ;
    
    OWNER                          TABLE_NAME
    ------------------------------ ------------------------------
    COLUMN_NAME
    -----------------------------------------------------------------------------------------------------------------------------------
    SEGMENT_NAME                   TABLESPACE_NAME
    ------------------------------ ------------------------------
    APPS                           T
    USER_PROP
    SYS_LOB0000365381C00035$$      APPLSYSD
    
    SQL> alter table t move tablespace APPLSYSX ;
    
    Table altered.
    
    SQL> select dbms_metadata.get_ddl('TABLE','T') from dual ;
    
    DBMS_METADATA.GET_DDL('TABLE','T')
    --------------------------------------------------------------------------------
    
      CREATE TABLE "APPS"."T"
       (     "Q_NAME" VARCHAR2(30),
         "MSGID" RAW(16),
         "CORRID" VARCHAR2(128),
         "PRIORITY" NUMBER,
         "STATE" NUMBER,
         "DELAY" TIMESTAMP (6),
         "EXPIRATION" NUMBER,
         "TIME_MANAGER_INFO" TIMESTAMP (6),
         "LOCAL_ORDER_NO" NUMBER,
         "CHAIN_NO" NUMBER,
         "CSCN" NUMBER,
         "DSCN" NUMBER,
         "ENQ_TIME" TIMESTAMP (6),
         "ENQ_UID" NUMBER,
         "ENQ_TID" VARCHAR2(30),
         "DEQ_TIME" TIMESTAMP (6),
         "DEQ_UID" NUMBER,
         "DEQ_TID" VARCHAR2(30),
         "RETRY_COUNT" NUMBER,
         "EXCEPTION_QSCHEMA" VARCHAR2(30),
         "EXCEPTION_QUEUE" VARCHAR2(30),
         "STEP_NO" NUMBER,
         "RECIPIENT_KEY" NUMBER,
         "DEQUEUE_MSGID" RAW(16),
         "USER_DATA" "SYSTEM"."WF_PAYLOAD_T" ,
         "SENDER_NAME" VARCHAR2(30),
         "SENDER_ADDRESS" VARCHAR2(1024),
         "SENDER_PROTOCOL" NUMBER,
         "USER_PROP" "SYS"."ANYDATA"
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING
      STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "APPLSYSX"
     OPAQUE TYPE "USER_PROP" STORE AS LOB (
      ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
      CACHE
      STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
    
    SQL> select owner, table_name, column_name, segment_name, tablespace_name from dba_lobs
      2  where table_name = 'T' ;
    
    OWNER                          TABLE_NAME
    ------------------------------ ------------------------------
    COLUMN_NAME
    -----------------------------------------------------------------------------------------------------------------------------------
    SEGMENT_NAME                   TABLESPACE_NAME
    ------------------------------ ------------------------------
    APPS                           T
    USER_PROP
    SYS_LOB0000365381C00035$$      APPLSYSX
    
    SQL> drop table t purge ;
    
    Table dropped.
    

    If you want to be able to move the segment to a different tablespace to the table, I guess that's not possible. Oracle only allows LOB to be stored in a separate tablespace as the corresponding table provided that they are defined as the LOBs explicitly during the creation of the table, unlike the LOB created by oracle internally because of the column datatype being ANYDATA as in this case.

  • ORA-01691: impossible to extend lob segment

    Hi, Iam facing mentoned question below
    2010-08-02 17:56:56: DB error!

    java.sql.SQLException: ORA-01691: impossible to extend lob XXX_XXX segment. SYS_LOB0000175123C00008$ $ by 1024 in the XXX_XXX_TBL tablespace

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
    at oracle
    This is when inserting records into a table, Oracle needed to extend a segment, but as there is not sufficient space to allow him to do so, i.e. the storage space is full Sunrise error.

    I would like to know is possible to fix it without adding a new data file...

    Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64 bit Production
    PL/SQL Release 9.2.0.8.0 - Production
    CORE Production 9.2.0.8.0
    AMT for Solaris: 9.2.0.8.0 - Production Version
    NLSRTL Version 9.2.0.8.0 - Production

    Try,

    ALTER database datafile '' autoextend on maxsize unlimited;

    and you can also do the same thing with the temp tablespace.

    concerning

    Published by: Fahd Mirza on August 2, 2010 15:38

Maybe you are looking for