Pct_free,pct_used
Hi,
Please find the below details for table fragmentation :
windows Server 2003
oracle database version : 10.2.0.4
Table Owner (Schema) Table Name TABLE Size (With Fragmentation) Actual data in table Difference
ACCMAN S_DEDUP_RESULT 979 MB 357 MB 622 MB
SQL> select pct_free,pct_used,table_name from dba_tables where table_name='S_DEDUP_RESULT' and owner='ACCMAN';
PCT_FREE PCT_USED TABLE_NAME
40 S_DEDUP_RESULT
Would a re-org activity release space ?
re-org tables by export/import will release the space ?
also, please let me know is there any impact on re-org due to pctfree & pctused.
Thanks,
1) PCT_USED has nothing to do with monitoring a table for fragmentation - you have a misconception here
2) It is questionable whether reorganizing tables is actually required at all
See here for a brief explanation for 2)
http://uhesse.com/2010/08/23/reorganizing-tables-in-oracle-is-it-worth-the-effort/
Kind regards
Uwe Hesse
"Don't believe it, test it!"
http://uhesse.com
Similar Messages
-
Global temp table problem w/ODP?
I'm using the current version of the ODP .NET data adapter to access a global temporary table on an Oracle
9.2.0.4.0 server created with -
CREATE GLOBAL TEMPORARY TABLE euik_dex_open_tasks_temp1
(resource_id NUMBER,
task_assignment_id NUMBER,
task_id NUMBER,
incident_id NUMBER,
customer_product_id NUMBER,
inventory_item_id NUMBER,
contract_service_id NUMBER)
ON COMMIT DELETE ROWS
(See below for what is returned from the data dictionary for this table)
If I use SQLPlus to insert a row into this table, then query the table immediately, I see the inserted row.
If I use the same exact SQL through the ODP adapter, the ExecuteNonQuery statement returns the fact the 1 row was inserted. However, doing a SELECT from the table immediately after the INSERT, no rows are returned. See the .NET test ap, below.
Also, note that if I use a global temp table made with ON COMMIT PRESERVE ROWS, the ODP adapter works fine.
What am I doing wrong? Thanks in advance...
Pat
Private Sub TestTempTable()
Dim Str1 As New System.Text.StringBuilder
Dim Strx As New System.Text.StringBuilder
Dim StrOut As New System.Text.StringBuilder
Dim nInsert As Integer
Dim nRow As Integer
'Insert into the global temp table
Str1.Append("INSERT INTO euik_dex_open_tasks_temp1(resource_id, " & vbCrLf)
Str1.Append(" task_Assignment_id, " & vbCrLf)
Str1.Append(" task_id, " & vbCrLf)
Str1.Append(" incident_id, " & vbCrLf)
Str1.Append(" customer_product_id, " & vbCrLf)
Str1.Append(" inventory_item_id, " & vbCrLf)
Str1.Append(" contract_service_id) " & vbCrLf)
Str1.Append(" VALUES(1,2,3,4,5,6,7)" & vbCrLf)
Dim cn As New Oracle.DataAccess.Client.OracleConnection
Dim dr As Oracle.DataAccess.Client.OracleDataReader
Dim cd As New Oracle.DataAccess.Client.OracleCommand
Try
cn.ConnectionString = "Data Source=XXX;User ID=mickey;Password=mouse;"
cd.CommandType = CommandType.Text
cd.Connection = cn
cn.Open()
'Run the query to load data in the temp table
cd.CommandText = Str1.ToString()
nInsert = cd.ExecuteNonQuery()
MessageBox.Show(nInsert & " row(s) inserted.")
'See if there are rows in the temp table
Strx.Append("Select * from euik_dex_open_tasks_temp1")
cd.CommandText = Strx.ToString()
dr = cd.ExecuteReader
nRow = 0
While dr.Read
StrOut.Append(dr(0) & vbCrLf)
nRow = nRow + 1
End While
MessageBox.Show(nRow & " row(s) selected.")
Catch ex As OracleClient.OracleException
MessageBox.Show(ex.Message)
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
cn.Close()
End Try
End Sub
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED
INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
FREELISTS FREELIST_GROUPS LOGGING BACKED_UP NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE
CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES
CACHE TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE TEMPORARY
SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION
SKIP_CORRUPT MONITORING CLUSTER_OWNER DEPENDENCIES COMPRESSION
APPS EUIK_DEX_OPEN_TASKS_TEMP1 10 40 1 255
1 1 NO N
1 1 N ENABLED NO Y N NO
DEFAULT DISABLED NO NO SYS$TRANSACTION DISABLED NO DISABLED
DISABLEDAndrew,
As David indicated if you do not wish to have "auto commit mode" you just need to use a transaction object to manually control the transaction.
I'm just nervous at the idea of ODP.NET initiating interactions I am not aware of.I think it would be more fair to say "finishing interactions" in this case rather than "initiating interactions" but you could always just run a SQL trace from the database to see exactly what is happening if you are concerned.
HTH,
- Mark
=======================================
Mark A. Williams
Oracle DBA
Author, Professional .NET Oracle Programming
http://www.apress.com/book/bookDisplay.html?bID=378 -
Query tuning for data-warehousing application in Oracle 8i.
We have to pick up 24 months old data. Each month data is kept in a different partition.
2007-May month data is kept in PRESC200705 partition
SELECT r.account_id,
p.presc_num,
spm.product_id,
p.month,
t.best_call_state,
sum(p.trx_count)
FROM rlup_assigned_account r,
temp_presc_num_TEST t,
retail.prescrip_retail partition (PRESC200705) p,
sherlock.sherlock_product_mapping spm
WHERE spm.product_id like '056%'
and spm.mds6 = p.product_id
and t.CLIENT_ID = p.presc_num
and r.ndc_pyr_id = p.payer_plan
and t.best_call_state = r.ST
GROUP BY r.account_id,
p.presc_num,
spm.product_id,
p.month,
t.best_call_state
Q This Query is to be tuned
SQL> SELECT table_name,
2 partition_name,
3 high_value,
4 num_rows
5 FROM user_tab_partitions
6 ;
no rows selectedI have the following task:
Requirement:
According to the client, new partitions are created every month.
So the query should contain only the 24 most recent partions leaving one old partition every month.
So, the query becomes dynamic.
The query will have to leave one old partion every month and move ahead with the new partion created.
The total partitions accessed should not cross 24.
Is this possible?
Partition# for OCt 2007
1
2
3
4
5
6
7
24
Partition# for Nov 2007
Old|New
1
2..1
3..2
4..3
5..4
6..5
7..6
24..23
..24
Secondly, with one month data (in a partitioned table), the query takes about one hour to run.
with 24 month data accessed by the query, the query will take 24 hours to run.
I am sure that Oracle can be tuned to run on such huge data with ease and the query output can
come within seconds.. Otherwise, nobody would use oracle for datawarehousing applicaions.
Q. How do I write a dynamic query that references 24 recent partitions, using the query provided:
abc>SELECT r.account_id,
2 p.presc_num,
3 spm.product_id,
4 p.month,
5 t.best_call_state,
6 sum(p.trx_count)
7 FROM rlup_assigned_account r,
8 temp_presc_num_TEST t,
9 retail.prescrip_retail partition (PRESC200705) p,
10 sherlock.sherlock_product_mapping spm
11 WHERE spm.product_id like '056%'
12 and t.CLIENT_ID='934759'
13 and spm.mds6 = p.product_id
14 and t.CLIENT_ID = p.presc_num
15 and r.ndc_pyr_id = p.payer_plan
16 and t.best_call_state = r.ST
17 GROUP BY r.account_id,
18 p.presc_num,
19 spm.product_id,
20 p.month,
21 t.best_call_state
22 ;
retail.prescrip_retail partition (PRESC200705) p,
Partition name, PRESC200705 cannot be hardcoded into the sql.
Sql should take a range of 24 recent partitions.
And the query should execute fast too.
Now, is that what is called a challenge?
+++++++++++++++++++++++++++++++++++++++++++++++
Here are the index/constraints/explain_plan output on prescrip_retail table (which is partitioned)
as well as other tables to which prescrip_retail table is joined
This is what prescrip_retail looks like. This is the table having partitions.
It does not seem to have a primary key!
SQL> desc prescrip_retail
Name Null? Type
PRESC_NUM NUMBER
PFIER_NUM CHAR(8)
RELID NOT NULL CHAR(9)
ME_NUM NOT NULL CHAR(10)
PRODUCT_ID NOT NULL CHAR(6)
PRODUCT_FRMSTR NOT NULL CHAR(1)
PAYER_PLAN NOT NULL CHAR(6)
MONTH NOT NULL DATE
PYMT_CODE NOT NULL CHAR(1)
NRX_COUNT NOT NULL NUMBER(7)
NRX_QUANTITY NOT NULL NUMBER(9)
NRX_DOLLARS NOT NULL NUMBER(13,2)
TRX_COUNT NOT NULL NUMBER(7)
TRX_QUANTITY NOT NULL NUMBER(9)
TRX_DOLLARS NOT NULL NUMBER(13,2)
Table Size of Prescrip_Retail...
1 select table_name,tablespace_name,pct_free,pct_used,num_rows,avg_space
2 from all_tables
3* where table_name='PRESCRIP_RETAIL'
SQL> /
TABLE_NAME TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS AVG_SPACE
PRESCRIP_RETAIL 2806673860 360
Explain Plan for the query to be tuned...
22:32:31 SQL> explain plan set statement_id='vista_query'
22:43:33 2 for
22:43:35 3 SELECT r.pfier_account_id,
22:43:41 4 p.presc_num,
22:43:41 5 spm.product_id,
22:43:41 6 p.month,
22:43:41 7 t.best_call_state,
22:43:41 8 sum(p.trx_count)
22:43:41 9 FROM rlup_assigned_account r,
22:43:41 10 temp_presc_num_TEST t,
22:43:41 11 retail.prescrip_retail partition (PRESC200705) p,
22:43:41 12 sherlock.sherlock_product_mapping spm
22:43:41 13 WHERE spm.product_id like '056%'
22:43:41 14 and spm.mds6 = p.product_id
22:43:41 15 and t.CLIENT_ID = p.presc_num
22:43:41 16 and r.ndc_pyr_id = p.payer_plan
22:43:41 17 and t.best_call_state = r.ST
22:43:41 18 GROUP BY r.pfier_account_id,
22:43:41 19 p.presc_num,
22:43:41 20 spm.product_id,
22:43:41 21 p.month,
22:43:41 22 t.best_call_state;
Explained.
SQL> select statement_id,operation,options,object_name
2 from plan_table
3 where statement_id='vista_query';
22:46:03 SQL> /
STATEMENT_ID OPERATION OPTIONS OBJECT_NAME
vista_query SELECT STATEMENT
vista_query SORT GROUP BY
vista_query HASH JOIN
vista_query TABLE ACCESS FULL TEMP_PRESC_NUM_TEST
vista_query HASH JOIN
vista_query TABLE ACCESS FULL RLUP_ASSIGNED_ACCOUNT
vista_query HASH JOIN
vista_query TABLE ACCESS FULL SHERLOCK_PRODUCT_MAPPING
vista_query TABLE ACCESS FULL PRESCRIP_RETAIL
9 rows selected.
Partition Pruning: This is supposed to provide an insight to the partitions oracle
vists internally...
I guess we can use "month>= add_months(sysdate,-24)" instead of partions too.
I don't think Oracle is visiting any partitions.
I'll also search into all_tab_partitions to verify this.
Explain_Plan for what partitions oracle visits internally (partition pruning):
SQL> ed
Wrote file afiedt.buf
1 explain plan set statement_id='vista'
2 for select * from retail.prescrip_retail
3* where month>= add_months(sysdate,-24)
SQL> /
Explained.
Elapsed: 00:00:00.05
22:13:56 SQL> select statement_id,operation,options,object_name
22:14:28 2 from plan_table
22:14:30 3 where statement_id='vista';
STATEMENT_ID OPERATION
OPTIONS OBJECT_NAME
vista SELECT STATEMENT
vista PARTITION RANGE
ITERATOR
vista TABLE ACCESS
FULL PRESCRIP_RETAIL
Elapsed: 00:00:01.00
Indexes/Constraints on PRESCRIP_RETAIL table:
SQL> ED
Wrote file afiedt.buf
1 SELECT TABLE_NAME,TABLE_TYPE,INDEX_NAME,INDEX_TYPE,PCT_FREE,STATUS,PARTITIONED
2 FROM ALL_INDEXES
3* WHERE TABLE_NAME IN ('PRESCRIP_RETAIL')
SQL> /
TABLE_NAME TABLE INDEX_NAME INDEX_TYPE PCT_FREE STATUS PAR
PRESCRIP_RETAIL TABLE BX6_PRESC_RELID BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX7_PRESC_ME BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX1_PRESC_PROD BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX2_PRESC_PAYER BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX3_PRESC_PAYERCD BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX4_PRESC_PRESC BITMAP N/A YES
PRESCRIP_RETAIL TABLE BX5_PRESC_PFIER BITMAP N/A YES
7 rows selected.
SQL> ed
Wrote file afiedt.buf
1 SELECT TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS,DEFERRABLE
2 FROM ALL_CONSTRAINTS
3* WHERE TABLE_NAME IN ('PRESCRIP_RETAIL')
SQL> /
TABLE_NAME CONSTRAINT_NAME C STATUS DEFERRABLE
PRESCRIP_RETAIL SYS_C001219 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001220 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001221 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001222 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001223 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001224 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001225 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001226 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001227 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001228 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001229 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001230 C ENABLED NOT DEFERRABLE
PRESCRIP_RETAIL SYS_C001231 C ENABLED NOT DEFERRABLE
13 rows selected.
In all_tables:
NUM_ROWS:2806673860
AVG_SPACE:360
Here is the data size in the table.
SQL> select count(*) from PRESCRIP_RETAIL;
COUNT(*)
4602980312
Again, here is the partition information and the amount of data in each partition:
SQL> ed
Wrote file afiedt.buf
1 select
2 partition_name,SUBPARTITION_COUNT,PARTITION_POSITION,TABLESPACE_NAME,
3 NUM_ROWS
4 from all_tab_partitions
5 where table_name='PRESCRIP_RETAIL'
6* order by partition_name desc
SQL> /
PARTITION_NAME SUBPARTITION_COUNT PARTITION_POSITION TABLESPACE_NAME NUM_ROWS
PRESC200705 0 36 PRESC_PARTITION_29 141147085
PRESC200704 0 35 PRESC_PARTITION_28 140299317
PRESC200703 0 34 PRESC_PARTITION_27 140703128
PRESC200702 0 33 PRESC_PARTITION_26 132592733
PRESC200701 0 32 PRESC_PARTITION_25 145832356
PRESC200612 0 31 PRESC_PARTITION_24 136702837
PRESC200611 0 30 PRESC_PARTITION_23 137421767
PRESC200610 0 29 PRESC_PARTITION_22 140836119
PRESC200609 0 28 PRESC_PARTITION_21 131273578
PRESC200608 0 27 PRESC_PARTITION_20 134967317
PRESC200607 0 26 PRESC_PARTITION_19 130785504
PRESC200606 0 25 PRESC_PARTITION_18 131472696
PRESC200605 0 24 PRESC_PARTITION_17 138590581
PRESC200604 0 23 PRESC_PARTITION_16 126849798
PRESC200603 0 22 PRESC_PARTITION_15 137164667
PRESC200602 0 21 PRESC_PARTITION_14 126938544
PRESC200601 0 20 PRESC_PARTITION_13 135408324
PRESC200512 0 19 PRESC_PARTITION_12 123285100
PRESC200511 0 18 PRESC_PARTITION_11 121245764
PRESC200510 0 17 PRESC_PARTITION_10 122112932
PRESC200509 0 16 PRESC_PARTITION_09 119137399
PRESC200508 0 15 PRESC_PARTITION_08 123372311
PRESC200507 0 14 PRESC_PARTITION_07 112905435
PRESC200506 0 13 PRESC_PARTITION_06 119581406
PRESC200505 0 12 PRESC_PARTITION_05 123977315
PRESC200504 0 11 PRESC_PARTITION_04 118975597
PRESC200503 0 10 PRESC_PARTITION_03 125782688
PRESC200502 0 9 PRESC_PARTITION_02 117448839
PRESC200501 0 8 PRESC_PARTITION_01 122214436
PRESC200412 0 7 PRESC_PARTITION_36 124799998
PRESC200411 0 6 PRESC_PARTITION_35 125471042
PRESC200410 0 5 PRESC_PARTITION_34 118457422
PRESC200409 0 4 PRESC_PARTITION_33 119537488
PRESC200408 0 3 PRESC_PARTITION_32 121319137
PRESC200407 0 2 PRESC_PARTITION_31 115226621
PRESC200406 0 1 PRESC_PARTITION_30 119143031
36 rows selected.
Data in induvidual partition of PRESCRIP_RETAIL.
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200704);
COUNT(*)
140299317
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200703);
COUNT(*)
140703128
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200702);
COUNT(*)
132592733
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200701);
COUNT(*)
145832356
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200606);
COUNT(*)
131472696
SQL> SELECT COUNT(*) FROM PRESCRIP_RETAIL PARTITION(PRESC200605);
COUNT(*)
138590581
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other tables info:
Index of other tables related to PRESCRIP_REATIL:
SQL> SELECT TABLE_NAME,TABLE_TYPE,INDEX_NAME,INDEX_TYPE,PCT_FREE,STATUS,PARTITIONED
2 FROM ALL_INDEXES
3 WHERE TABLE_NAME IN ('RLUP_ASSIGNED_ACCOUNT','TEMP_PRESC_NUM_TEST','SHERLOCK_PRODUCT_MAPPING');
SQL> /
TABLE_NAME TABLE INDEX_NAME INDEX_TYPE PCT_FREE STATUS PAR
SHERLOCK_PRODUCT_MAPPING TABLE SHERLOCK_PRODUCT_MAPPING_PK NORMAL 10 VALID NO
SHERLOCK_PRODUCT_MAPPING TABLE SHERLOCK_PRODUCT_MAPPING_X1 NORMAL 0 VALID NO
SHERLOCK_PRODUCT_MAPPING TABLE SHERLOCK_PRODUCT_MAPPING_BX1 BITMAP 0 VALID NO
SHERLOCK_PRODUCT_MAPPING TABLE SHERLOCK_PRODUCT_MAPPING_BX2 BITMAP 0 VALID NO
SHERLOCK_PRODUCT_MAPPING TABLE SHERLOCK_PRODUCT_MAPPING_BX3 BITMAP 0 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX1_RLUP_ASSIGNED_ACCT_PYR BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX2_RLUP_ASSIGNED_ACCT_TOPLVL BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX3_RLUP_ASSIGNED_ACCT_PBM BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX4_RLUP_ASSIGNED_ACCT_AA_FLAG BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX5_RLUP_ASSIGNED_ACCT_AA_CHD BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX6_RLUP_ASSIGNED_ACCT_PBM_FLG BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE BX7_RLUP_ASSIGNED_ACCT_ACCTID BITMAP 10 VALID NO
RLUP_ASSIGNED_ACCOUNT TABLE PK_RLUP_ASSIGNED_ACCOUNT NORMAL 10 VALID NO
13 rows selected.
Constraints in other tables:
SQL> SELECT TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,STATUS,DEFERRABLE
2 FROM ALL_CONSTRAINTS
3 WHERE TABLE_NAME IN ('RLUP_ASSIGNED_ACCOUNT','TEMP_PRESC_NUM_TEST','SHERLOCK_PRODUCT_MAPPING');
TABLE_NAME CONSTRAINT_NAME C STATUS DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637753 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637754 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637755 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637756 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637757 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637758 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637759 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637760 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637761 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT SYS_C00637762 C ENABLED NOT DEFERRABLE
RLUP_ASSIGNED_ACCOUNT PK_RLUP_ASSIGNED_ACCOUNT P ENABLED NOT DEFERRABLE
TEMP_PRESC_NUM_TEST SYS_C00640536 C ENABLED NOT DEFERRABLE
12 rows selected.
TEMP_PRESC_NUM_TEST does not contain any constraints or index. -
The usefulness (?) of XMLDIFF in database change management
I post my example here as well, because maybe it is useful to some, for instance, regarding the use of the syntax. The example is explained more deeply here (at least the reasons why I did what I did).: http://www.liberidu.com/blog/?p=394
Some help is still appreciated from you ("you" as in you the "XMLTable and/or XQuery wizards") regarding the "LINE" problem at the end of the post/example given here.
Have a look here (and enjoy the examples).
M.
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
SQL> set long 10000000
SQL> set pages 5000
SQL> set lines 200
SQL> create table A
2 (id number(10));
Table created.
SQL> create table B
2 (id number(15));
Table created.
SQL> create table C
2 (id number(10),
3 extra varchar2(50));
Table created.
SQL> select dbms_metadata.get_ddl('TABLE','A') from dual;
DBMS_METADATA.GET_DDL('TABLE','A')
CREATE TABLE "SYSTEM"."A"
( "ID" NUMBER(10,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
SQL> select dbms_metadata.get_ddl('TABLE','B') from dual;
DBMS_METADATA.GET_DDL('TABLE','B')
CREATE TABLE "SYSTEM"."B"
( "ID" NUMBER(15,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
SQL> select dbms_metadata.get_ddl('TABLE','C') from dual;
DBMS_METADATA.GET_DDL('TABLE','C')
CREATE TABLE "SYSTEM"."C"
( "ID" NUMBER(10,0),
"EXTRA" VARCHAR2(50)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
TABLESPACE "SYSTEM"
SQL> SELECT dbms_metadata.compare_alter('TABLE','A','B',USER,USER) from dual;
DBMS_METADATA.COMPARE_ALTER('TABLE','A','B',USER,USER)
ALTER TABLE "SYSTEM"."A" MODIFY ("ID" NUMBER(15,0))
ALTER TABLE "SYSTEM"."A" RENAME TO "B"
SQL> SELECT dbms_metadata.compare_alter('TABLE','A','C',USER,USER) from dual;
DBMS_METADATA.COMPARE_ALTER('TABLE','A','C',USER,USER)
ALTER TABLE "SYSTEM"."A" ADD ("EXTRA" VARCHAR2(50))
ALTER TABLE "SYSTEM"."A" RENAME TO "C"
SQL> SELECT dbms_metadata.compare_alter('TABLE','B','C',USER,USER) from dual;
DBMS_METADATA.COMPARE_ALTER('TABLE','B','C',USER,USER)
ALTER TABLE "SYSTEM"."B" ADD ("EXTRA" VARCHAR2(50))
ALTER TABLE "SYSTEM"."B" MODIFY ("ID" NUMBER(10,0))
ALTER TABLE "SYSTEM"."B" RENAME TO "C"
SQL> SELECT dbms_metadata.compare_alter_xml('TABLE','A','B',USER,USER) from dual;
DBMS_METADATA.COMPARE_ALTER_XML('TABLE','A','B',USER,USER)
<ALTER_XML xmlns="http://xmlns.oracle.com/ku" version="1.0">
<OBJECT_TYPE>TABLE</OBJECT_TYPE>
<OBJECT1>
<SCHEMA>SYSTEM</SCHEMA>
<NAME>A</NAME>
</OBJECT1>
<OBJECT2>
<SCHEMA>SYSTEM</SCHEMA>
<NAME>B</NAME>
</OBJECT2>
<ALTER_LIST>
<ALTER_LIST_ITEM>
<SQL_LIST>
<SQL_LIST_ITEM>ALTER TABLE "SYSTEM"."A" MODIFY ("ID" NUMBER(15,0))</SQL_LIST_ITEM>
</SQL_LIST>
</ALTER_LIST_ITEM>
<ALTER_LIST_ITEM>
<SQL_LIST>
<SQL_LIST_ITEM>ALTER TABLE "SYSTEM"."A" RENAME TO "B"</SQL_LIST_ITEM>
</SQL_LIST>
</ALTER_LIST_ITEM>
</ALTER_LIST>
</ALTER_XML>
SQL> SELECT dbms_metadata.compare_sxml('TABLE','A','B',USER,USER) from dual;
DBMS_METADATA.COMPARE_SXML('TABLE','A','B',USER,USER)
<TABLE xmlns="http://xmlns.oracle.com/ku" version="1.0">
<SCHEMA>SYSTEM</SCHEMA>
<NAME value1="A">B</NAME>
<RELATIONAL_TABLE>
<COL_LIST>
<COL_LIST_ITEM>
<NAME>ID</NAME>
<DATATYPE>NUMBER</DATATYPE>
<PRECISION value1="10">15</PRECISION>
<SCALE>0</SCALE>
</COL_LIST_ITEM>
</COL_LIST>
<PHYSICAL_PROPERTIES>
<HEAP_TABLE>
<SEGMENT_ATTRIBUTES>
<PCTFREE>10</PCTFREE>
<PCTUSED>40</PCTUSED>
<INITRANS>1</INITRANS>
<STORAGE>
<INITIAL>65536</INITIAL>
<NEXT>1048576</NEXT>
<MINEXTENTS>1</MINEXTENTS>
<MAXEXTENTS>2147483645</MAXEXTENTS>
<PCTINCREASE>0</PCTINCREASE>
<FREELISTS>1</FREELISTS>
<FREELIST_GROUPS>1</FREELIST_GROUPS>
<BUFFER_POOL>DEFAULT</BUFFER_POOL>
</STORAGE>
<TABLESPACE>SYSTEM</TABLESPACE>
<LOGGING>Y</LOGGING>
</SEGMENT_ATTRIBUTES>
<COMPRESS>N</COMPRESS>
</HEAP_TABLE>
</PHYSICAL_PROPERTIES>
</RELATIONAL_TABLE>
</TABLE>
SQL> SELECT dbms_metadata.get_sxml('TABLE', 'A', USER) from dual;
DBMS_METADATA.GET_SXML('TABLE','A',USER)
<TABLE xmlns="http://xmlns.oracle.com/ku" version="1.0">
<SCHEMA>SYSTEM</SCHEMA>
<NAME>A</NAME>
<RELATIONAL_TABLE>
<COL_LIST>
<COL_LIST_ITEM>
<NAME>ID</NAME>
<DATATYPE>NUMBER</DATATYPE>
<PRECISION>10</PRECISION>
<SCALE>0</SCALE>
</COL_LIST_ITEM>
</COL_LIST>
<PHYSICAL_PROPERTIES>
<HEAP_TABLE>
<SEGMENT_ATTRIBUTES>
<PCTFREE>10</PCTFREE>
<PCTUSED>40</PCTUSED>
<INITRANS>1</INITRANS>
<STORAGE>
<INITIAL>65536</INITIAL>
<NEXT>1048576</NEXT>
<MINEXTENTS>1</MINEXTENTS>
<MAXEXTENTS>2147483645</MAXEXTENTS>
<PCTINCREASE>0</PCTINCREASE>
<FREELISTS>1</FREELISTS>
<FREELIST_GROUPS>1</FREELIST_GROUPS>
<BUFFER_POOL>DEFAULT</BUFFER_POOL>
</STORAGE>
<TABLESPACE>SYSTEM</TABLESPACE>
<LOGGING>Y</LOGGING>
</SEGMENT_ATTRIBUTES>
<COMPRESS>N</COMPRESS>
</HEAP_TABLE>
</PHYSICAL_PROPERTIES>
</RELATIONAL_TABLE>
</TABLE>
-- dbms_metadata.set_transform_param
-- http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_metada.htm#i1000135
SQL> exec dbms_metadata.set_transform_param( dbms_metadata.session_transform, 'STORAGE', FALSE);
PL/SQL procedure successfully completed.
SQL> select dbms_metadata.get_ddl('TABLE','A') from dual;
DBMS_METADATA.GET_DDL('TABLE','A')
CREATE TABLE "SYSTEM"."A"
( "ID" NUMBER(10,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
TABLESPACE "SYSTEM"
SQL> exec dbms_metadata.set_transform_param( dbms_metadata.session_transform, 'DEFAULT');
PL/SQL procedure successfully completed.
SQL> select dbms_metadata.get_ddl('TABLE','A') from dual;
DBMS_METADATA.GET_DDL('TABLE','A')
CREATE TABLE "SYSTEM"."A"
( "ID" NUMBER(10,0)
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
SQL> exec dbms_metadata.set_transform_param( dbms_metadata.session_transform, 'SEGMENT_ATTRIBUTES', FALSE);
PL/SQL procedure successfully completed.
SQL> select dbms_metadata.get_ddl('TABLE','A') from dual;
DBMS_METADATA.GET_DDL('TABLE','A')
CREATE TABLE "SYSTEM"."A"
( "ID" NUMBER(10,0)
-- dbms_metadata.set_transform_param ONLY for DDL statements...
-- http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_metada.htm#i1019414
SQL> select dbms_metadata.get_xml('TABLE','A') from dual;
DBMS_METADATA.GET_XML('TABLE','A')
<?xml version="1.0"?><ROWSET><ROW>
<TABLE_T>
<VERS_MAJOR>1</VERS_MAJOR>
<VERS_MINOR>2 </VERS_MINOR>
<OBJ_NUM>58932</OBJ_NUM>
<SCHEMA_OBJ>
<OBJ_NUM>58932</OBJ_NUM>
<DATAOBJ_NUM>58932</DATAOBJ_NUM>
<OWNER_NUM>5</OWNER_NUM>
<OWNER_NAME>SYSTEM</OWNER_NAME>
<NAME>A</NAME>
<NAMESPACE>1</NAMESPACE>
<TYPE_NUM>2</TYPE_NUM>
<TYPE_NAME>TABLE</TYPE_NAME>
<CTIME>2008-03-19 11:16:45</CTIME>
<MTIME>2008-03-19 11:16:45</MTIME>
<STIME>2008-03-19 11:16:45</STIME>
<STATUS>1</STATUS>
<FLAGS>0</FLAGS>
<SPARE1>6</SPARE1>
<SPARE2>1</SPARE2>
<SPARE3>5</SPARE3>
</SCHEMA_OBJ>
<STORAGE>
<FILE_NUM>1</FILE_NUM>
<BLOCK_NUM>65369</BLOCK_NUM>
<TYPE_NUM>5</TYPE_NUM>
<TS_NUM>0</TS_NUM>
<BLOCKS>8</BLOCKS>
<EXTENTS>1</EXTENTS>
<INIEXTS>8</INIEXTS>
<MINEXTS>1</MINEXTS>
<MAXEXTS>2147483645</MAXEXTS>
<EXTSIZE>128</EXTSIZE>
<EXTPCT>0</EXTPCT>
<USER_NUM>5</USER_NUM>
<LISTS>1</LISTS>
<GROUPS>1</GROUPS>
<BITMAPRANGES>2147483645</BITMAPRANGES>
<CACHEHINT>0</CACHEHINT>
<SCANHINT>0</SCANHINT>
<HWMINCR>58932</HWMINCR>
<FLAGS>4325377</FLAGS>
</STORAGE>
<TS_NAME>SYSTEM</TS_NAME>
<BLOCKSIZE>8192</BLOCKSIZE>
<DATAOBJ_NUM>58932</DATAOBJ_NUM>
<COLS>1</COLS>
<PCT_FREE>10</PCT_FREE>
<PCT_USED>40</PCT_USED>
<INITRANS>1</INITRANS>
<MAXTRANS>255</MAXTRANS>
<FLAGS>1</FLAGS>
<AUDIT_VAL>--------------------------------------</AUDIT_VAL>
<INTCOLS>1</INTCOLS>
<KERNELCOLS>1</KERNELCOLS>
<PROPERTY>536870912</PROPERTY>
<PROPERTY2>0</PROPERTY2>
<XMLSCHEMACOLS>N</XMLSCHEMACOLS>
<TRIGFLAG>0</TRIGFLAG>
<SPARE1>736</SPARE1>
<SPARE6>19-MAR-08</SPARE6>
<COL_LIST>
<COL_LIST_ITEM>
<OBJ_NUM>58932</OBJ_NUM>
<COL_NUM>1</COL_NUM>
<INTCOL_NUM>1</INTCOL_NUM>
<SEGCOL_NUM>1</SEGCOL_NUM>
<PROPERTY>0</PROPERTY>
<NAME>ID</NAME>
<TYPE_NUM>2</TYPE_NUM>
<LENGTH>22</LENGTH>
<PRECISION_NUM>10</PRECISION_NUM>
<SCALE>0</SCALE>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<BASE_INTCOL_NUM>1</BASE_INTCOL_NUM>
<BASE_COL_TYPE>0</BASE_COL_TYPE>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
</COL_LIST>
<CON0_LIST/>
<CON1_LIST/>
<CON2_LIST/>
<REFPAR_LEVEL>0</REFPAR_LEVEL>
</TABLE_T>
</ROW></ROWSET>
SQL> select dbms_metadata.get_xml('TABLE','B') from dual;
DBMS_METADATA.GET_XML('TABLE','B')
<?xml version="1.0"?><ROWSET><ROW>
<TABLE_T>
<VERS_MAJOR>1</VERS_MAJOR>
<VERS_MINOR>2 </VERS_MINOR>
<OBJ_NUM>58933</OBJ_NUM>
<SCHEMA_OBJ>
<OBJ_NUM>58933</OBJ_NUM>
<DATAOBJ_NUM>58933</DATAOBJ_NUM>
<OWNER_NUM>5</OWNER_NUM>
<OWNER_NAME>SYSTEM</OWNER_NAME>
<NAME>B</NAME>
<NAMESPACE>1</NAMESPACE>
<TYPE_NUM>2</TYPE_NUM>
<TYPE_NAME>TABLE</TYPE_NAME>
<CTIME>2008-03-19 11:17:05</CTIME>
<MTIME>2008-03-19 11:17:05</MTIME>
<STIME>2008-03-19 11:17:05</STIME>
<STATUS>1</STATUS>
<FLAGS>0</FLAGS>
<SPARE1>6</SPARE1>
<SPARE2>1</SPARE2>
<SPARE3>5</SPARE3>
</SCHEMA_OBJ>
<STORAGE>
<FILE_NUM>1</FILE_NUM>
<BLOCK_NUM>65377</BLOCK_NUM>
<TYPE_NUM>5</TYPE_NUM>
<TS_NUM>0</TS_NUM>
<BLOCKS>8</BLOCKS>
<EXTENTS>1</EXTENTS>
<INIEXTS>8</INIEXTS>
<MINEXTS>1</MINEXTS>
<MAXEXTS>2147483645</MAXEXTS>
<EXTSIZE>128</EXTSIZE>
<EXTPCT>0</EXTPCT>
<USER_NUM>5</USER_NUM>
<LISTS>1</LISTS>
<GROUPS>1</GROUPS>
<BITMAPRANGES>2147483645</BITMAPRANGES>
<CACHEHINT>0</CACHEHINT>
<SCANHINT>0</SCANHINT>
<HWMINCR>58933</HWMINCR>
<FLAGS>4325377</FLAGS>
</STORAGE>
<TS_NAME>SYSTEM</TS_NAME>
<BLOCKSIZE>8192</BLOCKSIZE>
<DATAOBJ_NUM>58933</DATAOBJ_NUM>
<COLS>1</COLS>
<PCT_FREE>10</PCT_FREE>
<PCT_USED>40</PCT_USED>
<INITRANS>1</INITRANS>
<MAXTRANS>255</MAXTRANS>
<FLAGS>1</FLAGS>
<AUDIT_VAL>--------------------------------------</AUDIT_VAL>
<INTCOLS>1</INTCOLS>
<KERNELCOLS>1</KERNELCOLS>
<PROPERTY>536870912</PROPERTY>
<PROPERTY2>0</PROPERTY2>
<XMLSCHEMACOLS>N</XMLSCHEMACOLS>
<TRIGFLAG>0</TRIGFLAG>
<SPARE1>736</SPARE1>
<SPARE6>19-MAR-08</SPARE6>
<COL_LIST>
<COL_LIST_ITEM>
<OBJ_NUM>58933</OBJ_NUM>
<COL_NUM>1</COL_NUM>
<INTCOL_NUM>1</INTCOL_NUM>
<SEGCOL_NUM>1</SEGCOL_NUM>
<PROPERTY>0</PROPERTY>
<NAME>ID</NAME>
<TYPE_NUM>2</TYPE_NUM>
<LENGTH>22</LENGTH>
<PRECISION_NUM>15</PRECISION_NUM>
<SCALE>0</SCALE>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<BASE_INTCOL_NUM>1</BASE_INTCOL_NUM>
<BASE_COL_TYPE>0</BASE_COL_TYPE>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
</COL_LIST>
<CON0_LIST/>
<CON1_LIST/>
<CON2_LIST/>
<REFPAR_LEVEL>0</REFPAR_LEVEL>
</TABLE_T>
</ROW></ROWSET>
SQL> desc a
Name Null? Type
ID NUMBER(10)
SQL> desc b
Name Null? Type
ID NUMBER(15)
SQL> exec dbms_metadata.set_transform_param( dbms_metadata.session_transform, 'DEFAULT');
PL/SQL procedure successfully completed.
SQL> select XMLDIFF(
2 xmltype(dbms_metadata.get_xml('TABLE','A')),
3 xmltype(dbms_metadata.get_xml('TABLE','B'))
4 ) as "DIFFERENCES"
5 from dual;
DIFFERENCES
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns.oracle.com/xdb/xdiff.xsd"
xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-algorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]">
<xd:content>B</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/CTIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/MTIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/STIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/BLOCK_NUM[1]/text()[1]">
<xd:content>65377</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/HWMINCR[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/PRECISION_NUM[1]/text()[1]">
<xd:content>15</xd:content>
</xd:update-node>
</xd:xdiff>
SQL> select XMLDIFF(
2 xmltype(dbms_metadata.get_xml('TABLE','B')),
3 xmltype(dbms_metadata.get_xml('TABLE','A'))
4 ) as "DIFFERENCES"
5 from dual;
DIFFERENCES
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns.oracle.com/xdb/xdiff.xsd"
xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-al
gorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]">
<xd:content>A</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/CTIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/MTIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/STIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/BLOCK_NUM[1]/text()[1]">
<xd:content>65369</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/HWMINCR[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/PRECISION_NUM[1]/text()[1]">
<xd:content>10</xd:content>
</xd:update-node>
</xd:xdiff>
SQL> WITH tabxml AS
2 (SELECT XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','B'))
5 ) xmlset
6 FROM dual)
7 SELECT u.element_name
8 , u.element_value
9 FROM tabxml
10 , XMLTABLE
11 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
12 ,'//xd:update-node'
13 PASSING xmlset
14 COLUMNS element_name xmltype PATH '//xd:update-node/@xd:xpath'
15 , element_value xmltype PATH '//xd:content/text()'
16 ) u
17 ;
ELEMENT_NAME
ELEMENT_VALUE
/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ_NUM[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/OBJ_NUM[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/DATAOBJ_NUM[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]
B
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/CTIME[1]/text()[1]
2008-03-19 11:17:05
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/MTIME[1]/text()[1]
2008-03-19 11:17:05
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/STIME[1]/text()[1]
2008-03-19 11:17:05
/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/BLOCK_NUM[1]/text()[1]
65377
/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/HWMINCR[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/DATAOBJ_NUM[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/OBJ_NUM[1]/text()[1]
58933
/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_ITEM[1]/PRECISION_NUM[1]/text(
)[1]
15
12 rows selected.
SQL> WITH tabxml AS
2 (SELECT XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','B'))
5 ) xmlset
6 FROM dual)
7 SELECT u.element_name
8 , u.element_value
9 FROM tabxml
10 , XMLTABLE
11 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
12 ,'//xd:update-node'
13 PASSING xmlset
14 COLUMNS element_name xmltype PATH '//xd:update-node[@xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]"]'
15 , element_value xmltype PATH '//xd:content/text()'
16 ) u
17 WHERE u.element_name is not null
18 ;
ELEMENT_NAME
ELEMENT_VALUE
<xd:update-node xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xd:node-type="t
ext" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]"><xd
:content>B</xd:content></xd:update-node>
B
SQL> col NAME for a60
SQL> col VALUE for a20
SQL> WITH tabxml AS
2 (SELECT XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','B'))
5 ) xmlset
6 FROM dual)
7 SELECT extract(u.element_name,'//@xd:xpath','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "NAME"
8 , u.element_value as "VALUE"
9 FROM tabxml
10 , XMLTABLE
11 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
12 ,'//xd:update-node'
13 PASSING xmlset
14 COLUMNS element_name xmltype PATH '//xd:update-node[@xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]"]'
15 , element_value xmltype PATH '//xd:content/text()'
16 ) u
17 WHERE u.element_name is not null
18 ;
NAME VALUE
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1] B
SQL> select XMLCONCAT(XMLDIFF(
2 xmltype(dbms_metadata.get_xml('TABLE','A')),
3 xmltype(dbms_metadata.get_xml('TABLE','B'))
4 ),
5 XMLDIFF(
6 xmltype(dbms_metadata.get_xml('TABLE','B')),
7 xmltype(dbms_metadata.get_xml('TABLE','A'))
8 ) )
9 from dual;
XMLCONCAT(XMLDIFF(XMLTYPE(DBMS_METADATA.GET_XML('TABLE','A')),XMLTYPE(DBMS_METAD
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns
.oracle.com/xdb/xdiff.xsd" xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmln
s:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-al
gorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ
_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/NAME[1]/text()[1]">
<xd:content>B</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/CTIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/MTIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/STIME[1]/text()[1]">
<xd:content>2008-03-19 11:17:05</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STO
RAGE[1]/BLOCK_NUM[1]/text()[1]">
<xd:content>65377</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STO
RAGE[1]/HWMINCR[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DAT
AOBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL
_LIST[1]/COL_LIST_ITEM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58933</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL
_LIST[1]/COL_LIST_ITEM[1]/PRECISION_NUM[1]/text()[1]">
<xd:content>15</xd:content>
</xd:update-node>
</xd:xdiff>
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns
.oracle.com/xdb/xdiff.xsd" xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmln
s:xsi="http://www.w3.org/2001/XMLSchema-instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-al
gorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ
_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/DATAOBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/NAME[1]/text()[1]">
<xd:content>A</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/CTIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/MTIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCH
EMA_OBJ[1]/STIME[1]/text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STO
RAGE[1]/BLOCK_NUM[1]/text()[1]">
<xd:content>65369</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STO
RAGE[1]/HWMINCR[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DAT
AOBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL
_LIST[1]/COL_LIST_ITEM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL
_LIST[1]/COL_LIST_ITEM[1]/PRECISION_NUM[1]/text()[1]">
<xd:content>10</xd:content>
</xd:update-node>
</xd:xdiff>
SQL> WITH tabxml AS
2 ( select XMLCONCAT(XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','B'))
5 ),
6 XMLDIFF(
7 xmltype(dbms_metadata.get_xml('TABLE','B')),
8 xmltype(dbms_metadata.get_xml('TABLE','A'))
9 ) ) xmlset
10 from DUAL)
11 SELECT extract(u.element_name,'//@xd:xpath','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "NAME"
12 , u.element_value as "VALUE"
13 FROM tabxml
14 , XMLTABLE
15 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
16 ,'//xd:update-node'
17 PASSING xmlset
18 COLUMNS element_name xmltype PATH '//xd:update-node[@xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]"]'
19 , element_value xmltype PATH '//xd:content/text()'
20 ) u
21 WHERE u.element_name is not null
22 ;
NAME VALUE
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1] B
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1] A
SQL> WITH tabxml AS
2 ( select XMLCONCAT(XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','B'))
5 ),
6 XMLDIFF(
7 xmltype(dbms_metadata.get_xml('TABLE','B')),
8 xmltype(dbms_metadata.get_xml('TABLE','A'))
9 ) ) xmlset
10 from DUAL)
11 SELECT extract(u.element_name,'//@xd:xpath','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "NAME"
12 , u.element_value as "VALUE"
13 FROM tabxml
14 , XMLTABLE
15 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
16 ,'/xd:xdiff/xd:update-node'
17 PASSING xmlset
18 COLUMNS element_name xmltype PATH '/xd:update-node[@xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1]"]'
19 , element_value xmltype PATH '/xd:update-node/xd:content/text()'
20 ) u
21 WHERE u.element_name is not null
22 ;
NAME VALUE
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1] B
/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/text()[1] A
SQL> select XMLCONCAT(XMLDIFF(
2 xmltype(dbms_metadata.get_xml('TABLE','A')),
3 xmltype(dbms_metadata.get_xml('TABLE','C'))
4 ),
5 XMLDIFF(
6 xmltype(dbms_metadata.get_xml('TABLE','C')),
7 xmltype(dbms_metadata.get_xml('TABLE','A'))
8 ) )
9 from DUAL
10 ;
XMLCONCAT(XMLDIFF(XMLTYPE(DBMS_METADATA.GET_XML('TABLE','A')),XMLTYPE(DBMS_METADATA.GET_XML('TABLE',
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns.oracle.com/xdb/xdif
f.xsd" xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-algorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/OBJ_NUM[1
]/text()[1]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/DATAOBJ_N
UM[1]/text()[1]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/t
ext()[1]">
<xd:content>C</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/CTIME[1]/
text()[1]">
<xd:content>2008-03-19 15:08:47</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/MTIME[1]/
text()[1]">
<xd:content>2008-03-19 15:08:47</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/STIME[1]/
text()[1]">
<xd:content>2008-03-19 15:08:47</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/BLOCK_NUM[1]
/text()[1]">
<xd:content>65385</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/HWMINCR[1]/t
ext()[1]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DATAOBJ_NUM[1]/text()[1
]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COLS[1]/text()[1]">
<xd:content>2</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/INTCOLS[1]/text()[1]">
<xd:content>2</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/KERNELCOLS[1]/text()[1]
">
<xd:content>2</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_IT
EM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58935</xd:content>
</xd:update-node>
<xd:append-node xd:node-type="element" xd:parent-xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]">
<xd:content>
<COL_LIST_ITEM>
<OBJ_NUM>58935</OBJ_NUM>
<COL_NUM>2</COL_NUM>
<INTCOL_NUM>2</INTCOL_NUM>
<SEGCOL_NUM>2</SEGCOL_NUM>
<PROPERTY>0</PROPERTY>
<NAME>EXTRA</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>50</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>873</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<BASE_INTCOL_NUM>2</BASE_INTCOL_NUM>
<BASE_COL_TYPE>0</BASE_COL_TYPE>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>50</SPARE3>
</COL_LIST_ITEM>
</xd:content>
</xd:append-node>
</xd:xdiff>
<xd:xdiff xsi:schemaLocation="http://xmlns.oracle.com/xdb/xdiff.xsd http://xmlns.oracle.com/xdb/xdif
f.xsd" xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance">
<?oracle-xmldiff operations-in-docorder="true" output-model="snapshot" diff-algorithm="global"?>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/OBJ_NUM[1
]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/DATAOBJ_N
UM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/NAME[1]/t
ext()[1]">
<xd:content>A</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/CTIME[1]/
text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/MTIME[1]/
text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/SCHEMA_OBJ[1]/STIME[1]/
text()[1]">
<xd:content>2008-03-19 11:16:45</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/BLOCK_NUM[1]
/text()[1]">
<xd:content>65369</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/STORAGE[1]/HWMINCR[1]/t
ext()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/DATAOBJ_NUM[1]/text()[1
]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COLS[1]/text()[1]">
<xd:content>1</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/INTCOLS[1]/text()[1]">
<xd:content>1</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/KERNELCOLS[1]/text()[1]
">
<xd:content>1</xd:content>
</xd:update-node>
<xd:update-node xd:node-type="text" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST_IT
EM[1]/OBJ_NUM[1]/text()[1]">
<xd:content>58932</xd:content>
</xd:update-node>
<xd:delete-node xd:node-type="element" xd:xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]/COL_LIST
_ITEM[2]"/>
</xd:xdiff>
SQL> col LENGTH for a10
SQL> WITH tabxml AS
2 ( select XMLCONCAT(XMLDIFF(
3 xmltype(dbms_metadata.get_xml('TABLE','A')),
4 xmltype(dbms_metadata.get_xml('TABLE','C'))
5 ),
6 XMLDIFF(
7 xmltype(dbms_metadata.get_xml('TABLE','C')),
8 xmltype(dbms_metadata.get_xml('TABLE','A'))
9 ) ) xmlset
10 from DUAL)
11 SELECT extract(v.append_name,'//@xd:parent-xpath','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "NAME"
12 , extract(v.append_value,'//COL_LIST_ITEM/NAME/text()','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "VALUE"
13 , extract(v.append_value,'//COL_LIST_ITEM/LENGTH/text()','xmlns:xd="http://xmlns.oracle.com/xdb/xdiff.xsd"') as "LENGTH"
14 FROM tabxml
15 , XMLTABLE
16 (XMLNAMESPACES ('http://xmlns.oracle.com/xdb/xdiff.xsd' AS "xd")
17 ,'/xd:xdiff/xd:append-node'
18 PASSING xmlset
19 COLUMNS append_name xmltype PATH '/xd:append-node[@xd:parent-xpath="/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1]"]'
20 , append_value xmltype PATH '/xd:append-node/xd:content'
21 ) v
22 WHERE v.append_name is not null
23 ;
NAME VALUE LENGTH
/ROWSET[1]/ROW[1]/TABLE_T[1]/COL_LIST[1] EXTRA 50
SQL> drop procedure proc_01;
Procedure dropped.
SQL>
SQL> create or replace procedure proc_01
2 as
3 begin
4 null;
5 end;
6 /
Procedure created.
SQL>
SQL> drop procedure proc_02;
Procedure dropped.
SQL>
SQL> create or replace procedure proc_02
2 as
3 begin
4 NULL;
5 -- this is extra
6 end;
7 /
Procedure created.
SQL> select dbms_metadata.get_ddl('PROCEDURE','PROC_01') from dual;
DBMS_METADATA.GET_DDL('PROCEDURE','PROC_01')
CREATE OR REPLACE PROCEDURE "SYSTEM"."PROC_01"
as
begin
null;
end;
SQL> select dbms_metadata.get_ddl('PROCEDURE','PROC_02') from dual;
DBMS_METADATA.GET_DDL('PROCEDURE','PROC_02')
CREATE OR REPLACE PROCEDURE "SYSTEM"."PROC_02"
as
begin
NULL;
-- this is extra
end;
SQL> select dbms_metadata.get_xml('PROCEDURE','PROC_01') from dual;
DBMS_METADATA.GET_XML('PROCEDURE','PROC_01')
<?xml version="1.0"?><ROWSET><ROW>
<PROCEDURE_T>
<VERS_MAJOR>1</VERS_MAJOR>
<VERS_MINOR>1 </VERS_MINOR>
<OBJ_NUM>58937</OBJ_NUM>
<TYPE_NUM>7</TYPE_NUM>
<SCHEMA_OBJ>
<OBJ_NUM>58937</OBJ_NUM>
<OWNER_NUM>5</OWNER_NUM>
<OWNER_NAME>SYSTEM</OWNER_NAME>
<NAME>PROC_01</NAME>
<NAMESPACE>1</NAMESPACE>
<TYPE_NUM>7</TYPE_NUM>
<TYPE_NAME>PROCEDURE</TYPE_NAME>
<CTIME>2008-03-19 16:39:34</CTIME>
<MTIME>2008-03-19 16:39:34</MTIME>
<STIME>2008-03-19 16:39:34</STIME>
<STATUS>1</STATUS>
<FLAGS>0</FLAGS>
<SPARE1>6</SPARE1>
<SPARE2>65535</SPARE2>
<SPARE3>5</SPARE3>
</SCHEMA_OBJ>
<SOURCE_LINES>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58937</OBJ_NUM>
<LINE>1</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>18</POST_NAME_OFF>
<POST_KEYW>11</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>procedure proc_01
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58937</OBJ_NUM>
<LINE>2</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>as
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58937</OBJ_NUM>
<LINE>3</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>begin
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58937</OBJ_NUM>
<LINE>4</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE> null;
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58937</OBJ_NUM>
<LINE>5</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>end;</SOURCE>
</SOURCE_LINES_ITEM>
</SOURCE_LINES>
</PROCEDURE_T>
</ROW></ROWSET>
SQL> select dbms_metadata.get_xml('PROCEDURE','PROC_02') from dual;
DBMS_METADATA.GET_XML('PROCEDURE','PROC_02')
<?xml version="1.0"?><ROWSET><ROW>
<PROCEDURE_T>
<VERS_MAJOR>1</VERS_MAJOR>
<VERS_MINOR>1 </VERS_MINOR>
<OBJ_NUM>58938</OBJ_NUM>
<TYPE_NUM>7</TYPE_NUM>
<SCHEMA_OBJ>
<OBJ_NUM>58938</OBJ_NUM>
<OWNER_NUM>5</OWNER_NUM>
<OWNER_NAME>SYSTEM</OWNER_NAME>
<NAME>PROC_02</NAME>
<NAMESPACE>1</NAMESPACE>
<TYPE_NUM>7</TYPE_NUM>
<TYPE_NAME>PROCEDURE</TYPE_NAME>
<CTIME>2008-03-19 16:39:34</CTIME>
<MTIME>2008-03-19 16:39:34</MTIME>
<STIME>2008-03-19 16:39:34</STIME>
<STATUS>1</STATUS>
<FLAGS>0</FLAGS>
<SPARE1>6</SPARE1>
<SPARE2>65535</SPARE2>
<SPARE3>5</SPARE3>
</SCHEMA_OBJ>
<SOURCE_LINES>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58938</OBJ_NUM>
<LINE>1</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>18</POST_NAME_OFF>
<POST_KEYW>11</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>procedure proc_02
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58938</OBJ_NUM>
<LINE>2</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>as
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58938</OBJ_NUM>
<LINE>3</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0</POST_KEYW>
<PRE_NAME_LEN>0</PRE_NAME_LEN>
<SOURCE>begin
</SOURCE>
</SOURCE_LINES_ITEM>
<SOURCE_LINES_ITEM>
<OBJ_NUM>58938</OBJ_NUM>
<LINE>4</LINE>
<PRE_NAME>0</PRE_NAME>
<POST_NAME_OFF>0</POST_NAME_OFF>
<POST_KEYW>0<Hi ,
Document link :http://docs.oracle.com/cd/E23943_01/doc.1111/e10792/c04_settings.htm#CSMSP463
This gives details and sample for the configuration of JDBC storage with WCC .
Thanks,
Srinath -
Hi there,
Using the MDK:
-I have set up my publication items
-added them to my publication
-used the packaging wizard to setup my application and attach it to the publication
-used the Oracle Mobile administrator to create a user.
-used the Oracle Mobile administrator to assign the user to the application.
On Win32, I download the WIN32 Setup and run it with the user and password.
It sets up the DMAgent, etc, and installs all of the oracle lite stuff into c:\mobileclient
Next, I run MSYNC.EXE with the user's name. It completes successfully. What happens next is very strange:
C:\Documents and Settings\allen>msql system/moogle@polite:tenchi_pman
Oracle Lite MSQL Version 10.3.0.1.0
Copyright (c) 1997, 2007, Oracle. All rights reserved.
[POL-5246] user SYSTEM does not exist
C:\Documents and Settings\allen>
Has anyone encountered this?
Thanks,
Allen
p.s. my environment details are as follows:
Mobile Repository Configuration
Operating System: Linux 2.6
Oracle Database: 10.2.0.3.0
Mobile Server Configuration (all the latest patches applied at this time)
Mobile Server Install Type: Standalone
Operating System: Microsoft Windows XP
Mobile Server: 10.3.0.1.0
Secure Socket Layer: No
Part of Web Farm: No
Java J2SE: 1.5.0_15
Mobile Client Configuration
Mobile Client Type: Windows 32
Operating System: Microsoft Windows XP SP2
Mobile Client: 10.3.0.1.0Is there a way for me to create the SYSTEM user in the Oracle Lite database, or is this error a symptom of a different problem?
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.CAT (TABLE_NAME, TABLE_TYPE) AS SELECT TABLE_NAME, TABLE_TYPE FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_CONSTRAINTS (OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, VALIDATED) AS SELECT OWNER, CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, SEARCH_CONDITION, R_OWNER, R_CONSTRAINT_NAME, DELETE_RULE, STATUS, VALIDATED FROM SYSTEM.POL__CONS
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_CONS_COLUMNS ( OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION) AS SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, POSITION FROM SYSTEM.POL__COLUSAGE
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.TABLE_PRIVILEGES ( OWNER, TABLE_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE) AS SELECT OWNER, TABLE_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE FROM SYSTEM.ALL_PRIVILEGES WHERE OBJECT_TYPE = 0
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.COLUMN_PRIVILEGES ( OWNER, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE) AS SELECT OWNER, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE, GRANT_TYPE, GRANTABLE FROM SYSTEM.ALL_PRIVILEGES WHERE OBJECT_TYPE = 5
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_VIEWS ( OWNER, VIEW_NAME, TEXT_LENGTH, TEXT) AS SELECT TABLE_SCH, TABLE_NAME, VIEW_LEN, VIEW_TEXT FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('VIEW')
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TABLES ( OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, PCT_FREE, PCT_USED, INI_TRANS, MAX_TRANS, INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE, BACKED_UP, NUM_ROWS, BLOCKS, EMPTY_BLOCKS, AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN) AS SELECT TABLE_SCH, TABLE_NAME, CAST('OOT' AS VARCHAR(128)), CAST(NULL AS VARCHAR(128)), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(0 AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS VARCHAR(1)), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER) FROM SYSTEM."okClass" WHERE TABLE_TYPE IN ('TABLE')
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TAB_COLUMNS ( OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, COLUMN_ID, DEFAULT_LENGTH, DATA_DEFAULT, NUM_DISTINCT, LOW_VALUE, HIGH_VALUE, IS_HIDDEN) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, CASE TYPE_CODE WHEN -16 THEN 'NCLOB' WHEN -15 THEN 'CLOB' WHEN -14 THEN 'BLOB' WHEN -13 THEN CAST('LONG' AS VARCHAR(30)) WHEN -12 THEN 'NUMBER' WHEN -11 THEN 'ROWID' WHEN -10 THEN 'LONG RAW' WHEN -9 THEN 'RAW' WHEN -8 THEN 'TINYINT' WHEN -7 THEN 'LONG VARBINARY' WHEN -6 THEN 'VARBINARY' WHEN -5 THEN 'BINARY' WHEN -4 THEN 'BIGINT' WHEN -3 THEN 'LONG VARCHAR' WHEN -2 THEN 'REF' WHEN -1 THEN 'UNKNOWN' WHEN 1 THEN 'CHAR' WHEN 2 THEN 'NUMERIC' WHEN 3 THEN 'DECIMAL' WHEN 4 THEN 'INTEGER' WHEN 5 THEN 'SMALLINT' WHEN 6 THEN 'FLOAT' WHEN 7 THEN 'REAL' WHEN 8 THEN 'DOUBLE' WHEN 9 THEN CASE SUBTYPE_CODE WHEN 1 THEN CAST('DATE' AS VARCHAR(9)) WHEN 2 THEN 'TIME' WHEN 4 THEN 'TIMESTAMP' ELSE 'EMPTY' END WHEN 10 THEN 'INTERVAL' WHEN 12 THEN 'VARCHAR' WHEN 13 THEN 'VARCHAR2' WHEN 14 THEN 'BIT' ELSE 'EMPTY' END, CASE WHEN TYPE_CODE <> 9 THEN COL_PRECISION WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 1 THEN 8 WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 2 THEN 6 WHEN TYPE_CODE = 9 AND SUBTYPE_CODE = 4 THEN 15 ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE NOT IN (-16, -15, -14, -13, -11, -10, -9, -7, -6, -5, -3, 1, 9, 12, 13) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE IN (-12, 2, 3, 4, 5, 10) THEN COL_SCALE ELSE CAST(NULL AS INTEGER) END, CASE NULLABILITY WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END, POSITION, CASE DEFAULT_LENGTH WHEN 0 THEN CAST(NULL AS INTEGER) ELSE DEFAULT_LENGTH END, CASE DEFAULT_LENGTH WHEN 0 THEN CAST(NULL AS VARCHAR(4096)) ELSE DATA_DEFAULT END, CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CASE ISHIDDEN WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END FROM SYSTEM."okAttr" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.USER_OBJECTS ( OWNER, OBJECT_NAME, OBJECT_ID, OBJECT_TYPE, CREATED, LAST_DDL_TIME, CREATED_TIME, STATUS) AS SELECT SCHEMA_NAME, OBJECT_NAME, OBJECT_ID, CASE OBJECT_TYPE WHEN 0 THEN CAST('TABLE' AS VARCHAR(128)) WHEN 1 THEN 'VIEW' WHEN 2 THEN 'INDEX' WHEN 3 THEN 'SEQUENCE' ELSE 'SYNONYM' END, CAST(CREATED AS DATE), CAST(CREATED AS DATE), CAST(CAST(CREATED AS TIMESTAMP(0)) AS VARCHAR(128)), CAST('VALID' AS VARCHAR(128)) FROM SYSTEM.POL__ALLOBJ WHERE OBJECT_NAME NOT LIKE 'POL_%' AND SCHEMA_NAME IN (SELECT NAME FROM POL__SCHEMATA WHERE OWNER = USER)
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_USERS ( USERNAME, USER_ID, CREATED) AS SELECT USERNAME, USER_ID, CREATED FROM SYSTEM.POL__USERS
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_OBJECTS ( OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, STATUS) AS SELECT SCHEMA_NAME, OBJECT_NAME, CASE OBJECT_TYPE WHEN 0 THEN CAST('TABLE' AS VARCHAR(128)) WHEN 1 THEN 'VIEW' WHEN 2 THEN 'INDEX' WHEN 3 THEN 'SEQUENCE' ELSE 'SYNONYM' END, CAST(CREATED AS DATE), CAST('VALID' AS VARCHAR(128)) FROM SYSTEM.POL__ALLOBJ
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ACCESSIBLE_COLUMNS ( OWNER, TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, COLUMN_ID, DEFAULT_LENGTH, DATA_DEFAULT, NUM_DISTINCT, LOW_VALUE, HIGH_VALUE) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, CASE TYPE_CODE WHEN -4 THEN CAST('BIGINT' AS VARCHAR(128)) WHEN -3 THEN 'LONGVARCHAR' WHEN -2 THEN 'REF' WHEN -1 THEN 'UNKNOWN' WHEN 1 THEN 'CHAR' WHEN 2 THEN 'NUMERIC' WHEN 3 THEN 'DECIMAL' WHEN 4 THEN 'INTEGER' WHEN 5 THEN 'SMALLINT' WHEN 6 THEN 'FLOAT' WHEN 7 THEN 'REAL' WHEN 8 THEN 'DOUBLE' WHEN 9 THEN 'DATETIME' WHEN 10 THEN 'INTERVAL' WHEN 11 THEN 'VARCHAR' ELSE 'EMPTY' END, CASE WHEN TYPE_CODE IN (-3, 1, 11) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE NOT IN (-3, 1, 11) THEN COL_PRECISION ELSE CAST(NULL AS INTEGER) END, CASE WHEN TYPE_CODE IN (2, 3, 4, 5, 9, 10) THEN COL_SCALE ELSE CAST(NULL AS INTEGER) END, CASE NULLABILITY WHEN 0 THEN CAST('N' AS VARCHAR(1)) ELSE 'Y' END, POSITION, CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER), CAST(NULL AS INTEGER) FROM SYSTEM."okAttr" WHERE TABLE_TYPE IN ('TABLE', 'VIEW')
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_INDEXES ( OWNER, INDEX_NAME, TABLE_OWNER, TABLE_NAME, TABLE_TYPE, UNIQUENESS) AS SELECT SCHEMA_NAME, INDEX_NAME, TABLE_SCHEMA, TABLE_NAME, CAST('TABLE' AS VARCHAR(10)), IS_UNIQUE FROM SYSTEM.POL__INDICES
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_IND_COLUMNS ( INDEX_OWNER, INDEX_NAME, TABLE_OWNER, TABLE_NAME, COLUMN_NAME, COLUMN_POSITION) AS SELECT SCHEMA_NAME, INDEX_NAME, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, INDEX_POSITION FROM SYSTEM.POL__INDICESDT
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_COL_COMMENTS ( OWNER, TABLE_NAME, COLUMN_NAME, COMMENTS) AS SELECT COLUMN_SCH, TABLE_NAME, COLUMN_NAME, COLUMN_COMMENT FROM SYSTEM."okAttr" WHERE COLUMN_COMMENT IS NOT NULL
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_TAB_COMMENTS ( OWNER, TABLE_NAME, TABLE_TYPE, COMMENTS) AS SELECT TABLE_SCH, TABLE_NAME, TABLE_TYPE, TABLE_COMMENT FROM SYSTEM."okClass" WHERE TABLE_COMMENT IS NOT NULL
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_SYNONYMS ( OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, DB_LINK) AS SELECT OWNER, SYNONYM_NAME, TABLE_OWNER, TABLE_NAME, CAST('NULL' AS VARCHAR(128)) FROM SYSTEM.POL__SYNONYM
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.ALL_SEQUENCES ( SEQUENCE_OWNER, SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY) AS SELECT SCHEMA_NAME, SEQ_NAME, MIN_VALUE, MAX_VALUE, INC_BY FROM SYSTEM.POL__SEQ WHERE SEQ_NAME NOT LIKE 'POL_%'
Tid=0f34, Statement Text:CREATE VIEW SYSTEM.DATABASE_PARAMETERS AS SELECT PARAMETER, VALUE FROM SYSTEM.POL__DATABASE_PARAMETERS
Does anything look amiss with this oldb_trc.txt file?
Allen -
More than 100 Mb space in tablespace but keeps having ORA-1653 unable to ex
Platform AIX 6.1
Oracle version 10.2.0.5.3
JOB_DET is a single table in one tablespace D_LGA1. It's space taken is 12096 Mb, the tablespace is capped at 12288 Mb, so technically it has 191 Mb free space.
13:06:55 SQL> select segment_name,tablespace_name,bytes/1024/1024 as mbytes
13:07:13 2 from dba_segments where segment_name='JOB_DET';
SEGMENT_NAME TABLESPACE_NAME MBYTES
JOB_DET D_LGA1 12096
13:08:00 SQL> select tablespace_name, sum(bytes/1024/1024) as sum_mb,
sum(maxbytes/1024/1024) as sum_maxbytes_mb, AUTOEXTENSIBLE
from dba_data_files
where tablespace_name in ('D_LGA1') group by tablespace_name, autoextensible order by 1;
TABLESPACE_NAME SUM_MB SUM_MAXBYTES_MB AUTOEXTEN
D_LGA1 12288 12288 YES
13:08:16 SQL> select tablespace_name, sum(bytes/1024/1024) as sum_free_mb
13:08:25 2 from dba_free_space where tablespace_name in ('D_LGA1')
13:08:32 3 group by tablespace_name order by 1;
TABLESPACE_NAME SUM_FREE_MB
D_LGA1 191.8125however I keep getting ORA-1653 in the alert log.
Thu Mar 08 13:09:54 TAIST 2012
ORA-1653: unable to extend table ADMIN.JOB_DET by 128 in tablespace D_LGA1
ORA-1653: unable to extend table ADMIN.JOB_DET by 8192 in tablespace D_LGA1
...OK, this is weird, but nevertheless, I added another datafile, which allows it to extend the size.
After which, the size of the segment JOB_DET is 12160 Mb, which was lesser than the original max size!! There doesnt seem to be any fragmentation going on there. I'm puzzled. Someone able to explain?
14:42:26 SQL> select segment_name,tablespace_name,bytes/1024/1024 as mbytes
14:42:28 2 from dba_segments where segment_name='JOB_DET';
SEGMENT_NAME TABLESPACE_NAME MBYTES
JOB_DET D_LGA1 12160Edited by: len on Mar 8, 2012 3:05 PMHi sybrand,
would this help?
SQL> select * from dba_tables where table_name='JOB_DET';
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME STATUS PCT_FREE PCT_USED INI_TRANS
MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUP
BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLO
DEGREE INSTANCES CACHE TABLE_LO SAMPLE_SIZE LAST_ANAL PAR
IOT_TYPE T S NES BUFFER_ ROW_MOVE GLO USE DURATION SKIP_COR MON CLUSTER_OWNER DEPENDEN
COMPRESS DRO
ADMIN JOB_DET D_LG06 VALID 5 2
255 65536 1048576 1 2147483645 YES N 51475345
1531830 0 0 0 158 0 0
1 1 N ENABLED 51475345 10-FEB-12 NO
N N NO DEFAULT DISABLED YES NO DISABLED YES DISABLED
DISABLED NO
SQL> select * from dba_free_space where tablespace_name='D_LGA1';
TABLESPACE_NAME FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
D_LGA1 28 516100 67043328 8184 28
D_LGA1 36 516105 67043328 8184 36
D_LGA1 75 8201 37814272 4616 75
D_LGA1 119 516105 67043328 8184 119
SQL> select * from dba_tablespaces where tablespace_name='D_LGA1';
TABLESPACE_NAME BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE MIN_EXTLE
CONTENTS LOGGING FOR EXTENT_MAN ALLOCATIO PLU SEGMEN DEF_TAB_ RETENTION BIG
D_LGA1 8192 65536 1 2147483645 65536 ONLINE
PERMANENT LOGGING NO LOCAL SYSTEM NO AUTO DISABLED NOT APPLY NOEach data file has roughly 64 Mb free space in them, the only way I can think it would result in ORA-1653 is if what the application was trying to insert/update far exceeds 64 Mb at one go?
This is my assumption, or am I out of the box already? -
How to verify reused table space in oracle 10g ?
Hi..
From my system, i have seen that the table size keep increasing event the delete query is running. Due to that, I would to check either the oracle allowed to reuse the table space or not ? if not then how could i enable it ?
Please help me..
Thank you,
BaharinYou can use dbms_space.space_usage to check the for free space.
Space reuse will depend on whether you are using MSSM or ASSM, PCT_FREE, PCT_USED, and how new data is inserted ?
You can shrink or move the table and rebuild indexes to reclaim space. -
How much space does a blob use?
How much space does a BLOB use?
Does it use allocated anyspace if its empty?It will size appropriately:
TEST.SQL>CREATE TABLE TBLOB
2 (
3 A BLOB
4 ) TABLESPACE _SANITIZED_;
TABLE CREATED.
TEST.SQL>SELECT INITIAL_EXTENT FROM DBA_TABLESPACES WHERE TABLESPACE_NAME='_SANITIZED_';
INITIAL_EXTENT
5242880
TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME='TBLOB';
OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE
TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
YJAM TBLOB TABLE
_SANITIZED_ 0 16 1201289 5242880 640 16
TEST.SQL>SELECT * FROM DBA_OBJECTS WHERE CREATED > SYSDATE-1;
OWNER OBJECT_NAME
SUBOBJECT_NAME OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE CREATED LAST_DDL TIMESTAMP STATUS T G S
YJAM SYS_LOB0000920875C00001$$
920876 920876 LOB 14:41:36 14:41:36 2005-11-16:14:41:36 VALID N Y N
YJAM TBLOB
920875 920875 TABLE 14:41:36 14:41:36 2005-11-16:14:41:36 VALID N N N
TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME='SYS_LOB0000920875C00001$$';
OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE
TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
YJAM SYS_LOB0000920875C00001$$ LOBSEGMENT
_SANITIZED_ 0 16 1202569 5242880 640 16
TEST.SQL>DECLARE
2 VALINS VARCHAR2(4000);
3 BEGIN
4 VALINS:='1';
5 FOR I IN 1..100000
6 LOOP
7 INSERT INTO TBLOB VALUES (RPAD(VALINS,4000,'0'));
8 END LOOP;
9 END;
10 /
PL/SQL procedure successfully completed.
TEST.SQL>COMMIT;
Commit complete.
TEST.SQL>SELECT * FROM DBA_EXTENTS WHERE SEGMENT_NAME IN ('SYS_LOB0000920875C00001$$','TBLOB');
OWNER SEGMENT_NAME PARTITION_NAME SEGMENT_TYPE
TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
YJAM TBLOB TABLE
_SANITIZED_ 0 16 1201289 5242880 640 16
YJAM TBLOB TABLE
_SANITIZED_ 1 17 1169929 5242880 640 17
YJAM TBLOB TABLE
_SANITIZED_ 2 18 1163529 5242880 640 18
YJAM TBLOB TABLE
_SANITIZED_ 3 19 1176969 5242880 640 19
YJAM TBLOB TABLE
_SANITIZED_ 4 5 379529 5242880 640 5
YJAM TBLOB TABLE
_SANITIZED_ 5 14 375689 5242880 640 14
YJAM TBLOB TABLE
_SANITIZED_ 51 18 1172489 5242880 640 18
YJAM TBLOB TABLE
_SANITIZED_ 52 19 1191689 5242880 640 19
YJAM SYS_LOB0000920875C00001$$ LOBSEGMENT
_SANITIZED_ 0 16 1202569 5242880 640 16
54 rows selected.
TEST.SQL>ANALYZE TABLE TBLOB COMPUTE STATISTICS;
Table analyzed.
TEST.SQL>SELECT * FROM DBA_TABLES WHERE TABLE_NAME='TBLOB';
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED
INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOG B NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT
AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LO SAMPLE_SIZE LAST_ANA PAR IOT_TYPE T S NES BUFFER_ ROW_MOVE GLO USE
DURATION SKIP_COR MON CLUSTER_OWNER DEPENDEN COMPRESS
YJAM TBLOB _SANITIZED_ 10
1 255 5242880 5242880 1 2147483645 0 YES N 100000 33547 373 1977 0
2042 0 0 1 1 N ENABLED 100000 14:51:22 NO N N NO DEFAULT DISABLED NO NO
DISABLED NO DISABLED DISABLED
TEST.SQL>SELECT BYTES/1024 FROM DBA_SEGMENTS WHERE SEGMENT_NAME='TBLOB';
BYTES/1024
271360
TEST.SQL>TRUNCATE TABLE TBLOB;
Table truncated.
TEST.SQL>BEGIN
2 FOR i IN 1..100000
3 LOOP
4 INSERT INTO TBLOB VALUES ('1');
5 END LOOP;
6 END;
7 /
PL/SQL procedure successfully completed.
TEST.SQL>COMMIT;
Commit complete.
TEST.SQL>ANALYZE TABLE TBLOB COMPUTE STATISTICS;
Table analyzed.
TEST.SQL>SELECT BYTES/1024 FROM DBA_SEGMENTS WHERE SEGMENT_NAME='TBLOB';
BYTES/1024
5120Note: there is a deported blob segment for the pointers I forgot in my previous post.
HTH,
Yoann.
Message was edited by:
Yoann Mainguy
Hmm, forgot that for a full comparison of the avg linesize:
TEST.SQL>SELECT * FROM DBA_TABLES WHERE TABLE_NAME='TBLOB';
OWNER TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED
INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE FREELISTS FREELIST_GROUPS LOG B NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT
AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE TABLE_LO SAMPLE_SIZE LAST_ANA PAR IOT_TYPE T S NES BUFFER_ ROW_MOVE GLO USE
DURATION SKIP_COR MON CLUSTER_OWNER DEPENDEN COMPRESS
YJAM TBLOB _SANITIZED_ 10
1 255 5242880 5242880 1 2147483645 0 YES N 100000 628 12 1223 0
41 0 0 1 1 N ENABLED 100000 14:56:56 NO N N NO DEFAULT DISABLED NO NO
DISABLED NO DISABLED DISABLED -
hi,
how can i create a table into XML format for example from the following query
create table testing nologgging as select * from user_objects
kindly advise
tks & rdgsProbably you need to explain better on what you actually are asking (an example would aid in understanding).
SQL> create table testing nologging as select * from user_objects ;
Table created.
SQL> select dbms_metadata.get_xml('TABLE', 'TESTING') from dual ;
DBMS_METADATA.GET_XML('TABLE','TESTING')
<?xml version="1.0"?>
<ROWSET>
<ROW>
<TABLE_T>
<VERS_MAJOR>1</VERS_MAJOR>
<VERS_MINOR>0 </VERS_MINOR>
<OBJ_NUM>45572</OBJ_NUM>
<SCHEMA_OBJ>
<OBJ_NUM>45572</OBJ_NUM>
<DATAOBJ_NUM>45572</DATAOBJ_NUM>
<OWNER_NUM>73</OWNER_NUM>
<OWNER_NAME>KKISHORE</OWNER_NAME>
<NAME>TESTING</NAME>
<NAMESPACE>1</NAMESPACE>
<TYPE_NUM>2</TYPE_NUM>
<TYPE_NAME>TABLE</TYPE_NAME>
<CTIME>17-NOV-2006</CTIME>
<MTIME>17-NOV-2006</MTIME>
<STIME>17-NOV-2006</STIME>
<STATUS>1</STATUS>
<FLAGS>0</FLAGS>
<SPARE1>6</SPARE1>
<SPARE2>1</SPARE2>
</SCHEMA_OBJ>
<STORAGE>
<FILE_NUM>11</FILE_NUM>
<BLOCK_NUM>40569</BLOCK_NUM>
<TYPE_NUM>5</TYPE_NUM>
<TS_NUM>12</TS_NUM>
<BLOCKS>8</BLOCKS>
<EXTENTS>1</EXTENTS>
<INIEXTS>8</INIEXTS>
<MINEXTS>1</MINEXTS>
<MAXEXTS>2147483645</MAXEXTS>
<EXTSIZE>128</EXTSIZE>
<EXTPCT>0</EXTPCT>
<USER_NUM>73</USER_NUM>
<LISTS>1</LISTS>
<GROUPS>1</GROUPS>
<BITMAPRANGES>0</BITMAPRANGES>
<CACHEHINT>0</CACHEHINT>
<SCANHINT>0</SCANHINT>
<HWMINCR>45572</HWMINCR>
<FLAGS>131073</FLAGS>
</STORAGE>
<TS_NAME>KKISHORE</TS_NAME>
<BLOCKSIZE>8192</BLOCKSIZE>
<DATAOBJ_NUM>45572</DATAOBJ_NUM>
<COLS>12</COLS>
<PCT_FREE>10</PCT_FREE>
<PCT_USED>40</PCT_USED>
<INITRANS>1</INITRANS>
<MAXTRANS>255</MAXTRANS>
<FLAGS>33</FLAGS>
<AUDIT_VAL>--------------------------------</AUDIT_VAL>
<INTCOLS>12</INTCOLS>
<KERNELCOLS>12</KERNELCOLS>
<PROPERTY>536870912</PROPERTY>
<TRIGFLAG>0</TRIGFLAG>
<SPARE1>736</SPARE1>
<SPARE6>17-NOV-2006</SPARE6>
<COL_LIST>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>1</COL_NUM>
<INTCOL_NUM>1</INTCOL_NUM>
<SEGCOL_NUM>1</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>OBJECT_NAME</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>128</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>128</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>2</COL_NUM>
<INTCOL_NUM>2</INTCOL_NUM>
<SEGCOL_NUM>2</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>SUBOBJECT_NAME</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>30</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>30</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>3</COL_NUM>
<INTCOL_NUM>3</INTCOL_NUM>
<SEGCOL_NUM>3</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>OBJECT_ID</NAME>
<TYPE_NUM>2</TYPE_NUM>
<LENGTH>22</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>4</COL_NUM>
<INTCOL_NUM>4</INTCOL_NUM>
<SEGCOL_NUM>4</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>DATA_OBJECT_ID</NAME>
<TYPE_NUM>2</TYPE_NUM>
<LENGTH>22</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>5</COL_NUM>
<INTCOL_NUM>5</INTCOL_NUM>
<SEGCOL_NUM>5</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>OBJECT_TYPE</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>18</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>18</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>6</COL_NUM>
<INTCOL_NUM>6</INTCOL_NUM>
<SEGCOL_NUM>6</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>CREATED</NAME>
<TYPE_NUM>12</TYPE_NUM>
<LENGTH>7</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>7</COL_NUM>
<INTCOL_NUM>7</INTCOL_NUM>
<SEGCOL_NUM>7</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>LAST_DDL_TIME</NAME>
<TYPE_NUM>12</TYPE_NUM>
<LENGTH>7</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>0</CHARSETID>
<CHARSETFORM>0</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>0</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>8</COL_NUM>
<INTCOL_NUM>8</INTCOL_NUM>
<SEGCOL_NUM>8</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>TIMESTAMP</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>19</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>19</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>9</COL_NUM>
<INTCOL_NUM>9</INTCOL_NUM>
<SEGCOL_NUM>9</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>STATUS</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>7</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>7</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>10</COL_NUM>
<INTCOL_NUM>10</INTCOL_NUM>
<SEGCOL_NUM>10</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>TEMPORARY</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>1</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>1</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>11</COL_NUM>
<INTCOL_NUM>11</INTCOL_NUM>
<SEGCOL_NUM>11</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>GENERATED</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>1</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>1</SPARE3>
</COL_LIST_ITEM>
<COL_LIST_ITEM>
<OBJ_NUM>45572</OBJ_NUM>
<COL_NUM>12</COL_NUM>
<INTCOL_NUM>12</INTCOL_NUM>
<SEGCOL_NUM>12</SEGCOL_NUM>
<PROPERTY>14336</PROPERTY>
<NAME>SECONDARY</NAME>
<TYPE_NUM>1</TYPE_NUM>
<LENGTH>1</LENGTH>
<NOT_NULL>0</NOT_NULL>
<CHARSETID>178</CHARSETID>
<CHARSETFORM>1</CHARSETFORM>
<SPARE1>0</SPARE1>
<SPARE2>0</SPARE2>
<SPARE3>1</SPARE3>
</COL_LIST_ITEM>
</COL_LIST>
<CON0_LIST/>
<CON1_LIST/>
<CON2_LIST/>
</TABLE_T>
</ROW>
</ROWSET>
1 row selected.
SQL>Message was edited by:
Kamal Kishore -
Index size 3 times more then table
table cnmas
record 134 only
but there is lot of dml operation on this table
SQL> SELECT COUNT(*) FROM CNMAS;
COUNT(*)
134
1* SELECT SUM(BYTES)/1024/1024 FROM USER_SEGMENTS WHERE SEGMENT_NAME='CNMAS'
SQL> /
SUM(BYTES)/1024/1024
4
1* SELECT SUM(BYTES)/1024/1024 FROM USER_SEGMENTS WHERE SEGMENT_NAME='PK_CNMAS_CN_DOC_NO'
SQL> /
SUM(BYTES)/1024/1024
12
table have 134 record
table size 4 m.b
index size 12 m.b
whats the REASON?????????????
thanks
kuljeet pal singhINDEX DETAILS
SELECT INI_TRANS,MAX_TRANS,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE FROM USER_INDEXES WHERE INDEX_NAME='PK_CNMAS_CN_DOC_NO';
INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
2 255 10485760 4194304 1 2147483645 0
TABLE DETAILS
SQL> SELECT PCT_FREE,PCT_USED,INI_TRANS,MAX_TRANS,INITIAL_EXTENT,NEXT_EXTENT,MIN_EXTENTS,MAX_EXTENTS,PCT_INCREASE FROM USER_TABLES WHERE TABLE_NAME='CNMAS';
PCT_FREE PCT_USED INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE
10 40 1 255 532480 4194304 1 2147483645 0 -
ORA-01779 Error - on a table!
Hello all!
We have a problem here which cannot possibly be - somehow. We have an update on a table which is done by our own framework. Oracle replies with a 01779 error which can only occur on a view if I'm not totally wrong. Has anyone an idea or do you need additional information?
Greetings,
DanielHere is your formatted post --
TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME PCT_FREE PCT_USED INI_TRANS MAX_TRANS INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS
VIEW_FIDES_ERST_EWB SYSTEM 10 40 1 255 1761280 4362240 1 249
PCT_INCREASE FREELISTS FREELIST_GROUPS LOGGING BACKED_UP NUM_ROWS BLOCKS EMPTY_BLOCKS AVG_SPACE CHAIN_CNT AVG_ROW_LEN AVG_SPACE_FREELIST_BLOCKS NUM_FREELIST_BLOCKS DEGREE INSTANCES CACHE
50 1 1 YES N 1 1 N
TABLE_LOCK SAMPLE_SIZE LAST_ANALYZED PARTITIONED IOT_TYPE TEMPORARY SECONDARY NESTED BUFFER_POOL ROW_MOVEMENT GLOBAL_STATS USER_STATS DURATION SKIP_CORRUPT MONITORING CLUSTER_OWNER DEPENDENCIES
ENABLED NO N N NO DEFAULT DISABLED NO NO DISABLED NO DISABLED
1 rows selected
OWNER OBJECT_TYPE
SYSADM TABLE
1 rows selected This will be more readable format.
Regards.
Satyaki De.
N.B.: I hope this one much more readable than previous one... -
Dba_views and column text (long type)
Hi,
when i excute this select :
select view_name||' '||
owner||' '||
to_char(text_length)||' '||
dbms_lob.substr(text_clob(view_name),text_length,1)
from sys.dba_views@my_link;
-- text_clob is a function wich convert long to clob
I have this error:
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
any suggestion.What is your Oracle version.
I have an Oracle 9iR2 database, and your function and query work very well.
SQL> create or replace function text_clob (p_view_name in varchar2) return clob
2 l_text_long long;
3 Result clob;
4 begin
5 SELECT text
6 INTO l_text_long
7 FROM dba_views
8 WHERE VIEW_NAME = UPPER( p_view_name ) ;
9 Result := l_text_long ;
10 return(Result);
11 end;
12 /
Function created.
SQL> select view_name||' '||
2 owner||' '||
3 to_char(text_length)||' '||
4 dbms_lob.substr(text_clob(view_name),text_length,1)
5 from sys.dba_views;
VIEW_NAME||''||OWNER||''||TO_CHAR(TEXT_LENGTH)||''||DBMS_LOB.SUBSTR(TEXT_CLOB(VI
ALL_ALL_TABLES SYS 1411 select OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME,
IOT_NAME,
PCT_FREE, PCT_USED,
INI_TRANS, MAX_TRANS,
INITIAL_EXTENT, NEXT_EXTENT,
MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,
FREELISTS, FREELIST_GROUPS, LOGGING,
BACKED_UP, NUM_ROWS, BLOCKS, EMPTY_BLOCKS,
AVG_SPACE, CHAIN_CNT, AVG_ROW_LEN,
AVG_SPACE_FREELIST_BLOCKS, NUM_FREELIST_BLOCKS,
DEGREE, INSTANCES, CACHE, TABLE_LOCK,
There is perhaps any problem through db_link, have you test in local ?
My option to create an other table work well too. You can try it.
Nicolas. -
Clob searching user_views
Hi,
I needed to search for some specific text in the DDL of each of views in a particular schema. The text column of the user_views is LONG, and I looked at some old Tom's threads for converting long2clob, but found these processes to be really cumbersome, so I just opted to use DBMS_METADATA.GET_DDL instead even if it is a little slow.
One area I do not have a lot of experience with is searching clob fields. I tried this but not sure what would be the appropriate function to use for something like this:
SELECT *
FROM
SELECT
object_name,
object_type,
DBMS_METADATA.GET_DDL(
object_type => 'VIEW',
NAME => object_name,
SCHEMA => 'SCHEMA123'
) object_text
FROM all_objects
WHERE object_type = 'VIEW'
AND owner = 'SCHEMA123'
WHERE contains(object_text, 'WHERE t.policy NOT LIKE') > 0; -- Show the names of all views that contain the matching textDo you want something like the following:
SQL> show long
long 80
SQL> select text from user_views where view_name='ALL_ALL_TABLES';
TEXT
select OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, IOT_NAME, STATUS,Then set a higher output limit...
SQL> set long 1000
SQL> /
TEXT
select OWNER, TABLE_NAME, TABLESPACE_NAME, CLUSTER_NAME, IOT_NAME, STATUS,
PCT_FREE, PCT_USED,
INI_TRANS, MAX_TRANS,
INITIAL_EXTENT, NEXT_EXTENT,
MIN_EXTENTS, MAX_EXTENTS, PCT_INCREASE,
...Edit: Sorry Satish, I type and copy and paste too slow :)
Message was edited by:
orafad -
Table taking up too much space
This is a very interesting and puzzling situation to me.
I have a table created as follows:
CREATE TABLE CONNECTION_SNAPSHOTS (
RUNDATE DATE,
CONNECTION_TYPE VARCHAR2 (30),
CONNECTION_COUNT NUMBER (4))
TABLESPACE USERS NOLOGGING
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 65536
MINEXTENTS 1
MAXEXTENTS 2147483645
NOCACHE;
I have a procedure to insert records into the table. the procedure is executed
by a dbms_jobs. here is what the procedure does.
Begin
insert /*+ append */ into connection_snapshots (rundate, connection_type, connection_count)
select sysdate, decode(substr(schemaname,1,6),'CALOMS','CALOMS','OTHER USERS'), count(*)
from v$session
group by sysdate, decode(substr(schemaname,1,6),'CALOMS','CALOMS','OTHER USERS');
commit;
End;
The table has 3000 records so far and the total space used is about 16MB which is a lot. I created connection_snapshots2 table using the same storage parameters and inserted all records from connection_snapshots into connection_snapshots2. The SQL script I use is as follows:
insert/*+ append */ into dba_owner.connection_snapshots2
select * from dba_owner.connection_snapshots
The space used by connection_snapshots2 is only 0.13 MB.
Why is that?Thanks all for the responses.
I decided to shrink connection_snaphosts (i will refer to it as cs) by saving off the records to connection_snapshots2(I will refer to it as cs2). then truncating cs and dropping the storage and reinserting records to cs from cs2 using the same SQL script stated above. After these activities, cs and cs2 both show 0.13 MB used.
This morning, cs has increased to 2MB.
Answers to your questions:
question:
select table_name,owner,PCT_FREE,PCT_USED,INITIAL_EXTENT,NEXT_EXTENT,PCT_INCREASE,NUM_ROWS,BLOCKS,EMPTY_BLOCKS from dba_tables where table_name=' ' and owner=' ';
answer:
CONNECTION_SNAPSHOTS DBA_OWNER 10 65536 3355 210 46
CONNECTION_SNAPSHOTS2 DBA_OWNER 10 65536 3355 15 1
question:
how often do I delete?
answer: I rarely delete. I use truncate mostly as described above. -
Hi,
I am using the below mentioned storage parameters for my tables, due to which oracle isn't able to use the free space after a delete. I can alter the value of PCTUSED but is there a way to remove the PCTUSED parameter from the table defination and let oracle manage it using alter table command so that i dont have to create the table again?
PCTFREE 10
PCTUSED 40
STORAGE(MINEXTENTS 1
MAXEXTENTS 1024
PCTINCREASE 0
BUFFER_POOL DEFAULT
Thanks
Rajat Thakranexactly ASSM ignores pctfree and pctused while is MSSM it consider which is bydefault 10 and 40 percent respectively.Come what may if you just define pctfree and let the oracle use its own pctused it would be default 40 percent.
SQL> conn sys/sys as sysdba
Connected.
SQL> create tablespace myspace
2 datafile 'c:\myfile.dbf' size 1G
3 extent management local uniform size 100M
4 /
Tablespace created.
SQL> conn scott/tiger
Connected.
SQL> drop table t
2 /
Table dropped.
SQL> create table t (a number) tablespace myspace
2 /
Table created.
SQL> conn sys/sys as sysdba
Connected.
SQL> select tablespace_name,status,contents,extent_management,segment_space_management
2 from user_tablespaces
3 /
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN SEGMEN
SYSTEM ONLINE PERMANENT LOCAL MANUAL
UNDOTBS1 ONLINE UNDO LOCAL MANUAL
SYSAUX ONLINE PERMANENT LOCAL AUTO
TEMP ONLINE TEMPORARY LOCAL MANUAL
USERS ONLINE PERMANENT LOCAL AUTO
MYSPACE ONLINE PERMANENT LOCAL MANUAL
6 rows selected.
SQL> select pct_free,pct_used
2 from user_tables
3 where table_name='T'
4 /
PCT_FREE PCT_USED
10 40
SQL> conn scott/tiger
Connected.
SQL> create table t1 (a number) pctfree 20 tablespace myspace
2 /
Table created.
SQL> select pct_free,pct_used
2 from user_tables
3 where table_name='T1'
4 /
PCT_FREE PCT_USED
20 40
SQL> how you are identifying that oralce is not reusing that block which cross pctused defined percentage?
Khurram
Maybe you are looking for
-
Find row number of first cell in a relative range that is less than $B$3
Thanks for any help. I've spent hours searching, trying, and reading iWork Help Example: $B$3 = 3 Column C 1: 9 2: 2 3: 9 4: 2 5: 3 6: 9 7: 9 Find the first occurrence that is less than $B$3 (=3) in the range C3:C6. Return the row # (relativ
-
Two conditions for an list item entry in oracle APEX 3.2
Hello, Can anyone please help me with this issue. I have list item with 3 entries. And i want one of the entry item to be displayed on the page 7 and also satisfy the below pl/sql function. begin if (NVL(:P0_Datastore,'%'||'null%') != '%'||'null%' AN
-
About a week ago I go to my into Iphoto and see nothing, thinking maybe the default library got changed I went right to the location of the library and opened it from there, and no photos where found. I opened up the library data and it looks like a
-
FF not responding to onclick events in td elements!!
my website uses tables; td elements with onclick actions to make tabs. When I click them in ff, nothing happens. They work ok in other browsers. the site uses innerHTML to do its thing. site is www.tomcolwill.com
-
ACE Module Radius with ACS 4.2
Hi, I am able to authenticate to my ACE modules via Radius, but when I login it does not give my Admin rights. Does anyone have a fix for this? My ACS admin has been working with TAC since last week to no avail. John...