Update/Insert Duplicate Rows
Hi I am loading a target table [empty] for the first time. I am using update/insert strategy. however, it's only inserting. not updating inserted rows.
In a single mapping and on an empty table you can only insert rows. The Insert/Update strategy will update rows if the matching criteria you have used satisfies on an existing set of rows prior to your running the mapping. In other words you cannot expect OWB to update rows which it has inserted in the same statement !...
You can try Row Based mode and put an order by clause before inserting into the target table and check to see if the update happens.
Regards
-AP
Similar Messages
-
How to eliminate inserting Duplicate rows into database using JDBC Adapter
File->Xi->JDBC
In above Scenario if the file has two rows their values are identical, then how can we eliminated inserting Duplicate rows into database using JDBC AdapterDatabase is a consumer of a SERVICE (SOA!!!!!!).
Database plays a business system role here!!!!
Mapping is part of an ESB service
Adaptor is a technology adapted to ESB framework to support specific protocol.
ESB accomplish ESB duties such as transformation, translation, routing. Routing use a protocol accepted by the consumer. In a JDBC consumer it is JDBC protocol and hence it a JDBC adaptor.
There is clear separation on responsibilities among business system and ESB. ESB do not participate in business decision or try to get into business system data layer.
So who ever are asking people to check duplicate check as part of mapping (an ESB service) may not understand integration practice.
Please use an adaptor module which will execute the duplicate check with business system in a plug and play approach and separate that from ESB service so that people can build integration using AGILE approach.
Thanks -
Merge inserting duplicate rows
Hi,
I first check if a particular dept_no exists in the table, if not insert into the table. I am getting duplicate rows inserted.
This is the table data before Merge.
CUST_ID FIRST_NAME LAST_NAME DEPT_NO SALARY
1 Dan Morgan 10 100000
2 Jack Cline 20 100000
3 Helen Lofstrom 20 50000This is the table data after Merge.
3 rows merged.
CUST_ID FIRST_NAME LAST_NAME DEPT_NO SALARY
1 Dan Morgan 10 100000
2 Jack Cline 20 100000
3 Helen Lofstrom 20 50000
4 Ram Bharad 30 2000
4 Ram Bharad 30 2000
4 Ram Bharad 30 2000
6 rows selected.This is the code to merge
MERGE INTO customer c
USING ( SELECT cust_id,
first_name,
last_name,
dept_no,
salary
FROM customer ) e
ON ( c.dept_no = 30 )
WHEN MATCHED THEN
UPDATE SET
c.cust_id = 4,
c.first_name = 'Ram',
c.last_name = 'Bharad',
c.salary = 2000
WHEN NOT MATCHED THEN
INSERT
(c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
VALUES
(4,'Ram','Bharad',30,2000);Shouldn't the above code insert once, and update twice?
ThanksYou have done it wrong...
Try like this
SQL> create table customer(cust_id number,first_name varchar2(20), last_name varchar2(20), dept_no number, salary number)
2 /
Table created.
SQL> insert into customer
2 select 1, 'Dan','Morgan',10,100000 from dual
3 union all
4 select 2, 'Jack','Cline',20,100000 from dual
5 union all
6 select 3, 'Helen','Lofstrom',20,50000 from dual
7 /
3 rows created.
SQL> commit
2 /
Commit complete.
SQL> select * from customer
2 /
CUST_ID FIRST_NAME LAST_NAME DEPT_NO SALARY
1 Dan Morgan 10 100000
2 Jack Cline 20 100000
3 Helen Lofstrom 20 50000
SQL> MERGE INTO customer c
2 USING ( SELECT 4 cust_id,
3 'Ram' first_name,
4 'Bharad' last_name,
5 30 dept_no,
6 2000 salary
7 FROM dual ) e
8 ON ( c.dept_no = e.dept_no )
9 WHEN MATCHED THEN
10 UPDATE SET
11 c.cust_id = e.cust_id,
12 c.first_name = e.first_name,
13 c.last_name = e.last_name,
14 c.salary = e.salary
15 WHEN NOT MATCHED THEN
16 INSERT
17 (c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
18 VALUES
19 (e.cust_id,e.first_name, e.last_name,e.dept_no,e.salary);
1 row merged.
SQL> select * from customer
2 /
CUST_ID FIRST_NAME LAST_NAME DEPT_NO SALARY
1 Dan Morgan 10 100000
2 Jack Cline 20 100000
3 Helen Lofstrom 20 50000
4 Ram Bharad 30 2000but beware of the fact that you are joining based on dept_no so multiple rows can get updated with same cust_id. see below.
SQL> rollback
2 /
Rollback complete.
SQL> MERGE INTO customer c
2 USING ( SELECT 4 cust_id,
3 'Ram' first_name,
4 'Bharad' last_name,
5 20 dept_no,
6 2000 salary
7 FROM dual ) e
8 ON ( c.dept_no = e.dept_no )
9 WHEN MATCHED THEN
10 UPDATE SET
11 c.cust_id = e.cust_id,
12 c.first_name = e.first_name,
13 c.last_name = e.last_name,
14 c.salary = e.salary
15 WHEN NOT MATCHED THEN
16 INSERT
17 (c.cust_id,c.first_name, c.last_name,c.dept_no,c.salary)
18 VALUES
19 (e.cust_id,e.first_name, e.last_name,e.dept_no,e.salary);
2 rows merged.
SQL> select * from customer
2 /
CUST_ID FIRST_NAME LAST_NAME DEPT_NO SALARY
1 Dan Morgan 10 100000
4 Ram Bharad 20 2000
4 Ram Bharad 20 2000Thanks,
Karthick. -
Identify newly inserted duplicate row
Hi,
I have an issue. I want to identify the newly inserted duplicate record in the table. But the problem is the old record is having a rowid greater than the one for the newly inserted duplicate record. How this can happen?
Has anyone faced such problem? Please let me know.
Urgent.
Thanks & Regds,
NandakumarMark, I might disagree with that. Just because the fields that make up a unique constraint are duplicates doesn't make the records identical in all fields. Take for example four entries in the Social Security database with my social security number. One would be for Rory, another for Jose, third for Manual and the fourth for Juan. Four records with 3 violating a unique constraint, but the records aren't identical.
First thing to do is put a unique constraint on the table to prevent duplicate key entries. -
Insert Duplicate rows with difrent languages
Hello everybody,
I need your help in solving this query with the most performant way.
I have a table:
Create Table "POSITION" (
id number,
TEXT varchar2(50),
Language Varchar2(1)
);insert statments
INSERT INTO POSITION
VALUES (1, 'Secretary', 'E');
INSERT INTO POSITION
VALUES (1, 'Secrétaire', 'F');
INSERT INTO POSITION
VALUES (1, 'Segretario', 'I');
INSERT INTO POSITION
VALUES (1, 'Secretario', 'S');
INSERT INTO POSITION
VALUES (2, 'Assistance', 'E');
INSERT INTO POSITION
VALUES (2, 'Ayuda', 'S');As you have seen the text changes in diffrent languages for the same id. for whatever reasons the data is in complete in all languages (some ids missing english some french and some italian). I need a query to insert the missing language(s) in my example above Id number 2 the language French and Italian is missing so the query should copy the record English instead but with Language = 'F' and one more time with language = 'I' and so on.
in addition the query should look first to copy English if it doesn't exist then French if not then Italian when more than language exists.
hope I make it clear. as i said this query should be performant also as the data size is big.
Thanks for your helpHi,
Okay, I see my mistake now.
You can use MERGE like this:
MERGE INTO position dst
USING (
SELECT p.id
, FIRST_VALUE (p.text IGNORE NULLS)
OVER ( PARTITION BY p.id
ORDER BY l.ord_num
ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING
) AS top_text
, FIRST_VALUE (p.lsource_anguage IGNORE NULLS)
OVER ( PARTITION BY p.id
ORDER BY l.ord_num
ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING
) AS source_language
, l.language
FROM all_languages l
LEFT OUTER JOIN position p PARTITION BY (p.id)
ON l.language = p.language
) src
ON ( src.id = dst.id
AND src.language = dst.language
WHEN NOT MATCHED THEN
INSERT (dst.id, dst.text, dst.language, dst.source_language)
VALUES (src.id, src.top_text, src.language, src.source_language)
;Or you can use INSERT, like this:
INSERT INTO position (id, text, language, source_language)
WITH got_analytics AS
SELECT p.id
, p.text AS orig_text
, FIRST_VALUE (p.text IGNORE NULLS)
OVER ( PARTITION BY p.id
ORDER BY l.ord_num
ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING
) AS top_text
, l.language
, FIRST_VALUE (p.source_language IGNORE NULLS)
OVER ( PARTITION BY p.id
ORDER BY l.ord_num
ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWING
) AS source_language
FROM all_languageS l
LEFT OUTER JOIN position p PARTITION BY (p.id)
ON l.language = p.language
SELECT id, top_text, language, source_language
FROM got_analytics
WHERE orig_text IS NULL
;This is basically what I posted before, except that I added
... ROWS BETWEEN UNBOUNDED PRECEDING
AND UNBOUNDED FOLLOWINGto all the analytic clauses.
The problem was that when you say "ORDER BY ord_num", that creates a default window that includes only the current ord_num and lower values. We need to look at all values, lower and higher, so we have to override the default windowing.
Edited by: Frank Kulash on Feb 29, 2012 8:58 PM
Edited by: Frank Kulash on Mar 1, 2012 11:31 AM
Added correct MERGE statement. -
What would cause Oracle to insert duplicate rows into a table? Could a join of two tables in the initial query assigned to an application page cause ORacle to insert an extra row into a table when an update to data value occurs? I have no insert triggers and no foreign keys assigned to the table. I am not sure what would cause Oracle to assume that an insert of a row must occur. I want to prevent that insert.
V Rickert wrote:
What would cause Oracle to insert duplicate rows into a table? Could a join of two tables in the initial query assigned to an application page cause ORacle to insert an extra row into a table when an update to data value occurs? I have no insert triggers and no foreign keys assigned to the table. I am not sure what would cause Oracle to assume that an insert of a row must occur. I want to prevent that insert.Is there an APEX dimension to this? If so, tell us the full APEX and DB versions, and provide full details of what the APEX app is doing (a debug trace of page accept processing is the obvious place to start).
The most likely explanations are:
1. There is no duplicate in the table but there is a join problem in the query reporting on it, resulting in the appearance of a duplicate in the reults. Have you confirmed that the duplicate is really a physical row in the table?
2. There is an APEX page/application process containing an insert on the table that is unexpectedly running on page accept due to it having no condition or an incorrect condition. This will be visible in the Debug trace. -
MULTIPLE UPDATES/INSERTIONS TO THE SAME TABLE
How can I update/insert mutiple rows into the same table from one form ?
Hi,
Using the portal form on table you can insert only a single row. You can use master-detail form to insert multiple rows.
Thanks,
Sharmila -
Database trigger to insert duplicated rows on audit table
Hi
It is possible to insert duplicate rows (at the moment database generate PK violation constraint for one specific table) within an audit table ?
Certain code like this is not working, always the whole transaction makes a rollback and audit table will be empty:
CREATE OR REPLACE TRIGGER USER.audit_TABLE_TRG
before INSERT ON USER.TABLE
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
declare
V_conteo number(1) := 0;
duplicate_record EXCEPTION;
begin
select count(*)
into V_conteo
from USER.TABLE
where <PK conditions>
if V_conteo > 0 then
begin
INSERT INTO USER.AUDIT_TABLE
(<>)
VALUES
(<>);
raise duplicate_record;
exception
when duplicate_record then
INSERT INTO USER.AUDIT_TABLE
(<>)
VALUES
(<>);
raise_application_error(-20019,'Duplicated column1/column2:'||:NEW.column1||'/'||:NEW.column2);
when others then
dbms_output.put_line('Error ...'||sqlerrm);
end;
end if;
end;
END;
/>
Exactly this is my problem , one only transaction (insert into audit table and try to insert into target table), the reason of this post is to know whether exists another way to insert all the intent duplicate records on target table into one audit table, you right ,maybe I can add one date column and modify the PK on audit table but my main problem still happens.
>
Can I ask you why you want to go trigger route for this if your intention is only to capture the duplicate records? Assuming that you are on at least on 10gR2, you can look at DML error table. If you go this route, there is no need for additional overhead of trigger, code failures, etc.
Oracle can automatically store the failed records in an error table which you could later on investigate and fix it or ignore it.
Simple example:
SQL> create table emp (empno number primary key, ename varchar2(10), sal number);
Table created.
SQL> insert into emp values(1010, 'Venkat', 100);
1 row created.
SQL> commit;
Commit complete.
Create error table to log the failed records
BEGIN
DBMS_ERRLOG.create_error_log (dml_table_name => 'emp');
END;
Now let's insert a duplicate record
SQL> insert into emp values(1010, 'John', 200) ;
insert into emp values(1010, 'John', 200)
ERROR at line 1:
ORA-00001: unique constraint (VENKATB.SYS_C002813299) violated
Now use the log table to capture
SQL> insert into emp values(1010, 'John', 200) LOG ERRORS INTO err$_emp ('INSERT') REJECT LIMIT UNLIMITED;
0 rows created.
Now check the error log table and do whatever you want
SQL> r
1* select ORA_ERR_MESG$, empno, ename, sal from err$_EMP
ORA_ERR_MESG$
EMPNO
ENAME
SAL
ORA-00001: unique constraint (VENKATB.SYS_C00
2813467) violated
1010
John
200
1 row selected.This will also capture when you do
INSERT INTO EMP SELECT * FROM EMP_STAGE LOG ERRORS INTO err$_emp ('INSERT') REJECT LIMIT UNLIMITED;
You can capture the whole record into the log table. All columns.
Regards
Edited : Code -
When we try to deploy a wsp to sharepoint containing code to generate quick launch menu we get the following error messages when running the last enable-spfeature command in powershell. The same code is working in the development environment, but when we
deploy to a test server the following error occurs:
Add-SPSolution "C:\temp\ImpactSharePoint.wsp"
Install-SPSolution -Identity impactsharepoint.wsp -GACDeployment
Enable-SPFeature impactsharepoint_branding -url http://im-sp1/sites/impact/
Enable-SPFeature impactsharepoint_pages -url http://im-sp1/sites/impact/
From UlsViewer.exe:
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database 880i
High System.Data.SqlClient.SqlException (0x80131904): Cannot insert duplicate key row in object 'dbo.NavNodes' with unique index 'NavNodes_PK'. The duplicate key value is (6323df8a-5c57-4d3e-a477-09aa8b66100a, 7ae114df-9d52-4b08-affa-8c544cbc27b6,
1000). The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj,
Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior
runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior) at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior, SqlQueryData monitoringData, Boolean retryForDeadLock) ClientConnectionId:2bb4004c-aa75-470e-b11e-dbf1c476aaed
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database 880k
High at Microsoft.SharePoint.SPSqlClient.ExecuteQueryInternal(Boolean retryfordeadlock) at Microsoft.SharePoint.SPSqlClient.ExecuteQuery(Boolean retryfordeadlock) at Microsoft.SharePoint.Library.SPRequestInternalClass.AddNavigationNode(String
bstrUrl, String bstrName, String bstrNameResource, String bstrNodeUrl, Int32 lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav, String& pbstrDateModified) at Microsoft.SharePoint.Library.SPRequestInternalClass.AddNavigationNode(String
bstrUrl, String bstrName, String bstrNameResource, String bstrNodeUrl, Int32 lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav, String& pbstrDateModified) at Microsoft.SharePoint.Library.SPRequest.AddNavigationNode(String
bstrUrl, String bstrName, String bstrNameResource, String bstrNodeUrl, Int32 lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav, String& pbstrDateModified) at Microsoft.SharePoint.Navigation.SPNavigationNode.AddInternal(Int32
iPreviousNodeId, Int32 iParentId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav) at Microsoft.SharePoint.Navigation.SPNavigationNodeCollection.AddInternal(SPNavigationNode node, Int32 iPreviousNodeId) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.<ConfigureQuickLaunchBar>b__0()
at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback
secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.ConfigureQuickLaunchBar() at ImpactSharePoint.Features.Pages.PagesEventReceiver.FeatureActivated(SPFeatureReceiverProperties
properties) at Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce) at Microsoft.SharePoint.SPFeature.Activate(SPSite siteParent, SPWeb webParent, SPFeaturePropertyCollection props, SPFeatureActivateFlags
activateFlags, Boolean fForce) at Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition featdef, Version version, SPFeaturePropertyCollection properties, SPFeatureActivateFlags activateFlags, Boolean force, Boolean fMarkOnly)
at Microsoft.SharePoint.SPFeature.ActivateDeactivateFeatureAtWeb(Boolean fActivate, Boolean fEnsure, Guid featid, SPFeatureDefinition featdef, String urlScope, String sProperties, Boolean fForce) at Microsoft.SharePoint.SPFeature.ActivateDeactivateFeatureAtScope(Boolean
fActivate, Guid featid, SPFeatureDefinition featdef, String urlScope, Boolean fForce) at Microsoft.SharePoint.PowerShell.SPCmdletEnableFeature.UpdateDataObject() at Microsoft.SharePoint.PowerShell.SPCmdlet.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord() at System.Management.Automation.CommandProcessorBase.DoExecute() at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object
input, Hashtable errorResults, Boolean enumerate) at System.Management.Automation.PipelineOps.InvokePipeline(Object input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][]
commandRedirections, FunctionContext funcContext) at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame
frame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.Interpreter.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.LightLambda.RunVoid1[T0](T0
arg0) at System.Management.Automation.DlrScriptCommandProcessor.RunClause(Action`1 clause, Object dollarUnderbar, Object inputToProcess) at System.Management.Automation.CommandProcessorBase.DoComplete() at System.Management.Automation.Internal.PipelineProcessor.DoCompleteCore(CommandProcessorBase
commandRequestingUpstreamCommandsToStop) at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) at System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()
at System.Management.Automation.Runspaces.LocalPipeline.InvokeThreadProc() at System.Management.Automation.Runspaces.PipelineThread.WorkerProc() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,
ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database 880j
High SqlError: 'Cannot insert duplicate key row in object 'dbo.NavNodes' with unique index 'NavNodes_PK'. The duplicate key value is (6323df8a-5c57-4d3e-a477-09aa8b66100a, 7ae114df-9d52-4b08-affa-8c544cbc27b6, 1000).'
Source: '.Net SqlClient Data Provider' Number: 2601 State: 1 Class: 14 Procedure: 'proc_NavStructAddNewNode' LineNumber: 92 Server: 'IMPACTCLUSTER\IMPACTDB'
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database 880j
High SqlError: 'The statement has been terminated.' Source: '.Net SqlClient Data Provider' Number: 3621 State: 0 Class: 0 Procedure: 'proc_NavStructAddNewNode' LineNumber: 92 Server: 'IMPACTCLUSTER\IMPACTDB'
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database tzku
High ConnectionString: 'Data Source=IMPACTCLUSTER\IMPACTDB;Initial Catalog=WSS_Content;Integrated Security=True;Enlist=False;Pooling=True;Min Pool Size=0;Max Pool Size=100;Connect Timeout=15;Application Name=SharePoint[powershell][1][WSS_Content]'
Partition: 6323df8a-5c57-4d3e-a477-09aa8b66100a ConnectionState: Closed ConnectionTimeout: 15
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database tzkv
High SqlCommand: 'BEGIN TRAN DECLARE @abort int SET @abort = 0 DECLARE @EidBase int,@EidHome int SET @EidBase = 0 SET @EidHome = NULL IF @abort = 0 BEGIN EXEC @abort = proc_NavStructAllocateEidBlockWebId @wssp0, @wssp1,
@wssp2, @wssp3, @EidBase OUTPUT SELECT @wssp4 = @EidBase, @wssp5 = @abort END IF @abort = 0 BEGIN EXEC @abort = proc_NavStructAddNewNodeByUrl '6323DF8A-5C57-4D3E-A477-09AA8B66100A','7AE114DF-9D52-4B08-AFFA-8C544CBC27B6',1,2072,-1,0,N'sites/impact/default.aspx',N'PersonSøk',N'PersonSøk',NULL,0,0,0,NULL,@EidBase,@EidHome
OUTPUT SELECT @wssp6 = @abort END IF @abort = 0 BEGIN EXEC proc_NavStructLogChangesAndUpdateSiteChangedTime @wssp7, @wssp8, NULL END IF @abort <> 0 BEGIN ROLLBACK TRAN END ELSE BEGIN COMMIT TRAN END IF @abort = 0 BEGIN EXEC proc_UpdateDiskUsed
'6323DF8A-5C57-4D3E-A477-09AA8B66100A' END ' CommandType: Text CommandTimeout: 0 Parameter: '@wssp0' Type: UniqueIdentifier Size: 0 Direction: Input Value: '6323df8a-5c57-4d3e-a477-09aa8b66100a' Parameter: '@wssp1'
Type: UniqueIdentifier Size: 0 Direction: Input Value: '7ae114df-9d52-4b08-affa-8c544cbc27b6' Parameter: '@wssp2' Type: Int Size: 0 Direction: Input Value: '1' Parameter: '@wssp3' Type: Int Size: 0 Direction: Input Value: '2072'
Parameter: '@wssp4' Type: Int Size: 0 Direction: Output Value: '2072' Parameter: '@wssp5' Type: Int Size: 0 Direction: Output Value: '0' Parameter: '@wssp6' Type: Int Size: 0 Direction: Output Value: '10006'
Parameter: '@wssp7' Type: UniqueIdentifier Size: 0 Direction: Input Value: '6323df8a-5c57-4d3e-a477-09aa8b66100a' Parameter: '@wssp8' Type: UniqueIdentifier Size: 0 Direction: Input Value: '7ae114df-9d52-4b08-affa-8c544cbc27b6'
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database aek90
High SecurityOnOperationCheck = True
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database d0d6
High System.Data.SqlClient.SqlException (0x80131904): Cannot insert duplicate key row in object 'dbo.NavNodes' with unique index 'NavNodes_PK'. The duplicate key value is (6323df8a-5c57-4d3e-a477-09aa8b66100a, 7ae114df-9d52-4b08-affa-8c544cbc27b6,
1000). The statement has been terminated. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj,
Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior
runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
behavior) at Microsoft.SharePoint.Utilities.SqlSession.ExecuteReader(SqlCommand command, CommandBehavior behavior, SqlQueryData monitoringData, Boolean retryForDeadLock) at Microsoft.SharePoint.SPSqlClient.ExecuteQueryInternal(Boolean
retryfordeadlock) at Microsoft.SharePoint.SPSqlClient.ExecuteQuery(Boolean retryfordeadlock) ClientConnectionId:2bb4004c-aa75-470e-b11e-dbf1c476aaed
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database ad194
High ExecuteQuery failed with original error 0x80131904
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Database 8z23
Unexpected Unexpected query execution failure in navigation query, HResult -2146232060. Query text (if available): "BEGIN TRAN DECLARE @abort int SET @abort = 0 DECLARE @EidBase int,@EidHome int SET @EidBase
= 0 SET @EidHome = NULL IF @abort = 0 BEGIN EXEC @abort = proc_NavStructAllocateEidBlockWebId @wssp0, @wssp1, @wssp2, @wssp3, @EidBase OUTPUT SELECT @wssp4 = @EidBase, @wssp5 = @abort END IF @abort = 0 BEGIN EXEC @abort = proc_NavStructAddNewNodeByUrl '6323DF8A-5C57-4D3E-A477-09AA8B66100A','7AE114DF-9D52-4B08-AFFA-8C544CBC27B6',1,2072,-1,0,N'sites/impact/default.aspx',N'PersonSøk',N'PersonSøk',NULL,0,0,0,NULL,@EidBase,@EidHome
OUTPUT SELECT @wssp6 = @abort END IF @abort = 0 BEGIN EXEC proc_NavStructLogChangesAndUpdateSiteChangedTime @wssp7, @wssp8, NULL END IF @abort <> 0 BEGIN ROLLBACK TRAN END ELSE BEGIN COMMIT TRAN END IF @abort = 0 BEGIN EXEC proc_UpdateDiskUsed
'6323DF8A-5C57-4D3E-A477-09AA8B66100A' END "
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
General 8kh7
High <nativehr>0x8107140d</nativehr><nativestack></nativestack>An unexpected error occurred while manipulating the navigational structure of this Web.
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
General aix9j
High SPRequest.AddNavigationNode: UserPrincipalName=i:0).w|s-1-5-21-2030300366-1823906440-2562684930-2106, AppPrincipalName= ,bstrUrl=http://im-sp1/sites/impact ,bstrName=PersonSøk ,bstrNameResource=<null> ,bstrNodeUrl=/sites/impact/default.aspx
,lType=0 ,lParentId=2072 ,lPreviousSiblingId=-1 ,bAddToQuickLaunch=False ,bAddToSearchNav=False
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
General ai1wu
Medium System.Runtime.InteropServices.COMException: <nativehr>0x8107140d</nativehr><nativestack></nativestack>An unexpected error occurred while manipulating the navigational structure of this
Web., StackTrace: at Microsoft.SharePoint.Navigation.SPNavigationNode.AddInternal(Int32 iPreviousNodeId, Int32 iParentId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav) at Microsoft.SharePoint.Navigation.SPNavigationNodeCollection.AddInternal(SPNavigationNode
node, Int32 iPreviousNodeId) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.<ConfigureQuickLaunchBar>b__0() at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated
secureCode) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.ConfigureQuickLaunchBar() at ImpactSharePoint.Features.Pages.PagesEventReceiver.FeatureActivated(SPFeatureReceiverProperties properties)
at Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce) at Microsoft.SharePoint.SPFeature.Activate(SPSite siteParent, SPWeb webParent, SPFeaturePropertyCollection props, SPFeatureActivateFlags activateFlags, Boolean
fForce) at Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition featdef, Version version, SPFeaturePropertyCollection properties, SPFeatureActivateFlags activateFlags, Boolean force, Boolean fMarkOnly) at Microsoft.SharePoint.SPFeature.ActivateDeactivateFeatureAtWeb(Boolean
fActivate, Boolean fEnsure, Guid featid, SPFeatureDefinition featdef, String urlScope, String sProperties, Boolean fForce) at Microsoft.SharePoint.SPFeature.ActivateDeactivateFeatureAtScope(Boolean fActivate, Guid featid, SPFeatureDefinition
featdef, String urlScope, Boolean fForce) at Microsoft.SharePoint.PowerShell.SPCmdletEnableFeature.UpdateDataObject() at Microsoft.SharePoint.PowerShell.SPCmdlet.ProcessRecord() at System.Management.Automation.CommandProcessor.ProcessRecord()
at System.Management.Automation.CommandProcessorBase.DoExecute() at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) at System.Management.Automation.PipelineOps.InvokePipeline(Object
input, Boolean ignoreInput, CommandParameterInternal[][] pipeElements, CommandBaseAst[] pipeElementAsts, CommandRedirection[][] commandRedirections, FunctionContext funcContext) at System.Management.Automation.Interpreter.ActionCallInstruction`6.Run(InterpretedFrame
frame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
at System.Management.Automation.Interpreter.Interpreter.Run(InterpretedFrame frame) at System.Management.Automation.Interpreter.LightLambda.RunVoid1[T0](T0 arg0) at System.Management.Automation.DlrScriptCommandProcessor.RunClause(Action`1
clause, Object dollarUnderbar, Object inputToProcess) at System.Management.Automation.CommandProcessorBase.DoComplete() at System.Management.Automation.Internal.PipelineProcessor.DoCompleteCore(CommandProcessorBase commandRequestingUpstreamCommandsToStop)
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate) at System.Management.Automation.Runspaces.LocalPipeline.InvokeHelper()
at System.Management.Automation.Runspaces.LocalPipeline.InvokeThreadProc() at System.Management.Automation.Runspaces.PipelineThread.WorkerProc() at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,
ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext
executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
03.12.2014 15:21:25.45 PowerShell.exe (0x1620)
0x11F4 SharePoint Foundation
Feature Infrastructure 88jm
High Feature receiver assembly 'ImpactSharePoint, Version=1.1.0.0, Culture=neutral, PublicKeyToken=3f4d824fecc0071e', class 'ImpactSharePoint.Features.Pages.PagesEventReceiver', method 'FeatureActivated' for feature
'd8aabd95-076a-4650-a8a6-0aa5bd8ac8d1' threw an exception: Microsoft.SharePoint.SPException: An unexpected error occurred while manipulating the navigational structure of this Web. ---> System.Runtime.InteropServices.COMException: <nativehr>0x8107140d</nativehr><nativestack></nativestack>An
unexpected error occurred while manipulating the navigational structure of this Web. at Microsoft.SharePoint.Library.SPRequestInternalClass.AddNavigationNode(String bstrUrl, String bstrName, String bstrNameResource, String bstrNodeUrl, Int32
lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav, String& pbstrDateModified) at Microsoft.SharePoint.Library.SPRequest.AddNavigationNode(String bstrUrl, String bstrName, String bstrNameResource,
String bstrNodeUrl, Int32 lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav, String& pbstrDateModified) --- End of inner exception stack trace --- at Microsoft.SharePoint.SPGlobal.HandleComException(COMException
comEx) at Microsoft.SharePoint.Library.SPRequest.AddNavigationNode(String bstrUrl, String bstrName, String bstrNameResource, String bstrNodeUrl, Int32 lType, Int32 lParentId, Int32 lPreviousSiblingId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav,
String& pbstrDateModified) at Microsoft.SharePoint.Navigation.SPNavigationNode.AddInternal(Int32 iPreviousNodeId, Int32 iParentId, Boolean bAddToQuickLaunch, Boolean bAddToSearchNav) at Microsoft.SharePoint.Navigation.SPNavigationNodeCollection.AddInternal(SPNavigationNode
node, Int32 iPreviousNodeId) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.<ConfigureQuickLaunchBar>b__0() at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated
secureCode) at ImpactSharePoint.ConfigureSharePointInstance.NavigationConfig.ConfigureQuickLaunchBar() at ImpactSharePoint.Features.Pages.PagesEventReceiver.FeatureActivated(SPFeatureReceiverProperties properties)
at Microsoft.SharePoint.SPFeature.DoActivationCallout(Boolean fActivate, Boolean fForce)
5b7e05f7-49df-42ca-b7c9-8ae5b06b464f
The code:
using System.Diagnostics;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;
namespace ImpactSharePoint.ConfigureSharePointInstance
public class NavigationConfig
public void ConfigureQuickLaunchBar(SPWeb web)
SPSecurity.RunWithElevatedPrivileges(delegate
//Delete All Links
web.AllowUnsafeUpdates = true;
for (int i = web.Navigation.QuickLaunch.Count - 1; i > -1; i--)
web.Navigation.QuickLaunch[i].Delete(); // -> Deleting all the links in quick launch
web.QuickLaunchEnabled = true;
EventLog.WriteEntry("Sharepointfeature","Starter");
//Adding Links
SPNavigationNodeCollection nodes = web.Navigation.QuickLaunch;
var sokNode = new SPNavigationNode("Søk", null, false);
nodes.AddAsFirst(sokNode);
sokNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til søk");
// Personsøk
var personSokNode = new SPNavigationNode("Deltakere", "/sites/impact/default.aspx", false); //TODO: fix hardkoding
sokNode.Children.AddAsFirst(personSokNode);
personSokNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node personsøk");
// Udb-søk
var udbSokNode = new SPNavigationNode("UDB-Søk", "/sites/impact/udbsok.aspx", false); //TODO: fix hardkoding
sokNode.Children.AddAsLast(udbSokNode);
udbSokNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node udbsøk");
// Kommuner
var kommuneNode = new SPNavigationNode("Kommuner", "/sites/impact/kommunesearch.aspx", false); //TODO: fix hardkoding
sokNode.Children.AddAsFirst(kommuneNode);
kommuneNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node kommunesøk");
// Organisasjoner
var virksomhetNode = new SPNavigationNode("Organisasjoner", "/sites/impact/virksomhetsearch.aspx", false); //TODO: fix hardkoding
sokNode.Children.AddAsFirst(virksomhetNode);
virksomhetNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node kommunesøk");
// NIR
var nirNode = new SPNavigationNode("Nir", null, false); //TODO: fix hardkoding
nodes.AddAsLast(nirNode);
nirNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node Nir");
// Tilskudd
var tilskuddNode = new SPNavigationNode("Tilskudd", "/sites/impact/", false);
nodes.AddAsLast(tilskuddNode);
tilskuddNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node Tilskudd");
// Kjøringsoversikt
var showkjoringerNode = new SPNavigationNode("Kjøringsoversikt", "/sites/dev/kjoringoversikt.aspx", false); //TODO: fix hardkoding
tilskuddNode.Children.AddAsFirst(showkjoringerNode);
showkjoringerNode.Update();
EventLog.WriteEntry("Sharepointfeature", "Lagt til node showkjoringerNode");
web.Update();
EventLog.WriteEntry("Sharepointfeature", "Etter update");
//Setting homepage
SPFolder folder = web.RootFolder;
folder.WelcomePage = "default.aspx";
folder.Update();
EventLog.WriteEntry("Sharepointfeature", "Etter homepage");
web.AllowUnsafeUpdates = false;i think you need to debug your code, lookalike the values you trying insert already exist in the database.
these two IDs (6323df8a-5c57-4d3e-a477-09aa8b66100a, 7ae114df-9d52-4b08-affa-8c544cbc27b6).
i would try to run the select command against the content db.
SELECT TOP * FROM [DB Name].[dbo].[NavNodes] where id = '6323df8a-5c57-4d3e-a477-09aa8b66100a'
Please remember to mark your question as answered &Vote helpful,if this solves/helps your problem. ****************************************************************************************** Thanks -WS MCITP(SharePoint 2010, 2013) Blog: http://wscheema.com/blog -
Best practice for update/insert on existing/non existing rows
Hello,
In an application I want to check if a row exists and if yes I want to update the row and if not I want to insert the row.
Currently I have something like this:
begin
select *
into v_ps_abcana
from ps_abcana
where typ = p_typ
and bsw_nr = p_bsw_nr
and datum = v_akt_date
for update;
exception
when no_data_found then
v_update := false;
when others then
raise e_error_return;
end;
if v_update = false
then
/* insert new row */
else
/* update locked row */
end if;
The problem is that the FOR UPDATE lock has no effect for inserts. So if another session executes this part exactly the same time then there will be two rows inserted.
What is the best way to avoid this?for me the 1st solution is the most efficient one.
in your 2nd solution it seems to me that you're gonna create a dummy table that will serve as a traffic cop. well that possible but not the proper and clean approach for your requirement. you're absolutely complicating your life where in fact Oracle can do it all for you.
First thing that you have to consider is your database design. This should somehow corresponds to the business rule and don't just let the program to do it on that level leaving the database vulnerable to data integrity issue such as direct data access. In your particular example, there's no way you can assure that there'll be no duplicate records in the table.
this is just an advice when designing solution: Don't use a "Mickey Mouse" approach on your design! -
How to update duplicate row from table
Hi,
how to update duplicate row from table?
First to find duplicate row then update duplicate row with no to that duplicate row in oracle.
can you give me suggestion on it?
Thanks in advance.
your early response is appreciated...In order to find a duplicate row, see:
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1224636375004
(or search this forum, your question has been asked before)
In order to update it, just create and use an Oracle sequence, have it start and increment at a value that doesn't exist in your table.
If that doesn't get you going, post some CREATE TABLE + INSERT INTO statements, and the results you want from them, in other words: a complete testcase. -
Re: Update Duplicate Rows
Oracle 11.2.0.2
Windows 2008
I have this table (case_file) with duplicate rows (case_number).
I will like to make the case_number unique through out the table.
For example, if I have two rows with the same case_number(225), I will like to change one of the numbers and record that case_number to the privious_case_number column.
I am looking for a way to write up a script to automate the process.
Any help will be appreciated.
CREATE sequence case_id_seq
start with 25;
create table case_file
( case_id number not null, case_number varchar2(25), privious_case_number varchar(25), modified_by varchar2(50));
INSERT into case_file (case_id, case_number, privious_case_number, modified_by)
VALUES (case_id_seq.nextval, '220', '2002', 'DBA');
INSERT into case_file (case_id, case_number, privious_case_number, modified_by)
VALUES (case_id_seq.nextval, '225', null, 'DBA');
INSERT into case_file (case_id, case_number, privious_case_number, modified_by)
VALUES (case_id_seq.nextval, '224', null, 'PM');
INSERT into case_file (case_id, case_number, privious_case_number, modified_by)
VALUES (case_id_seq.nextval, '205', null, 'Supervisor');
INSERT into case_file (case_id, case_number, privious_case_number, modified_by)
VALUES (case_id_seq.nextval, '225', null, 'DBA');When I run the below query, I get this result, with 225 showing up twice:
select * from case_file;
26 225 2002 DBA
27 220 2002 DBA
28 225 DBA
29 224 PM
30 205 Supervisor
31 225 DBAWhen I run the below script:
SELECT case_number, COUNT(case_number) as Number_Of_Case_Number
FROM case_file
GROUP BY case_number
HAVING COUNT(case_number) > 1I get this result
CASE_NUMBER NUMBER_OF_CASE_NUMBER
225 3
SQL>Edited by: 868332 on Feb 6, 2012 1:23 PMHi,
Do you really need two unique numbers for each row?
To make case_numebr unique, first, see what the highest existing case_number is, and create a new sequence that starts after that point:
CREATE SEQUENCE case_number_seq
START WITH 250;Always use that sequence when assigning case_numbers in the future.
To re-number the existing duplicates :
UPDATE case_file
SET case_number = case_number_seq.NEXTVAL
, previous_case_number = case_number
WHERE case_id IN (
WITH got_r_num AS
SELECT case_id
, ROW_NUMBER () OVER ( PARTITION BY case_number
ORDER BY case_id
) AS r_num
FROM case_file
SELECT case_id
FROM got_r_num
WHERE r_num > 1
;The sub-query got_r_num assigns numbers 1, 2, 3, ... to all rows, in order by case_id (lowest case_id gets r_num=1) with a separate set of numebrs for each case_number. When there are duplicates, one of the rows with that case_number will keep that case_number, and all the others will be new case_numebrs from case_numebr_seq.
Edited by: Frank Kulash on Feb 6, 2012 4:37 PM
Originally missed the part about previous_case_number. (Be careful how to spell "previous".) -
Sybase Error 2601 Attempt to insert duplicate key row in object with unique
RE: Sybase Error 2601 Attempt to insert duplicate key row in object with unique index.
Hi Folks,
I'm getting the following error whilst executing a stored procedure in Sybase.
ERROR: Sybase Error 2601 Attempt to insert duplicate key row in object with unique index.
I understand that duplicate values have been inserted into a column that has a unique constraint.
I just can't figure out how to rectify the problem.
Your help will be greatly appreciated!
Many thanks in advance.If the value I'm trying to insert (using update)
already exists in the unique-value field then the DB
refuses to update the field.
If the value is different it will update.Are you trying to insert or update in SQL (identified by the keyword INSERT or UPDATE respectively)?
Even in case of an UPDATE query, if you are going to update the values of some columns to violate the unique constraints, the update will not succeed and you will get the error message.
or is it?
it tries to create a new row, but can't because there
is another row with the same unique-values.
If this is the case, I am only trying to update and
not create a new item.To put it in simpler words, if you have a set of values defining the uniqueness of a record, you cannot insert another record with the same set of unique values. Similarly, you cannot update an existing record by modifying the set to conflict with another set of unique values which already exist in the database.
Suppose there are two columns A and B defining the uniqueness of the record and you have only two records at the moment like -
A B
========
1 1
2 1
If you try to insert a record with A = 1 and B = 1, it will fail because a record already exists. You cannot violate uniqueness because the database has already been told that there will be only one record for any given combination of A and B.
Similarly, if you try to update the second record from A = 2 to A = 1, the end result would be A =1 and B = 1. There is already a record with that set of values and this will result in a violation of the uniqueness. So, this update will also be disallowed. On the other hand, if you try to update B to some value, say 3, there is no problem in doing so.
For convenience, you can imagine an UPDATE operation to be equivalent to DELETE + INSERT operation, though it doesn't necessarily work the same way internally.
I hope I was clear enough. -
I have an index constraint "IX_Tag_Processed" on the field "Tag_Name" for the table "Tag_Processed". I keep getting this constraint error:
Msg 2601, Level 14, State 1, Line 15
Cannot insert duplicate key row in object 'etag.Tag_Processed' with unique index 'IX_Tag_Processed'. The duplicate key value is (AZPS_TEMUWS0110BL4_CISO).
The statement has been terminated.
For this INSERT: I have tried using tagstg.Tag_Name NOT IN with same result:
INSERT into [Forecast_Data_Repository].[etag].[Tag_Processed] (Tag_Name, Tag_Type,Start_Datetime, End_Datetime, Source_SC, Sink_SC, Source_CA, Sink_CA, Source, Sink, Load_dt, Energy_product_code_id)
SELECT DISTINCT (Tag_Name), Tag_Type,Start_Datetime, End_Datetime, Source_SC, Sink_SC, Source_CA, Sink_CA, Source, Sink, GETUTCDATE(), [Forecast_Data_Repository].rscalc.GetStubbedEngProductCodeFromStaging(tagstg.Tag_Name)
FROM [Forecast_Data_Repository].[etag].[Tag_Stg] tagstg
WHERE tagstg.Id BETWEEN @minTId AND @maxTId --AND
--tagstg.Tag_Name NOT IN (
-- SELECT DISTINCT tproc.Tag_Name from [Forecast_Data_Repository].[etag].[Tag_Processed] tproc
thank you in advance,
Greg HansonI have even tried a merge with the same constraint error,
DECLARE @minTId bigint, @minTRId bigint, @minEId bigint
DECLARE @maxTId bigint, @maxTRId bigint, @maxEId bigint
DECLARE @errorCode int
DECLARE @ReturnCodeTypeIdName nvarchar(50)
SELECT @minTRId = Min(Id) FROM [etag].[Transmission_Stg]
SELECT @maxTRId = Max(Id) FROM [etag].[Transmission_Stg]
SELECT @minTId = Min(Id) FROM [etag].[Tag_Stg]
SELECT @maxTId = Max(Id) FROM [etag].[Tag_Stg]
DECLARE @MergeOutputTag TABLE
ActionType NVARCHAR(10),
InsertTagName NVARCHAR(50)
--UpdateTagName NVARCHAR(50)
--DeleteTagName NVARCHAR(50)
DECLARE @MergeOutputEnergy TABLE
ActionType NVARCHAR(10),
InsertTagId BIGINT
--UpdateTagName NVARCHAR(50)
--DeleteTagName NVARCHAR(50)
DECLARE @MergeOutputTransmission TABLE
ActionType NVARCHAR(10),
InsertTagId BIGINT
--UpdateTagName NVARCHAR(50)
--DeleteTagName NVARCHAR(50)
MERGE [Forecast_Data_Repository].[etag].[Tag_Processed] tagProc
USING [Forecast_Data_Repository].[etag].[Tag_Stg] tagStg
ON
tagProc.Tag_Name = tagStg.Tag_Name AND
tagProc.Tag_Type = tagStg.Tag_Type AND
tagProc.Start_Datetime = tagStg.Start_Datetime AND
tagProc.End_Datetime = tagStg.End_Datetime AND
tagProc.Source_SC = tagStg.Source_SC AND
tagProc.Source_CA = tagStg.Source_CA AND
tagProc.Sink_CA = tagStg.Sink_CA AND
tagProc.Source = tagStg.Source AND
tagProc.Sink = tagStg.Sink
WHEN MATCHED THEN
UPDATE
SET Tag_Name = tagStg.Tag_Name,
Tag_Type = tagStg.Tag_Type,
Start_DateTime = tagStg.Start_Datetime,
End_Datetime = tagStg.End_Datetime,
Source_SC = tagStg.Source_SC,
Sink_SC = tagStg.Sink_SC,
Source_CA = tagStg.Source_CA,
Sink_CA = tagStg.Sink_CA,
Source = tagStg.Source,
Sink = tagStg.Sink,
Load_dt = GETUTCDATE()
WHEN NOT MATCHED BY TARGET THEN
INSERT (Tag_Name, Tag_Type, Start_Datetime, End_Datetime, Source_SC, Sink_SC, Source_CA, Sink_CA, Source, Sink, Load_dt)
VALUES (tagStg.Tag_Name, tagStg.Tag_Type, tagStg.Start_Datetime, tagStg.End_Datetime, tagStg.Source_SC, tagStg.Sink_SC, tagStg.Source_CA, tagStg.Sink_CA, tagStg.Source, tagStg.Sink, GETUTCDATE())
OUTPUT
$action,
INSERTED.Tag_Name
--UPDATED.Tag_Name
INTO @MergeOutputTag;
SELECT * FROM @MergeOutputTag;
Greg Hanson -
Cannot insert duplicate key row in object Error Message
Morning All,
I noticed today that the DW has not been updated with some of my CI's based off my custom class.
The event log is showing these error messages.
An error countered while attempting to execute ETL Module:
ETL process type: Transform
Batch ID: 5601
Module name: TransformPeripheralDim
Message: ErrorNumber="2601" Message="Cannot insert duplicate key row in object 'dbo.PeripheralDim' with unique index 'UniqueIndex'." Severity="14" State="1" ProcedureName="TransformPeripheralDimProc" LineNumber="163" Task="Inserting into Dimension"
Stack: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at Microsoft.SystemCenter.Warehouse.Utility.SqlHelper.ExecuteReader(SqlConnection sqlCon, CommandType cmdType, String cmdText, SqlParameter[] parameters)
at Microsoft.SystemCenter.Warehouse.Etl.StoredProcedure.Execute(IXPathNavigable config, Watermark wm, DomainUser sourceConnectionUser, DomainUser destinationConnectionUser)
at Microsoft.SystemCenter.Warehouse.Etl.TransformModule.Execute(IXPathNavigable config, Watermark wm, DomainUser sourceConnectionUser, DomainUser destinationConnectionUser)
at Microsoft.SystemCenter.Etl.ETLModule.OnDataItem(DataItemBase dataItem, DataItemAcknowledgementCallback acknowledgedCallback, Object acknowledgedState, DataItemProcessingCompleteCallback completionCallback, Object completionState)
ETL Module Execution failed:
ETL process type: Transform
Batch ID: 5601
Module name: TransformPeripheralDim
Message: ErrorNumber="2601" Message="Cannot insert duplicate key row in object 'dbo.PeripheralDim' with unique index 'UniqueIndex'." Severity="14" State="1" ProcedureName="TransformPeripheralDimProc" LineNumber="163" Task="Inserting into Dimension"
Stack: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at Microsoft.SystemCenter.Warehouse.Utility.SqlHelper.ExecuteReader(SqlConnection sqlCon, CommandType cmdType, String cmdText, SqlParameter[] parameters)
at Microsoft.SystemCenter.Warehouse.Etl.StoredProcedure.Execute(IXPathNavigable config, Watermark wm, DomainUser sourceConnectionUser, DomainUser destinationConnectionUser)
at Microsoft.SystemCenter.Warehouse.Etl.TransformModule.Execute(IXPathNavigable config, Watermark wm, DomainUser sourceConnectionUser, DomainUser destinationConnectionUser)
at Microsoft.SystemCenter.Etl.ETLModule.OnDataItem(DataItemBase dataItem, DataItemAcknowledgementCallback acknowledgedCallback, Object acknowledgedState, DataItemProcessingCompleteCallback completionCallback, Object completionState)
It was working fine so I'm not sure what's caused it to stop or where I can start looking to see what's causing it.
Any ideas?
Cheers,
SB
My System Center BlogJust in case it helps, this is the MP I'm using to bring the data across to the DW.
If I removed the MP from Service Manager, would that drop the tables in the DW and allow me to start again?
<ManagementPack
ContentReadable="true"
SchemaVersion="1.1"
OriginalSchemaVersion="1.1">
<Manifest>
<Identity>
<ID>AssetManagementReports</ID>
<Version>1.0.0.6</Version>
</Identity>
<Name>AssetManagementReports</Name>
<References>
<Reference
Alias="AssetManagemetListsRef">
<ID>AssetManagementLists</ID>
<Version>1.0.1.1</Version>
<PublicKeyToken>0a39b272096917b0</PublicKeyToken>
</Reference>
<Reference
Alias="AssetManagementMP">
<ID>AssetManagement</ID>
<Version>1.0.0.21</Version>
<PublicKeyToken>0a39b272096917b0</PublicKeyToken>
</Reference>
<Reference
Alias="DWBase">
<ID>Microsoft.SystemCenter.Datawarehouse.Base</ID>
<Version>7.0.5826.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
<Reference
Alias="System">
<ID>System.Library</ID>
<Version>7.0.5826.0</Version>
<PublicKeyToken>31bf3856ad364e35</PublicKeyToken>
</Reference>
</References>
</Manifest>
<Warehouse>
<Outriggers>
<Outrigger
ID="EquipmentTypeList"
Accessibility="Public">
<Attribute
ID="EquipmentType"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/EquipmentType$"/>
</Outrigger>
<Outrigger
ID="ManufacturerList"
Accessibility="Public">
<Attribute
ID="Manufacturer"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Manufacturer$"/>
</Outrigger>
<Outrigger
ID="ModelList"
Accessibility="Public">
<Attribute
ID="Model"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Model$"/>
</Outrigger>
<Outrigger
ID="SupplierList"
Accessibility="Public">
<Attribute
ID="Supplier"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Supplier$"/>
</Outrigger>
<Outrigger
ID="DirectorateList"
Accessibility="Public">
<Attribute
ID="Directorate"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Directorate$"/>
</Outrigger>
<Outrigger
ID="DepartmentList"
Accessibility="Public">
<Attribute
ID="Department"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Department$"/>
</Outrigger>
<Outrigger
ID="SectionList"
Accessibility="Public">
<Attribute
ID="Section"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Section$"/>
</Outrigger>
<Outrigger
ID="LocationList"
Accessibility="Public">
<Attribute
ID="Location"
PropertyPath="$Context/Property[Type='AssetManagementMP!AssetManagementBaseClass']/Location$"/>
</Outrigger>
<Outrigger
ID="MobileTariffList"
Accessibility="Public">
<Attribute
ID="MobileTariff"
PropertyPath="$Context/Property[Type='AssetManagementMP!MobilePhoneNumberAsset']/MobileTariff$"/>
</Outrigger>
</Outriggers>
<Dimensions>
<Dimension
ID="PeripheralDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!Peripheral"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="MobilePhonesDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!MobilePhones"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="MobileSIMCardAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!MobileSIMCardAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="MobilePhoneNumberAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!MobilePhoneNumberAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="RemoteAccessTokenAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!RemoteAccessTokenAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="CiscoIPTelephonyAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!CiscoIPTelephonyAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="NetworkInfrastructureAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!NetworkInfrastructureAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
<Dimension
ID="ServerInfrastructureAssetDim"
Accessibility="Public"
InferredDimension="true"
Target="AssetManagementMP!ServerInfrastructureAsset"
HierarchySupport="IncludeDerivedClassProperties"
Reconcile="true"/>
</Dimensions>
<Facts>
<RelationshipFact
ID="MobiletoSIMCardFact"
Accessibility="Public"
Domain="DWBase!Domain.ConfigurationManagement"
TimeGrain="Daily"
SourceType="AssetManagementMP!MobilePhones"
SourceDimension="MobilePhonesDim">
<Relationships
RelationshipType="AssetManagementMP!MobiletoSIMCard"
TargetDimension="MobileSIMCardAssetDim"/>
</RelationshipFact>
<RelationshipFact
ID="MobiletoPhoneNumberFact"
Accessibility="Public"
Domain="DWBase!Domain.ConfigurationManagement"
TimeGrain="Daily"
SourceType="AssetManagementMP!MobilePhones"
SourceDimension="MobilePhonesDim">
<Relationships
RelationshipType="AssetManagementMP!MobiletoPhoneNumber"
TargetDimension="MobilePhoneNumberAssetDim"/>
</RelationshipFact>
<RelationshipFact
ID="MobilePhoneNumberToSIMCardFact"
Accessibility="Public"
Domain="DWBase!Domain.ConfigurationManagement"
TimeGrain="Daily"
SourceType="AssetManagementMP!MobilePhoneNumberAsset"
SourceDimension="MobilePhoneNumberAssetDim">
<Relationships
RelationshipType="AssetManagementMP!MobilePhoneNumberToSIMCard"
TargetDimension="MobileSIMCardAssetDim"/>
</RelationshipFact>
<RelationshipFact
ID="PeripheralOwnedByUserFact"
Accessibility="Public"
Domain="DWBase!Domain.ConfigurationManagement"
TimeGrain="Daily"
SourceType="AssetManagementMP!Peripheral"
SourceDimension="PeripheralDim">
<Relationships
RelationshipType="System!System.ConfigItemOwnedByUser"
TargetDimension="DWBase!UserDim"/>
</RelationshipFact>
</Facts>
</Warehouse>
<LanguagePacks>
<LanguagePack
ID="ENG"
IsDefault="true">
<DisplayStrings>
<DisplayString
ElementID="AssetManagementReports">
<Name>Asset
Management Reports</Name>
<Description>This
management pack adds an Asset Management dimension to the Data Warehouse and other items related to reporting.</Description>
</DisplayString>
</DisplayStrings>
</LanguagePack>
<LanguagePack
ID="ENU"
IsDefault="false">
<DisplayStrings>
<DisplayString
ElementID="AssetManagementReports">
<Name>Asset
Management Reports</Name>
<Description>This
management pack adds an Asset Management dimension to the Data Warehouse and other items related to reporting.</Description>
</DisplayString>
</DisplayStrings>
</LanguagePack>
</LanguagePacks>
</ManagementPack>
My System Center Blog
Maybe you are looking for
-
Hi, The following is a public attribute in the class CL_MEREP_SYNCBO_META data FIELD_GROUPS type MEREP_TSYNCBO_FIELD_GROUP read-only . MEREP_TSYNCBO_FIELD_GROUP is a table type having ref type CL_MEREP_SYNCBO_FIELD_GROUP (which is a class) What is t
-
Can't open & create event in iCal
I used to be able to open & create an event in iCal. But, the last time I sync'd my iphone & macbook it asked me which event was correct. I clicked on the one on the right and haven't been able to view or create on macbook since (can open & create
-
Missing Apple menu in Mavericks
My Apple menu in the upper left of the menu bar keeps disappearing. I searched and found this thread https://discussions.apple.com/thread/5504706 which gives the solution of deleting the com.apple.systemuiserver.plist file. This works after restart
-
I just downloaded the new version of itunes, but I don't know why I can't download my music as the last version I used
-
Warning message for too many SMS?
Using handcent, chomp, default messenger. So any app I use it seems to overload the limit. I have unlimited txts. I would like to remove this warning. Many people are telling me they are not even receiving the text. SO I am assuming the warning messa