Unique Constraint
Hello,
OWM_VERSION: 11.1.0.7.0
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
I have a situation where somewhere along the line the primary key for a few records were thrown off. This is causing workspace manager to try and insert the T-520575 workspace records into LIVE when they are merged back together however this causes a unique constraint violation. Here is what the data looks like:
PK UNQ1 UNQ2 WORKSPACE
2095989 495685 152568 T-520575
491685 495685 152568 LIVE
2095990 495687 152569 T-520575
491687 495687 152569 LIVE
2096052 495689 152570 T-520575
491689 495689 152570 LIVEI tried deleting the records out of the T-520575 workspace and refreshing the table using the following, but it still raises the unique constraint.
delete from table
where PK in( 2095989, 2095990, 2096052);
dbms_wm.refreshtable(
workspace => 'T-520575',
table_id => 'TABLE',
where_clause => 'PK in ( 491685, 491687, 491689)',
auto_commit => FALSE
); I can see that the records I deleted have a WM_OPTYPE of 'D' but do not have a retiretime. How do I retire these records so that I can refresh them from LIVE? or is there a better solution to correct this issue?
Edit
I should also add that LIVE is the parent of this workspace T-520575
Thanks,
Tyson
Edited by: Tyson Jouglet on Apr 27, 2012 8:34 AM
Hi Tyson,
Are you sure there are no other rows that have a conflicting value for the unique constraint? What you have described should work. Since the rows have been deleted, they are no longer considered when evaluating the constraints when executing RefreshTable. You should be able to both merge and refresh the workspace after deleting the rows. Also, the row(s) with the 'D' wm_optype would not have a retiretime value, unless the row was reinserted. Only the 'I' or 'U' row(s) would have a retiretime value in this case.
If there are not any other rows, then I would need a more complete description. Are there any continuously refreshed workspaces that have T-520575 as a parent workspace? Those workspaces would also have to be checked.
Regards,
Ben
Similar Messages
-
Error while adding Image: ORA-00001: unique constraint
Dear all,
I have an error while adding images to MDM I can´t explain. I want to add 7231 images. About 6983 run fine. The rest throws this error.
Error: Service 'SRM_MDM_CATALOG', Schema 'SRMMDMCATALOG2_m000', ERROR CODE=1 ||| ORA-00001: unique constraint (SRMMDMCATALOG2_M000.IDATA_6_DATAID) violated
Last CMD: INSERT INTO A2i_Data_6 (PermanentId, DataId, DataGroupId, Description_L3, CodeName, Name_L3) VALUES (:1, :2, :3, :4, :5, :6)
Name=PermanentId; Type=9; Value=1641157; ArraySize=0; NullInd=0;
Name=DataId; Type=5; Value=426458; ArraySize=0; NullInd=0;
Name=DataGroupId; Type=4; Value=9; ArraySize=0; NullInd=0;
Name=Description_L3; Type=2; Value=; ArraySize=0; NullInd=0;
Name=CodeName; Type=2; Value=207603_Img8078_gif; ArraySize=0; NullInd=0;
Name=Name_L3; Type=2; Value=207603_Img8078.gif; ArraySize=0; NullInd=0;
Error: Service 'SRM_MDM_CATALOG', Schema 'SRMMDMCATALOG2_m000', ERROR CODE=1 ||| ORA-00001: unique constraint (SRMMDMCATALOG2_M000.IDATA_6_DATAID) violated
Last CMD: INSERT INTO A2i_Data_6 (PermanentId, DataId, DataGroupId, Description_L3, CodeName, Name_L3) VALUES (:1, :2, :3, :4, :5, :6)
Name=PermanentId; Type=9; Value=1641157; ArraySize=0; NullInd=0;
Name=DataId; Type=5; Value=426458; ArraySize=0; NullInd=0;
Name=DataGroupId; Type=4; Value=9; ArraySize=0; NullInd=0;
Name=Description_L3; Type=2; Value=; ArraySize=0; NullInd=0;
Name=CodeName; Type=2; Value=207603_Img8085_gif; ArraySize=0; NullInd=0;
Name=Name_L3; Type=2; Value=207603_Img8085.gif; ArraySize=0; NullInd=0;
I checked all data. There is no such dataset in the database. Can anybody give me a hint how to avoid this error.
One thing I wonder: The PermanentId is allways the same but I can´t do anything here.
BR
Roman
Edited by: Roman Becker on Jan 13, 2009 12:59 AMHi Ritam,
For such issues, can you please create a new thread or directly email the author rather than dragging back up a very old thread, it is unlikely that the resolution would be the same as the database/application/etc releases would most probably be very different.
For now I will close this thread as unanswered.
SAP SRM Moderators. -
Difference between unique constraint and unique index
1. What is the difference between unique constraint and unique index when unique constraint is always indexed ? Which one is better in this case for better performance ?
2. Is Composite index of 3 columns x,y,z better
or having independent/ seperate indexes on 3 columns x,y,z is better for better performance ?
3. It has been very confusing for me to decide which columns to index, I have indexed most foreignkey columns, is it a good idea ? We do lot of selects and DMLS on most of our tables. Is there any query that I can run and find out if indexes are really being used and if they are improving any performance. I have analyzed and computed my indexes using ANALYZE index index_name validate structure and COMPUTE STATISTICS;
null1. Unique index is part of unique constraint. Of course you can create standalone unique index. But is is no point to skip the logical view of business if you spend same effort to achive.
You create unique const. Oracle create the unique index for you. You may specify index characteristic in unique constraint.
2. Depends. You can't utilize the composite index if the searching condition is not whole or front part of the indexing key. You can't utilize your index if you query the table for y=2. That is.
3. As old words in database arena, Index may be good or bad for a table depending on the size of table, number of columns in the table... etc. It is very environmental dependent. In fact, It is part of database nomalization. Statistic is a way oracle use to determine the execution plan.
Steve
null -
Difference Between Unique Index vs Unique Constraint
Can you tell me
what is the Difference Between Unique Index vs Unique Constraint.
and
Difference Between Unique Index and bitmap index.
Edited by: Nilesh Hole,Pune, India on Aug 22, 2009 10:33 AMNilesh Hole,Pune, India wrote:
Can you tell me
what is the Difference Between Unique Index vs Unique Constraint.http://www.jlcomp.demon.co.uk/faq/uk_idx_con.html
and
Difference Between Unique Index and bitmap index.The documentation is your friend:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/schema.htm#CNCPT1157
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#sthref1008
Regards,
Rob. -
Unique Index vs. Unique Constraint
Hi All,
I'm studying for the Oracle SQL Expert Certification. At one point in the book, while talking about indices, the author says that a unique index is not the same a unique constraint. However, he doesn't explain why they're two different things.
Could anyone clarify the difference between the two, please?
Thanks a lot,
ValerioA constraint has different meaning to an index. It gives the optimiser more information and allows you to have foreign keys on the column, whereas a unique index doesn't.
eg:
SQL> create table t1 (col1 number, col2 varchar2(20), constraint t1_uq unique (col1));
Table created.
SQL> create table t2 (col1 number, col2 varchar2(20));
Table created.
SQL> create unique index t2_idx on t2 (col1);
Index created.
SQL> create table t3 (col1 number, col2 number, col3 varchar2(20), constraint t3_fk
2 foreign key (col2) references t1 (col1));
Table created.
SQL> create table t4 (col1 number, col2 number, col3 varchar2(20), constraint t4_fk
2 foreign key (col2) references t2 (col1));
foreign key (col2) references t2 (col1))
ERROR at line 2:
ORA-02270: no matching unique or primary key for this column-listIt's like saying "What's the difference between a car seat and an armchair? They both allow you to sit down!" -
ORA-00001 - unique constraint violation when upgrading 10g EUL
Hi,
I am trying to upgrade my Discoverer 4i to Discoverer 10g.
When I log into 10g, it prompts me to upgrade the EUL. After making the right back up of my 4i EUL, I continue with the upgrade.
During the upgrade, I am hit with this error:
Database error: ORA-00001 unique constraint (EUL_HRMS.EUL5_FOL_UK_1) violated.
I understand that this happens when user tries to insert an already existing value into a column defined as unique. However, I am not sure on how to resolve it.
Can anyone please advice.
Thanks in advance!
Regards,
Harpreet SidhuHi Rod,
I've run the queries and these are the results. Each query returned one row.
1. SELECT FROM EUL_HRMS.EUL5_DOC_FOLDERS*
FOL_ID 100057
FOL_NAME ROOT
FOL_DEVELOPER_KEY ROOT
FOL_DESCRIPTION
FOL_EU_ID 100000
FOL_PARENT_ID
FOL_USER_PROP2
FOL_USER_PROP1
FOL_ELEMENT_STATE 0
FOL_CREATED_BY EUL_HRMS
FOL_CREATED_DATE 19-Jun-09
FOL_UPDATED_BY EUL_HRMS
FOL_UPDATED_DATE 19-Jun-09
NOTM 0
2. SELECT EU_ID, EU_SECURITY_MODEL, EU_USE_PUB_PRIVS, EU_ROLE_FLAG
FROM EUL_HRMS.EUL5_EUL_USERS
WHERE EU_USERNAME = 'PUBLIC'
EU_ID 3000
EU_SECURITY_MODEL 0
EU_USE_PUB_PRIVS 1
EU_ROLE_FLAG 0
Thanks! -
ORA-00001: unique constraint
Hi,
I disabled the primary key of the table to which I insert the data like this :
INSERT INTO TABLE_X
select * from table_1 UNION ALL
select * from table_2 ;
but I receive this error :
ORA-00001: unique constraint TABLE_X.PK violated
Why ? It is already disabled.
thank you.
Message was edited by:
user522961
Message was edited by:
user522961
Message was edited by:
user522961Is it possible you kept the index when disabling the primary key?
YAS@11G>create table t as select object_id from all_objects where rownum<=10;
Table created.
YAS@11G>alter table t add constraint PK_T primary key(object_id);
Table altered.
YAS@11G>alter table t disable constraint pk_t;
Table altered.
YAS@11G>insert into t select * from t;
10 rows created.
YAS@11G>rollback;
Rollback complete.
YAS@11G>alter table t enable constraint pk_t;
Table altered.
YAS@11G>alter table t disable constraint pk_t keep index;
Table altered.
YAS@11G>insert into t select * from t;
insert into t select * from t
ERROR at line 1:
ORA-00001: unique constraint (YAS.PK_T) violated -
Hi everybody
I can't understand why my data pump import execution with parameter TABLE_EXISTS_ACTION=TRUNCATE returned ORA-00001 (unique constraint violation), while importing schema tables from a remote database where the source tables have the same unique constraints as the corresponding ones on the target database.
Now my question is "If the table would be truncated, why I get unique constraint violation when inserting records from a table where the same unique constraint is validated?
Here are the used parameter file content and the impdp logfile.
parfile
{code}
DIRECTORY=IMPEXP_LOG_COLL2
CONTENT=DATA_ONLY
NETWORK_LINK=PRODUCTION
PARALLEL=1
TABLE_EXISTS_ACTION=TRUNCATE
EXCLUDE=STATISTICS
{code}
logfile
{code}
Import: Release 10.2.0.1.0 - Production on Gioved� 22 Ottobre, 2009 15:33:44
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connesso a: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
FLASHBACK automatically enabled to preserve database integrity.
Starting "IMPEXP"."PROVA_REFRESH_DBCOLL": impexp/********@dbcoll SCHEMAS=test_pump LOGFILE=test_pump.log parfile=refresh_dbcoll.par JOB_NAME=prova_refresh_dbcoll
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 523 MB
ORA-31693: Table data object "TEST_PUMP"."X10000000_TRIGGER" failed to load/unload and is being skipped due to error:
ORA-00001: unique constraint (TEST_PUMP.SYS_C00726627) violated
ORA-31693: Table data object "TEST_PUMP"."X10000000_BASIC" failed to load/unload and is being skipped due to error:
ORA-00001: unique constraint (TEST_PUMP.SYS_C00726625) violated
Job "IMPEXP"."PROVA_REFRESH_DBCOLL" completed with 2 error(s) at 15:34:04
{code}
Thank you
Bye AlessandroI forgot to read the last two lines of the documentation about TABLE_EXISTS_ACTION where it says:
"TRUNCATE cannot be used on clustered tables or over network links."
So it seems that it ignored the clause for the use of NETWORK_LINK and unreasonably opted for an APPEND action instead of throwing an error to highlight the conflicting parameters in the used configuration.
Bye Alessandro -
ORA-00001: unique constraint (REMEDY.SYS_C001727
Hi: I have a simple table with a primary key (ENTRYID). All other fields are just fields with no constraints. When I try to insert records, for some records I get the above error. The table does not already have this record.
INSERT INTO REMEDY.VITALEXCEPTION (ENTRYID, CUSTID, DEVICENAME, INTERFACE, EXCEPTION, DURATION, TIME)
VALUES ('jvis2rspm01.S0/0/0_FMS:65999591 NA:3836400887 TERM:cmny83bbf/20351BDU1182798445', 'fxms', 'jvis2rspm01', 'S0/0/0_FMS:65999591 NA:3836400887 TERM:cmny83bbf/20351', 'BDU', 5476, 1182792934);
INSERT INTO REMEDY.VITALEXCEPTION (ENTRYID, CUSTID, DEVICENAME, INTERFACE, EXCEPTION, DURATION, TIME)
ERROR at line 1:
ORA-00001: unique constraint (REMEDY.SYS_C001727) violated
Could someone help.
Thanks
Rayhi,
can you post the table structure?
I suspect that ENTRYID has lesser length than the actual value and in effect the value has been truncated for some reason.
The primary key value is too long, maybe creating a surrogate key would help.
J -
ORA-00001 - Unique Constraint on R5TRANSLINES
Hello,
I get the following error when i am inserting into R5TRANSLINES "2009-06-23 14:44:51,698 DEBUG [com.dstm.mp.MPDBException] **!!Error Code:|1|, Msg:|ORA-00001: unique constraint (REMPLOY.R5PRIK_TRL) violated"
I have a flex trigger in the system which is envoked when inserting parts into my warehouse:
Declare
cursor c_palletparts( pallet varchar2) is
select obj_part from r5objects
where
obj_parent = pallet;
v_pallet varchar2(255);
v_evtcode varchar2(255);
v_transcode varchar2(255);
v_line number :=0;
v_store varchar2(255);
v_trltype varchar2(4);
v_trlrtype varchar2(4);
v_trlio number;
v_bin VARCHAR2(15);
v_binin VARCHAR2(15);
ncounter number;
cur_message varchar2(200);
begin
select trl_part, trl_trans, trl_line into v_pallet, v_transcode, v_line from r5translines
where rowid = :rowid;
select count(*) into ncounter from r5objects where obj_code = v_pallet and obj_class = 'PALLET';
if ncounter = 1 then
select trl_part, trl_trans, trl_line, trl_store, trl_type, trl_rtype, trl_io, trl_bin into v_pallet, v_transcode, v_line, v_store, v_trltype, v_trlrtype, v_trlio, v_binin
from r5translines
where trl_trans = v_transcode
and trl_line = v_line;
IF v_trlrtype = 'RECV' THEN
update r5objects set obj_store = v_store where obj_code = v_pallet;
UPDATE R5PROPERTYVALUES SET PRV_VALUE = v_store WHERE prv_code = v_pallet||'#*' AND PRV_PROPERTY = 'RMP231' AND PRV_RENTITY = 'OBJ';
END IF;
-- update r5parts set par_byasset = '+' where par_code = v_pallet;
for r_palletparts in c_palletparts(v_pallet) loop
IF v_trlrtype = 'I' then
select count(*) into ncounter from r5stock
where sto_part = r_palletparts.obj_part
and sto_store = v_store
and sto_part_org = '*';
IF ncounter = 0 then
INSERT INTO R5STOCK (STO_PART, STO_STORE, STO_STOCKTAKE, STO_QTY, STO_CONSIGNMENT, STO_PART_ORG, STO_PRICETYPE, STO_ONDEMAND, STO_REPAIRQTY, STO_VENDORQTY, STO_SHOPQTY, STO_REPAIRTYPE, STO_REPSTOCKMETHOD, STO_REPAUTOASSIGN, STO_LABELDEFAULT)
VALUES (r_palletparts.obj_part, v_store, SYSDATE, 1, '-', '*', 'A', '-', 0, 0, 0, '-', '-', '-', 0);
END IF;
select count(*) into ncounter from r5binstock
where bis_part = r_palletparts.obj_part
and bis_store = v_store
and bis_part_org = '*';
IF ncounter = 0 then
INSERT INTO R5BINSTOCK(BIS_PART, BIS_STORE, BIS_BIN, BIS_LOT, BIS_QTY, BIS_PART_ORG, BIS_REPAIRQTY)
VALUES (r_palletparts.obj_part, v_store, '*', '*', 1, '*', 0);
END IF;
select min(bis_bin) into v_bin from r5binstock
where bis_part = r_palletparts.obj_part
and bis_store = v_store
and bis_part_org = '*';
update r5binstock set bis_qty = 1 where bis_part = r_palletparts.obj_part
and bis_store = v_store
and bis_bin = v_bin;
else
update r5objects set obj_store = v_store where obj_code = r_palletparts.obj_part;
-- UPDATE R5PROPERTYVALUES SET PRV_VALUE = v_store WHERE prv_code = r_palletparts.obj_part||'#*' AND PRV_PROPERTY = 'RMP231' AND PRV_RENTITY = 'OBJ';
IF r_palletparts.obj_part NOT IN ('X') THEN
cur_message := r_palletparts.obj_part||'|'||v_trltype||'|'||v_store||'|'||ncounter;
-- raise_application_error(-20000,cur_message);
END IF;
v_bin := v_binin;
end if;
v_line := v_line + 1;
insert into r5translines
(trl_trans,trl_type, trl_rtype, trl_line, trl_date,
trl_part, trl_lot, trl_bin, trl_store, trl_price,
trl_qty, trl_io, trl_part_org)
values
(v_transcode, v_trltype, v_trlrtype, v_line, sysdate,
r_palletparts.obj_part, '*', v_bin, v_store, 0,
1, v_trlio, '*' );
end loop;
end if;
Exception
when no_data_found then
Null;
end;
Can someone please tell me how to make this key unique.
Many Thanks
ChrisHi,
You can create rule for truncate using below:
BEGIN
DBMS_RULE_ADM.CREATE_RULE(
rule_name => 'TRUNCATE_RULE',
condition => '(:ddl.get_object_owner() = ''HR'' AND ' ||
':ddl.get_object_name() = ''TEST'') AND ' ||
':ddl.get_command_type() = ''TRUNCATE TABLE'' ');
END;
Thanks,
Reena -
ORA-00001 Unique constraint Violation Error
We are upgrading our NW BW 7.01 java server to 7.3 and during the Downtime phase of the Installer, while running the Offline Migration, we are getting an error "EP-KM-BC: Unique Constraint Violation error: ORA-000001". Unknown Object# (12xxxxxx) does not exist. We have one CI and two DI. Any help would be greatly appreciated.
Hi Anil,
You need to clear the data from the table
1. SHD_AP_PROPVALUE
2. SHD_KMC_AP_PROP
3. SHD_AP_MC
Repeat the phase and also follow the sapnote
1873288 - RUN_OFFLINE_MIGRATION phase fails during SAP NetWeaver migration
Also paste the logs of RUN_OFFLINE_MIGRATION phase.
With Regards
Ashutosh Chaturvedi -
I have a stored proc which runs every night. The stored proc is giving a unique constraint violation.
(Error) ORA-00001: unique constraint (WHSE_DBA.PK_DELPHI_TRANS_FACT) violated.
Any idea about how to debug this.I want to create an error table on the stored proc shown below. I know I have to add something in the exceptions. Can anyone give me the commands and where to add it.
CREATE OR REPLACE PROCEDURE WHSE_DBA.DM_LD_DELPHI_TRANS_FACT
IS
-- VARIABLE DECLARATIONS
LAST_LOAD_DATE DATE;
INSERTCOUNT NUMBER:=0;
-- LOGGING VARIABLES AND CONSTANTS
TARGETTABLE CONSTANT VARCHAR2(20):='DELPHI_TRANS_FACT';
MSGUNKNOWNERR CONSTANT VARCHAR2(20):='Error';
NBRIGNOREERR CONSTANT NUMBER:=12541;
DEFDATE CONSTANT DATE:='01-OCT-2006';
ERRDESCRIPTION VARCHAR2(255);
V_DELPHI_TRANS_TOTAL NUMBER;
V_DELPHI_TRANS_FACT_TOTAL NUMBER;
BEGIN
-- LOOK UP LAST LOADED RECORD
SELECT NVL(MAX(SNAPSHOT_DATE),DEFDATE)
INTO LAST_LOAD_DATE
FROM DELPHI_TRANS_FACT;
-- * LOAD ALL DIMENSION TABLES
-- BUDGET_YR_DIMENSION
INSERT INTO BUDGET_YR_DIMENSION (BUDGET_YEAR, SNAPSHOT_DATE)
(SELECT DISTINCT BUD_YR, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM BUDGET_YR_DIMENSION
WHERE BUDGET_YEAR=OUTER.BUD_YR));
-- EFF_DATE_DIMENSION
INSERT INTO EFF_DATE_DIMENSION (PAID_FIS_YEAR, PAID_QTR, EFFECTIVE_DATE, SNAPSHOT_DATE)
(SELECT DISTINCT CVT_DATE_TO_FISCAL_YEAR(EFF_DT), PD_QTR, EFF_DT, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM EFF_DATE_DIMENSION
WHERE EFFECTIVE_DATE=OUTER.EFF_DT));
-- PROC_DATE_DIMENSION
INSERT INTO PROC_DATE_DIMENSION (PROCESS_DATE, SNAPSHOT_DATE)
(SELECT DISTINCT PROC_DT, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM PROC_DATE_DIMENSION
WHERE PROCESS_DATE=OUTER.PROC_DT));
-- ORG_DIMENSION
INSERT INTO ORG_DIMENSION (ORG,COST_CTR,SNAPSHOT_DATE)
(SELECT DISTINCT ORG, CC_CD, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM ORG_DIMENSION
WHERE ORG=OUTER.ORG));
-- BPAC DIMENSION
INSERT INTO BPAC_DIMENSION (BPAC, AFC_CD, PE_CODE, SNAPSHOT_DATE)
(SELECT DISTINCT BPAC, AFC_CD, PE, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM BPAC_DIMENSION
WHERE BPAC=OUTER.BPAC));
-- FUND DIMENSION
INSERT INTO FUND_DIMENSION (FUND,APPROP_CD,LIM_CD,SNAPSHOT_DATE)
(SELECT DISTINCT FUND, APPROP_CD, APPLIM_CD, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM FUND_DIMENSION
WHERE FUND=OUTER.FUND));
-- OBJ_CD_DIMENSION
INSERT INTO OBJ_CD_DIMENSION (OBJ_CD,SNAPSHOT_DATE)
(SELECT DISTINCT OC_CD, SYSDATE
FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM OBJ_CD_DIMENSION
WHERE OBJ_CD=OUTER.OC_CD));
-- GLA DIMENSION
INSERT INTO GLA_DIMENSION (GLA_CD,SNAPSHOT_DATE)
(SELECT DISTINCT GLA, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM GLA_DIMENSION
WHERE GLA_CD=OUTER.GLA));
-- PROJECT_TASK_DIMENSION
INSERT INTO PROJECT_TASK_DIMENSION (PROJECT_NO,TASK_NO,SNAPSHOT_DATE)
(SELECT DISTINCT PROJ_NBR, TASK_NBR, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM PROJECT_TASK_DIMENSION
WHERE PROJECT_NO=OUTER.PROJ_NBR
AND TASK_NO=OUTER.TASK_NBR));
-- TRANS_DESC_DIMENSION
INSERT INTO TRANS_DESC_DIMENSION (DESCRIPTION,SNAPSHOT_DATE)
(SELECT DISTINCT DESCR, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM TRANS_DESC_DIMENSION
WHERE DESCRIPTION=OUTER.DESCR
AND OUTER.DESCR IS NOT NULL));
-- SUPPLIER_DIMENSION
INSERT INTO SUPPLIER_DIMENSION (SUPPLIER_NAME, SNAPSHOT_DATE)
(SELECT DISTINCT VENDOR_NAME, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM SUPPLIER_DIMENSION
WHERE SUPPLIER_NAME=OUTER.VENDOR_NAME));
-- DELPHI_INV_DIMENSION
INSERT INTO DELPHI_INV_DIMENSION (INVOICE_NO, SNAPSHOT_DATE)
(SELECT DISTINCT INV_NO, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM DELPHI_INV_DIMENSION
WHERE INVOICE_NO=OUTER.INV_NO));
-- DELPHI_PO_DIMENSION
INSERT INTO DELPHI_PO_DIMENSION (PO_NO, SNAPSHOT_DATE)
(SELECT DISTINCT PO_NO, SYSDATE FROM DELPHI_TRANS OUTER
WHERE NOT EXISTS
(SELECT 1
FROM DELPHI_PO_DIMENSION
WHERE PO_NO=OUTER.PO_NO));
-- TEMPORARILY DISABLE KEY FOR FASTER LOADING
DB_MISC.PRO_EXE_DDL('ALTER TABLE DELPHI_TRANS_FACT DISABLE CONSTRAINT PK_DELPH_TRANS_FACT');
-- MOVE DATA INTO TABLE
INSERT INTO DELPHI_TRANS_FACT (BPAC_KEY, ORG_KEY, FUND_KEY, OBJ_CD_KEY, GLA_KEY,
EFF_DATE_KEY, PROC_DATE_KEY, PROJECT_TASK_KEY, BUDGET_YR_KEY, DELPHI_TRANS_DESC_KEY,
BALANCE, COMMIT_AMT, UDO_AMT, AEU_AMT, AEP_AMT, OBLIGATION_AMT, SNAPSHOT_DATE,
SUPPLIER_KEY, DELPHI_INV_KEY, DELPHI_PO_KEY)
(SELECT BPAC_KEY, ORG_KEY, FUND_KEY, OBJ_CD_KEY, GLA_KEY, EFF_DATE_KEY, PROC_DATE_KEY,
PROJECT_TASK_KEY, BUDGET_YR_KEY, TRANS_DESC_KEY, SUM(BAL), SUM(COMMIT_AMT), SUM(UDO_AMT),
SUM(AEU_AMT), SUM(AEP_AMT), SUM(OBLIGATION_AMT), MAX(SYSDATE), SUPPLIER_KEY, DELPHI_INV_KEY,
DELPHI_PO_KEY
FROM BPAC_DIMENSION, ORG_DIMENSION, FUND_DIMENSION, OBJ_CD_DIMENSION, GLA_DIMENSION,
EFF_DATE_DIMENSION, PROC_DATE_DIMENSION, PROJECT_TASK_DIMENSION, BUDGET_YR_DIMENSION,
TRANS_DESC_DIMENSION, DELPHI_TRANS, SUPPLIER_DIMENSION, DELPHI_INV_DIMENSION, DELPHI_PO_DIMENSION
WHERE DELPHI_TRANS.SNAPSHOT_DATE>LAST_LOAD_DATE
-- JOIN WITH BPAC_DIMENSION
AND DELPHI_TRANS.BPAC=BPAC_DIMENSION.BPAC
-- JOIN WITH ORG_DIMENSION
AND DELPHI_TRANS.ORG = ORG_DIMENSION.ORG
-- JOIN WITH FUND_DIMENSION
AND DELPHI_TRANS.FUND = FUND_DIMENSION.FUND
-- JOIN WITH OBJ_CD_DIMENSION
AND DELPHI_TRANS.OC_CD=OBJ_CD_DIMENSION.OBJ_CD
-- JOIN WITH GLA_DIMENSION
AND DELPHI_TRANS.GLA=GLA_DIMENSION.GLA_CD
-- JOIN WITH EFF_DATE_DIMENSION
AND DELPHI_TRANS.EFF_DT=EFF_DATE_DIMENSION.EFFECTIVE_DATE
-- JOIN WITH PROC_DATE_DIMENSION
AND DELPHI_TRANS.PROC_DT=PROC_DATE_DIMENSION.PROCESS_DATE
-- JOIN WITH PROJECT_TASK_DIMENSION
AND (DELPHI_TRANS.PROJ_NBR=PROJECT_TASK_DIMENSION.PROJECT_NO
AND DELPHI_TRANS.TASK_NBR=PROJECT_TASK_DIMENSION.TASK_NO)
-- JOIN WITH BUDGET_YR_DIMENSION
AND DELPHI_TRANS.BUD_YR=BUDGET_YR_DIMENSION.BUDGET_YEAR
-- JOIN WITH TRANS_DESC_DIMENSION
AND DELPHI_TRANS.DESCR=TRANS_DESC_DIMENSION.DESCRIPTION
-- JOIN WITH SUPPLIER_DIMENSION
AND DELPHI_TRANS.VENDOR_NAME=SUPPLIER_DIMENSION.SUPPLIER_NAME
-- JOIN WITH DELPHI_PO_DIMENSION
AND DELPHI_TRANS.PO_NO=DELPHI_PO_DIMENSION.PO_NO
-- JOIN WITH DELPHI_INV_DIMENSION
AND DELPHI_TRANS.INV_NO=DELPHI_INV_DIMENSION.INVOICE_NO
GROUP BY BPAC_KEY, ORG_KEY, FUND_KEY, OBJ_CD_KEY, GLA_KEY, EFF_DATE_KEY, PROC_DATE_KEY,
PROJECT_TASK_KEY, BUDGET_YR_KEY,TRANS_DESC_KEY, SUPPLIER_KEY, DELPHI_INV_KEY, DELPHI_PO_KEY);
-- COUNT AFFECTED RECORDS
INSERTCOUNT:=0+SQL%ROWCOUNT;
-- RE-ENABLE KEY CONSTRAINT
DB_MISC.PRO_EXE_DDL('ALTER TABLE DELPHI_TRANS_FACT ENABLE VALIDATE CONSTRAINT PK_DELPH_TRANS_FACT');
-- STORE RESULTS OF OPERATION
IF INSERTCOUNT>0 THEN
DB_MISC.LOGFAILURE_EX('none', 'none', INSERTCOUNT||' new records loaded successfully.', TARGETTABLE, 'DM_LD_DELPHI_TRANS_FACT', FALSE);
END IF;
--- COMPARE BALANCE TOTAL FROM DELPHI_TRANS TABLE AND DELPHI_TRANS_FACT TABLE
SELECT SUM(BAL) INTO V_DELPHI_TRANS_TOTAL
FROM DELPHI_TRANS ;
SELECT SUM(BALANCE) INTO V_DELPHI_TRANS_FACT_TOTAL
FROM DELPHI_TRANS_FACT ;
VALIDATE_LOAD(V_DELPHI_TRANS_TOTAL,V_DELPHI_TRANS_FACT_TOTAL);
-- EXCEPTION HANDLING ROUTINES * * * * * * * * * * * * * * * * * * * * * *
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
IF SQLCODE!=NBRIGNOREERR THEN
ERRDESCRIPTION:=SQLERRM;
-- CALL ROUTINE TO PROCESS ERROR
DB_MISC.LOGFAILURE_EX('none', 'none', ERRDESCRIPTION, TARGETTABLE, 'DM_LD_DELPHI_TRANS_FACT', TRUE);
COMMIT;
END IF;
-- END EXCEPTION HANDLING ROUTINES * * * * * * * * * * * * * * * * * * * * * *
END -
ORA-00001:Unique Constraint while inserting 2 similar records from source
Hi,
in TEST1 there are records:
10 20 ABC
10 20 DEF
I amt trying to insert into TEST which has CODE as Primary Key.
declare
type cur is ref cursor;
cur_t cur;
type v_t is table of TEST%rowtype;
tab v_t;
v_act_cnt_str VARCHAR2(4000);
v_act_cnt NUMBER:=0;
BEGIN
v_act_cnt_str:=' SELECT COUNT(*) '||' FROM TEST '||' WHERE '||'('||CODE||')'||' IN '||'('||'SELECT '||CODE||' FROM TEST1'||')';
DBMS_OUTPUT.PUT_LINE('The Actual Count String is'||v_act_cnt_str);
EXECUTE IMMEDIATE v_act_cnt_str INTO v_act_cnt;
open cur_t for select * from TEST1 ORDER BY ROWNUM;
loop
fetch cur_t bulk collect into tab limit 10000;
if v_act_cnt=0 THEN
forall i in 1..tab.count
insert into TEST values tab(i);
commit;
ELSE
v_merge_act_str :=
'MERGE INTO TEST '||
' DEST' || ' USING TEST1 '||
' SRC' || ' ON (' || DEST.CODE=SRC.CODE || ')' ||
' WHEN MATCHED THEN ';
first_str := 'UPDATE ' || ' SET ' ||
'DEST.NAME=SRC.NAME,DEST.DEPT_NAME=SRC.DEPT_NAME;
execute immediate v_merge_act_str || first_str;
v_merge_act_str := '';
first_str := '';
commit;
END IF;
end loop;
END;
ITS GIVING ERROR as:
ORA-00001: unique constraint (PK_TEST1) violated
Any help will be needful for me
Edited by: user598986 on Sep 22, 2009 4:20 AM
Edited by: user598986 on Sep 22, 2009 4:22 AMYour code makes absolutely no sense whatsover. The whole point of MERGE is that it allows us to conditionally apply records from a source table as inserts or updates to a target table. So why have you coded two separate statements? And why are you using such horrible dynamic SQL?
Sorry to unload on you, but you seem to have your code unnecessarily complicated, and that it turn makes it unnecessarily harder to debug. As an added "bonus" this approach will also perform considerably slower than a single MERGE statement. SQL is all about set operations. Don't do anything procedurally which can be done in a set.
Cheers, APC
blog: http://radiofreetooting.blogspot.com -
ORA-00001 UNIQUE CONSTRAINT ERROR ON SYS.WRH$_SQLTEXT_PK?
/u01/app/oracle/admin/bill02/bdump/bill02_m000_10074.trc
Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORACLE_HOME = /u01/app/oracle/product/10.1.0
System name: SunOS
Node name: bill02
Release: 5.9
Version: Generic_117171-17
Machine: sun4u
Instance name: bill02
Redo thread mounted by this instance: 1
Oracle process number: 55
Unix process pid: 10074, image: oracle@bill02 (m000)
*** 2005-10-27 02:03:14.682
*** ACTION NAME:(Auto-Flush Slave Action) 2005-10-27 02:03:14.667
*** MODULE NAME:(MMON_SLAVE) 2005-10-27 02:03:14.667
*** SERVICE NAME:(SYS$BACKGROUND) 2005-10-27 02:03:14.667
*** SESSION ID:(519.24807) 2005-10-27 02:03:14.667
*** KEWROCISTMTEXEC - encountered error: (ORA-00001: unique constraint (SYS.WRH$_SQLTEXT_PK) violated
*** SQLSTR: total-len=570, dump-len=240,
STR={INSERT INTO wrh$_sqltext (sql_id, dbid, sql_text, command_type, snap_id, ref_count) SELECT /*+ ordered use_nl(s1) index(s1) */ sie.sqlid_kewrsie, :dbid, s1.sql_fulltext, }
*** KEWRAFM1: Error=13509 encountered by kewrfteh
How to fix?
Thanks!Have you tried searching Metalink? A unique constraint violation on a SYS table by MMON will almost certainly require Oracle Support's assistance to resolve. Something rather deep inside Oracle has done something wrrong.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
ORA-00001 - Unique Constraint error in Oracle forms 6i
Hi,
I am using Forms 6i. I have an issue while inserting records into a custom table. Below is the functionality.
When I check the check box, and press the 'APPROVE' button, the record gets inserted into the custom table. But while inserting I am getting 'ora-00001-unique constraint violated error'.
But the custom table doesn't have any data in it. (So the inserting record should not be a duplicate record).
Any suggestions would be of great help.
Thanks
DeeptiIs it a sql statement that is performing the insert, or are you using the native data block DML functionality in your form? Secondly have you identified candidate columns that could be causing your issue?
If you are using sql statement have you debugged to comfirm that you are not firing the same block of code more that once, and that if it is required to execute multiple times are you incrementing the sequence values that should be unique.
Regards
Q -
ORA-00001: unique constraint error..
Hi There,
We were trying to do an insert when we started having ORA-00001: unique constraint error.. to speed our testing we decided to disable all the constraints on the table; however we still having the same issue.
How can we resolve this please.
SQL> select constraint_name,constraint_type,status from dba_constraints where table_name='MEMBER_LATEST';
CONSTRAINT_NAME C STATUS
MEMBER_LATEST_PK P DISABLED
SYS_C0017577 C DISABLED
SYS_C0017576 C DISABLED
SYS_C0017575 C DISABLED
SYS_C0017574 C DISABLED
SYS_C0017573 C DISABLED
SYS_C0017572 C DISABLED
SYS_C0017571 C DISABLED
SYS_C0017570 C DISABLED
MEMBER_LATEST_FK R DISABLED
10 rows selected.
SQL>
SQL>
SQL> INSERT INTO MEMBER_LATEST (DIS_ID, TIMESTAMP, LAST_NAME, FIRST_NAME, MIDDLE_NAME, DIS_COUNT)
2 SELECT DIS_ID, 'TEST', LAST_NAME, FIRST_NAME, MIDDLE_NAME, 0
3 FROM MV_DIS_MEM, MV_DIS_COUNT
4 WHERE MV_DIS_MEM.P_CODE = MV_DIS_COUNT.P_CODE
5 ORDER BY 1,3,4;
INSERT INTO MEMSCH.MEMBER_LATEST (DIS_ID, TIMESTAMP, LAST_NAME, FIRST_NAME,
ERROR at line 1:
ORA-00001: unique constraint (MEMSCH.MEMBER_LATEST_PK) violated
SQL>Anything else we can do please?
Thanksrsar001 wrote:
but isn't the unique index constraint part of the disabled constraints on the table as shown above?Not if index used by PK was created separately prior to PK:
SQL> create table emp1 as select * from emp;
Table created.
SQL> alter table emp1
2 add constraint emp1_pk
3 primary key(empno);
Table altered.
SQL> insert into emp1 select * from emp;
insert into emp1 select * from emp
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.EMP1_PK) violated
SQL> alter table emp1 disable primary key;
Table altered.
SQL> insert into emp1 select * from emp;
14 rows created.
SQL> rollback;
Rollback complete.
SQL> alter table emp1 drop primary key;
Table altered.
SQL> create unique index emp1_pk on emp1(empno);
Index created.
SQL> alter table emp1
2 add constraint emp1_pk
3 primary key(empno)
4 using index emp1_pk;
Table altered.
SQL> insert into emp1 select * from emp;
insert into emp1 select * from emp
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.EMP1_PK) violated
SQL> alter table emp1 disable primary key;
Table altered.
SQL> insert into emp1 select * from emp;
insert into emp1 select * from emp
ERROR at line 1:
ORA-00001: unique constraint (SCOTT.EMP1_PK) violated
SQL> But by dropping index you are simply delaying the issue. Yes, you will be able to insert, but what's then? You will not be able to recreate PK - same violation error will be raised.
SY.
Maybe you are looking for
-
I just made two separate copies on external hardrives of all my Lightroom 4 and 5 work. I also cleared everything in my recycle bin to make room on the hard drive. Now, when I go to work in Lightroom 5, I have no pictures. I did check the back-ups, a
-
Essbase corruption / Locked Object Problem
Hi,(Using Essbase 6.5.1)Trying to delete an Essbase application / database. Says it cannot delete because an object is in a locked state. Object doesn't exist. Created an object with the same name (tried the object to be an outline, rules file, & cal
-
Cannot print to pdf -There is not enough memory or disk space to repaginate this document
I don't know if this is an Adobe pdf issue or just a Word 2013 thing. But I'm now using Word 2013 on Win 8.1, 64 bit, 8Gs of Ram and when I go to print a few select pages of my document a message pop out at me saying 'There is not enough memory or di
-
Applescript and Automator Issue
Hi all, I'm trying to design an Automator and Applescript code that will perform the following. 1. Target specified application and make active 2. Hold down s key for 15 seconds 3. Hold down the left arrow key for 0.75 seconds 4. Hold down s key for
-
IDOC (create .ido file)
Hi all: I manage inbound and outbound IDOCs procces and its run propertly. Now, I have to create an .ido file from an inbound IDOCs . Can anyone help me?. I'd create an documentation file trought WE64 and gave it to external system, but they recl