3

I'm having some problems in an SDL Tridion 2011 Sp 1-2 environment using an oracle DB.

I can open, edit and save all item types, except for template building blocks. When doing so the following error is raised:

<?xml version="1.0" standalone="yes"?>
<tcm:Error ErrorCode="8004033F" Category="4" Source="Kernel" Severity="1" xmlns:tcm="http://www.tridion.com/ContentManager/5.0">
<tcm:Line ErrorCode="8004033F" Cause="false" MessageID="16137">
<![CDATA[Unable to save Template Building Block (tcm:4-90-2048).]]>
<tcm:Token>RESID_4574</tcm:Token><tcm:Token>RESID_15320</tcm:Token><tcm:Token>tcm:4-90-2048</tcm:Token>
</tcm:Line>
<tcm:Line ErrorCode="8004033F" Cause="true">
<![CDATA[ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at "CMDBUSER.EDA_ITEMS", line 4589 ORA-06512: at line 1]]>
</tcm:Line>
<tcm:Line ErrorCode="8004033F" Cause="false">
<![CDATA[A database error occurred while executing Stored Procedure "EDA_ITEMS.UPDATEBINARYCONTENT".]]>
<tcm:Token>EDA_ITEMS.UPDATEBINARYCONTENT</tcm:Token>
</tcm:Line><tcm:Details><tcm:CallStack>
<tcm:Location>Oracle.DataAccess.Client.OracleException.HandleErrorHelper
(Int32,OracleConnection,IntPtr,OpoSqlValCtx*,Object,String,Boolean)</tcm:Location><tcm:Location>Oracle.DataAccess.Client.OracleException.HandleError
(Int32,OracleConnection,String,IntPtr,OpoSqlValCtx*,Object,Boolean)</tcm:Location><tcm:Location>Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery()</tcm:Location><tcm:Location>Tridion.ContentManager.Data.AdoNet.Oracle.OracleDatabaseUtilities.
SetBinaryContent(Int32,Stream)</tcm:Location>
<tcm:Location>Tridion.ContentManager.Data.AdoNet.Oracle.OracleDatabaseUtilities.
SetBinaryContent(Int32,Stream)</tcm:Location>
<tcm:Location>Tridion.ContentManager.Data.AdoNet.ContentManagement.ItemDataMapper.Tridion.ContentManager.Data.ContentManagement.IItemDataMapper.SetBinaryContent(Stream,TcmUri)
</tcm:Location><tcm:Location>Tridion.ContentManager.ContentManagement.RepositoryLocalObject.SetBinaryContent(BinaryContent)</tcm:Location>
<tcm:Location>Tridion.ContentManager.CommunicationManagement.Template.OnSaved(SaveEventArgs)
</tcm:Location><tcm:Location>Tridion.ContentManager.IdentifiableObject.Save(SaveEventArgs)</tcm:Location>
<tcm:Location>Tridion.ContentManager.ContentManagement.VersionedItem.Save(Boolean)</tcm:Location><tcm:Location>Tridion.ContentManager.ContentManagement.VersionedItem.Save()</tcm:Location>
<tcm:Location>Tridion.ContentManager.BLFacade.ContentManagement.VersionedItemFacade.UpdateAndCheckIn(UserContext,String,Boolean,Boolean)</tcm:Location><tcm:Location>XMLState.Save</tcm:Location>
<tcm:Location>TemplateBuildingBlock.Save</tcm:Location></tcm:CallStack></tcm:Details></tcm:Error>

I've ran the purge tool to remove all histories (of every item) but the problem is still there. If anyone has ran into this one before, or has some suggestions for de-bugging I would really appreciate it :)

Thanks

1 Answer 1

4

Looking at ORA-01422 (http://www.techonthenet.com/oracle/errors/ora01422.php), the likely cause is a SELECT INTO whose WHERE clause isn't specific enough to isolate a single record. I would suggest you get the database administrator to log the queries that take place when you execute your reproduction scenario, and then go looking for the bad one. Once you know what the WHERE clause actually says, you should be fairly close to the answer.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.