Unique constraint violation

I just got an error of constraint unique violation when I tried to insert a row in a table.
But even after that I deleted the PK constraint on the table in question, I still get the same error message when I try again the insert:
SQL error: ORA-00001: unique constraint (GILLNET_TAG. DELETED_AUTH_PK) violated
00001 00000 - "forced single (s.%s) violated."
* Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
For Trusted Oracle configured in DBMS MAC mode, you can see
This message if there is an entry double at a different level.
* Action: Either remove the single restriction or not to insert the key.

Can someone tell me why? The removal of the constraint simply not registered with SQL Developer?
Thank you.

Because you have only removed the constraint, not the corresponding unique index.

But... Why are you doing it? The unique constraint is there for a reason.

Tags: Database

Similar Questions

  • Unique constraint violation error

    Hi all

    I have a procedure called - FHM_DASHBOARD_PROC which inserts data into a table called FHM_DASHBOARD_F retrieve records in multiple tables. However, for a particular type of record, these data are not inserted because of the Unique constraint violation

    the procedure is:
    create or replace
    PROCEDURE FHM_DASHBOARD_PROC AS
    
    DB_METRICS_CNT1Z number;
    --V_PODNAME varchar2(10);
    V_KI_CODE_DB_STATSZ varchar2(50);
    V_ERRORSTRING varchar2(100);
    
    --CURSOR PODNAME_CUR IS SELECT PODNAME,SHORTNAME FROM CRMODDEV.POD_DATA WHERE PODSTATUS_ID=1 AND PODTYPE_ID=1 ORDER BY PODNAME;
    
    
    -- DB STATS
    
    BEGIN 
    
      -- OPEN PODNAME_CUR;
        --   LOOP
          --   FETCH PODNAME_CUR INTO V_PODNAME,V_POD_SHORTNAME ;
            -- EXIT WHEN PODNAME_CUR%NOTFOUND;
    
               BEGIN
               
                     SELECT COUNT(*) INTO DB_METRICS_CNT1Z FROM FHM_DB_METRICS_F A, FHM_DB_D B where A.DBNAME=B.DBNAME and PODNAME=V_PODNAME AND DB_DATE=TRUNC(SYSDATE-1);
                               DBMS_OUTPUT.PUT_LINE('DB_METRICS_CNT1Z :'|| DB_METRICS_CNT1Z);
                               IF DB_METRICS_CNT1Z >0 THEN
                             
                        DBMS_OUTPUT.PUT_LINE('DB STATS');
                                  
                       INSERT INTO FHM_DASHBOARD_F(PODNAME,DASH_DATE,KI_CODE,KI_VALUE,KI_STATUS)
                                  
                          (SELECT PODNAME, DASH_DATE AS CU_DATE, KI.KI_CODE, NVL(PF.KI_VALUE,0), 
                                                                  CASE
                                                                   WHEN PF.KI_VALUE = ki.warning_threshold then 2
                        when PF.KI_VALUE=0 then 0
                        ELSE 1 
                        END  AS ALERT_STATUS
                        
                        FROM 
                        
                        (SELECT PODNAME,DB_DATE AS DASH_DATE,decode(a.stats_last_status,'SUCCEEDED',1,'FAILED',2,'STOPPED',2,NULL,0) KI_VALUE from  
                        FHM_DB_METRICS_F a,fhm_db_d b where a.dbname=b.dbname and podname='XYZ' and db_date=TRUNC(SYSDATE-1) and dbtype='OLTP')PF,
                        FHM_KEY_INDICATOR_D KI where PF.PODNAME=KI.POD_NAME AND KI.TIER_CODE=3 AND KI.KI_NAME='DB_STATS'
                        AND (PF.PODNAME,TRUNC(PF.DASH_DATE),KI.KI_CODE) NOT IN (SELECT PODNAME,DASH_DATE,KI_CODE FROM FHM_DASHBOARD_F)); 
                                 COMMIT;
                     
                             ELSE
                                    SELECT KI_CODE INTO V_KI_CODE_DB_STATSZ FROM FHM_KEY_INDICATOR_D WHERE POD_NAME=V_PODNAME AND KI_NAME='DB_STATS';
                                     DBMS_OUTPUT.PUT_LINE('V_KI_CODE_DB_STATSZ :'||V_KI_CODE_DB_STATSZ);
                                     INSERT INTO FHM_DASHBOARD_F(PODNAME,DASH_DATE,KI_CODE,KI_VALUE,KI_STATUS) VALUES(V_PODNAME,TRUNC(SYSDATE-1),V_KI_CODE_DB_STATSZ,0,0); 
                                     COMMIT; 
                                     
                             END IF;
                            
         EXCEPTION
                            WHEN OTHERS THEN
                            V_ERRORSTRING :='INSERT INTO FHM_DASHBOARD_F_ERROR_LOG(POD_NAME,KI_NAME,ERRORNO,ERRORMESSAGE,DATETIME) VALUES
                   ('''||V_PODNAME||''',''DB_STATS'','''||SQLCODE||''','''||SQLERRM||''',SYSDATE)';                         
                   EXECUTE IMMEDIATE  V_ERRORSTRING;
                            COMMIT;
              END;
    
          --END LOOP;
      --CLOSE PODNAME_CUR;
    
    
    END;
    
    
    END FHM_DASHBOARD_PROC;
    and the table where data integration is
    CREATE TABLE "CRMODDEV"."FHM_DASHBOARD_F"
      (
        "PODNAME" VARCHAR2(25 BYTE) NOT NULL ENABLE,
        "DASH_DATE" DATE,
        "KI_CODE"   NUMBER NOT NULL ENABLE,
        "KI_VALUE"  NUMBER,
        "KI_STATUS" NUMBER,
        CONSTRAINT "FHM_DASHBOARD_F_DATE_PK" PRIMARY KEY ("DASH_DATE", "PODNAME", "KI_CODE") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTE STATISTICS STORAGE(INITIAL 4194304 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "CRMODDEV_IDX" ENABLE,
        CONSTRAINT "FHM_DASHBOARD_F_KI_CODE_FK" FOREIGN KEY ("KI_CODE") REFERENCES "CRMODDEV"."FHM_KEY_INDICATOR_D" ("KI_CODE") ENABLE
      )
      PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS NOLOGGING STORAGE
      (
        INITIAL 3145728 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
      )
      TABLESPACE "CRMODDEV_TBL" ENABLE ROW MOVEMENT ;
    the constraint primary key is FHM_DASHBOARD_F_DATE_PK and is on 3 columns of the table, DASH_DATE, PODNAME, KI_CODE



    And it's the query used in the procedure to insert the data into the table
    (SELECT  PODNAME, DASH_DATE AS CU_DATE, KI.KI_CODE, NVL(PF.KI_VALUE,0), 
                                   CASE
                                   WHEN PF.KI_VALUE = ki.warning_threshold then 2
    when PF.KI_VALUE=0 then 0
    ELSE 1 
    END  AS ALERT_STATUS
    From 
    (Select  Podname,Db_Date As Dash_Date,Decode(A.Stats_Last_Status,'SUCCEEDED',1,'FAILED',2,'STOPPED',2,Null,0) Ki_Value From  -- Added Distinct
    FHM_DB_METRICS_F a,fhm_db_d b where a.dbname=b.dbname and podname in ('XYZ') and db_date = TRUNC(SYSDATE-2) and dbtype='OLTP')PF,
    Fhm_Key_Indicator_D Ki Where Pf.Podname=Ki.Pod_Name And Ki.Tier_Code=3 And Ki.Ki_Name='DB_STATS'
    And (Pf.Podname,Trunc(Pf.Dash_Date),Ki.Ki_Code) Not In (Select Podname,Dash_Date,Ki_Code From Fhm_Dashboard_F));
    It gives * record * 2 suite
    ---------------------------------------
    XYZ JANUARY 20 12 2521 1 1
    XYZ JANUARY 20 12 2521 1 1

    It gives the Unique constraint violation error when inserting. Then, I changed in the above insertion code by adding a distinct clause. Once the query gives only a SINGLE record accordingly. However, this record is not be inserted into the table and give the same error.

    Now the question is how should I insert that record into the table with success?


    If the message is too long, however, I gave you the real structure of the object or procedure and error.

    Thank you in advance.

    When you have 5 columns in the game adding THAT SEPARATE is n ot solution that you can still get the same error once.

    Check the target table if the data exists before inserting... If this is not the case, check the structure of the table for a unique constraint created on other columns.

    select *from 
    where
    DASH_DATE=date '2012-01-20'
    and PODNAME='XYZ'
    and  KI_CODE=2521;
    
  • Need help with PK_REV_COL unique constraint violation

    We receive a SNPW. Violation of unique constraint of PK_REV_COL when you try to reverse a pipe delimited source file. There is no column twice in the source file name, but the same column names are used in several different input files. Does anyone have a solution to this problem?

    Hello

    Tryied to reproduce such behaviour on my side, I'm was not possible for me.

    The only one that occurs to me is, drop the current data store and recreate on...

    Cezar Santos
    [www.odiexperts.com]

  • How to display a validation on a modal dialog error based on a unique constraint?

    Hi all

    Apex 4.1

    See example on apex.oracle.com:

    Workspace: EDIAZJORGE

    User name: TEST

    Password: test123

    Application: 55036 - Validation of modal Page

    I have a page with two elements, to make and model, where the user will be able to enter the model, say, a car and use a pick to dolist. If make does not exist, the user can click on the [+] button that opens a modal dialog box to add a new do.

    Everything works fine except when I try to insert a double do, which triggers a unique constraint violation error:

    AJAX call back Server error ORA-00001: unique constraint (EDIAZJORGE. MAKE_UK1) violated to execute the PL/SQL Code

    I want to enter this event and inform the user about an error inside the modal dialog box, but I don't know what is the best way to achieve this. My guess is that I'll have to make an Ajax call to run an application process and capture the exception of DUP_VAL_ON_INDEX, but I'm not very familiar with the Ajax part.

    Any suggestions?

    Thank you

    Erick

    I'm sorry Erick, I was in error. You always get an alert but with a nicer message. The actions of builtin DA do not allow interaction with them, so no way to manage the return of ourselves.

    In light of this, I copied the page in enforcement 77635 1-2 and made some changes to it. Basically, I copied the code to Jorge and modified so that it uses $.ajax instead of apex.server.process. I much prefer it to htmldb_Get - you shouldn't really use it either. More $.ajax has the advantage of this apex.server.process is based on it. That should work well on 4.1.

    Sorry Jorge, won't steal the Thunder, I guess I was... bored? And decided to do some apex?

  • Retrieve values with a unique constraint

    All,

    It may be a stupid request and I think too speak of it. But, for some reason, I am unable to write a query to accomplish my task.

    I have the T table with some columns and the columns c1, c2, c3 are part of a composite unique constraint. Now I'm updating the value c3 from 52 to 51. But, when I do an update like:

    Update T set c3 = 51 where c3 = 52;

    I get a Unique constraint violation error.

    So, I need to know what are the values of repetition that might be causing this?

    Thanks in advance guys.

    34a22dde-3108-4F05-BE72-eb1043d28314 wrote:

    All,

    It may be a stupid request and I think too speak of it. But, for some reason, I am unable to write a query to accomplish my task.

    I have the T table with some columns and the columns c1, c2, c3 are part of a composite unique constraint. Now I'm updating the value c3 from 52 to 51. But, when I do an update like:

    Update T set c3 = 51 where c3 = 52;

    I get a Unique constraint violation error.

    So, I need to know what are the values of repetition that might be causing this?

    Thanks in advance guys.

    An inelegant way...

    select *
    from your_table tab1
    where (tab1.c1,tab1.c2) in
    (
    select tab2.c1, tab2.c2
    from your_table tab2
    where tab2.c3 = 52
    )
    where tab1.c3 = 51;
    
  • Unique constraint

    I created a Composite Unique constrait on a table on these 3 columns below

    IRC_CDE IRC_VAL IRC_DTE
    101/5555 2/2/2011
    101/4444 5/2/2011


    When I update IRC_VAL = WHERE IRC_VAL = 5555 4444 I get unique constraint violation, why?


    ALTER TABLE TESTTAB ADD A UNIQUE UK_IRC ON (IRC_CDE, IRC_VAL, IRC_DTE) CONSTRAINT


    Please correct me if I'm wrong. I want the update to be successful, because the irc_dte is different which can make the whole of the single file.

    Assuming that you did what you say, it's a scorned different unique constraint:

    SQL> create table testtab (irc_cde number, irc_val number, irc_dte date);
    
    Table created.
    
    SQL> alter table testtab add constraint uk_irc unique (irc_cde, irc_val, irc_dte);
    
    Table altered.
    
    SQL> insert into testtab values (101, 5555, to_date('2/2/2011', 'dd/mm/yyyy'));
    
    1 row created.
    
    SQL> insert into testtab values (101, 4444 , to_date('5/2/2011', 'dd/mm/yyyy'));
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> update testtab
      2  set irc_val = 5555
      3  where irc_val = 4444;
    
    1 row updated.
    

    John

  • Violation of unique constraint in JPA in multiple threads

    I get the following error message when you use APP to create a record in my database:
    # < 14 October 2009 10:13:14 AM CDT > < Info > < EJB > < lharding pc > < AdminServer > < ExecuteThread [ASSET]: '3' for queue: '(self-adjusting) weblogic.kernel.Default' > < < anonymous > > < BEA1 003262EA920A3057A4BD > <>< 1255533194632 > < BEA-010227 > < EJB Exception occurred during invocation of home or business: weblogic.ejb.container.internal.StatelessEJBHomeImpl@589d49 threw the exception : javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse - 1.1.0.r3338 - M8 persistence Services): org.eclipse.persistence.exceptions.DatabaseException
    Inner exception: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (BDSS. CONN_USER_DOMAIN_STATE_PK) violated

    Error code: 1
    Call: INSERT INTO USER_CONTEXT_STATES (ID, TEMP_FLG, STATE_INDEX, LAST_SYNC_TS, USER_CONTEXT_ID) VALUES (?,?,?,?,?)
    link = > [12701, 100003, T, null, null]
    Query: InsertObjectQuery (oracle.bdss.datamodel.UserContextStates@a4af11) >


    I do the work of an EJB on Weblogic Server and I used the JDev "Entities of Tables" Wizard to generate the code for each table.

    The code works fine most of the time. However when there are multiple threads using the EJB, I think that the allocation of the sequence becomes the same set IDS on different threads. The Session Cache for my persistence has the default "(soft low)".

    Everyone seems it before and you know a solution?

    The annotations that I use for the generation of PK for the ID column (where the unique constraint is violated) are:

    @Id
    @Column (nullable = false)
    @TableGenerator (name = "UserContextStatesSeq", table = "SÉQUENCE",
    scheme = "SDE", pkColumnName = "SEQ_NAME,"
    valueColumnName = "SEQ_COUNT"
    pkColumnValue = "BDSS. USER_CONTEXT_STATES «(, allocationSize = 50).
    @GeneratedValue (strategy = GenerationType.TABLE,
    generator = "UserContextStatesSeq")
    Private Long id;


    The code for the EJB is shown below (only the relevant parts):


    @Stateless (name = "RuntimeEJBBean")
    @Local
    public class RuntimeEJBBean
    implements RuntimeEJBLocal
    {
    @PersistenceContext (unitName = "persist")
    Private EntityManager em;

    public RuntimeEJBBean()
    {
    }

    Private Sub createNewContextState()
    throws the Exception
    {
    NewState UserContextStates = null;
    Try
    {
    newState = new UserContextStates();
    EM. Persist (newState);
    ...
    EM. Flush();
    catch (System.Exception e)
    {
    ...
    }
    }

    According to your annotation you use table named SEQUENCE to generate the id I suggest switching to sequence if you use Oracle.

    So instead of

    @TableGenerator (name = "UserContextStatesSeq", table = "SÉQUENCE",
    scheme = "SDE", pkColumnName = "SEQ_NAME,"
    valueColumnName = "SEQ_COUNT"
    pkColumnValue = "BDSS. USER_CONTEXT_STATES «(, allocationSize = 50).
    @GeneratedValue (strategy = GenerationType.TABLE,
    generator = "UserContextStatesSeq")

    use

    @SequenceGenerator (name = "UserContextStatesSeq", sequenceName = "USER_CONTEXT_STATES_ID", allocationSize = 1)
    @GeneratedValue (generator = "UserContextStatesSeq")

    and db to create sequences:

    CREATE THE SER_CONTEXT_STATES_ID MINVALUE SEQUENCE 1 WITH AN INCREMENT BY 1 1 COVER 50 ALL;

    allocationSize = 1 in @SequenceGenerator with CACHE 50 in phrase makes any id generation caching done at Oracle no ORM.

    If go to the sequence isn't an option, I would check if all error a bind ID with values such as XXXX01 or XXXX51. If Yes, then taking into account the fact that you have allocationSize = 50, it would mean that EclipseLink does not correctly synchronize award of the new id if that's the case then maybe change allocationSize 1 would help.

  • correct handling of foreign keys in unique constraints for operations ON DELETE SET NULL

    During my troubleshooting at a client site, I came across an interesting setup where I would like to ask your opinion.


    Consider two tables ADTB and TBLB.

    ADTB:

    INT COLA1

    COLA2 INT

    TBLB:

    COLB1 INT

    COLA2 is COLB1 as a foreign key ON DELETE SET NULL value.

    COLA1 and COLA2 are combined into a UNIQUE for the BATTERY constraint.

    I have two records of TBLB:

    (1)

    (2)

    and two DRUM recordings:

    (1, 1)

    (2, 2)

    so far, all the constraints are valid.

    During my research, I learned that I can not put COLA2 null in ADTB for two lines at the same time:

    TBLA UPDATE set COLA2 = NULL where COLA1 = 1;

    -> OK

    TBLA UPDATE set COLA2 = NULL where COLA1 = 2;

    -> VIOLATED UNIQUE CONSTRAINT

    Unfortunately, it's something my application needs, anyway. In order to get this resolved, but I try to understand, what would happen if I:

    REMOVE THE TBLB;

    ?

    It should set COLA2 in ADTB "Null" on the two lines, which is not allowed due to the UNIQUE CONSTRAINT.

    Can someone shed light on this issue? Thank you.


    Yours,

    Ronny

    Unfortunately, as you say, you can't not NULL values in such a unique constraint.  It would be the same as if you had a composite primary key and try to allow one of the columns will be null in several rows with the same value in the other column.  NULL is treated as an "unknown" value, it is possible that it could be the same value (it may or may not be, but Oracle does not know), so it must assume that it might be and that's why treat it as if there is the potential for a duplicate... so it's not unique.

    In short, do not allow null values in your unique constraints.

    The default is in the drawing, not in the way that Oracle is the treatment.  Fix the design if you do not have NULL values.

    In terms of relational database design, it seems that you are trying to transform the 1:M relations M:M relations, and which requires an intermediate table if you have M:1 and 1:M between 3 tables instead.

  • Unique constraint in the form of master detail error

    Hi all

    I need help, the following requirement.

    I have a master detail form developed on master-child table. the tables have the composite key.

    Old masters has a composite key on columns (A, B)

    Children table has a composite key on columns (A, B, C)

    Child block look something like below

    C       A          B

    10 AAA 1000

    20 1300 BBB

    30 CCC 1400

    40 DDD 1200

    Increments of column C with 10 for each record, and if a new record is insert in intermediaries the records it is incremented to 5.

    My requirement is when an end user attempts to insert record between 20 and 30 or 30 and 40 and clicks on save, the value of the C column must regenerate as shown below

    C       A          B

    10 AAA 1000

    20 1300 BBB

    XXX 30 900

    40 CCC 1400

    50 DDD 1200

    Button Save I wrote the following code

    Declare
      ln_Count NUMBER :=0;
      ln_c number :=0
      cursor c1 is
      select c
      from child
      where a=:child.a
      and b=:child.b
    Begin
      Go_Block('Child');
      First_Record;
      LOOP
      ln_Count:= ln_Count+10;
      :child.C := ln_Count;
      EXIT When :System.Last_Record = 'TRUE';
      Next_Record;
      END LOOP;
    
    
      For c_cur in c1 Loop
      update child
      set c:=ln_c+10
      where a=:child.a
      and b=:child.b 
      and c=c_cur.c
      end loop;
      Forms_DDL('commit');
         
         commit_prc('Commit');  -- We have our own program unit to call commit_form
    
    END;
    

    I tried above in a way because, before approving the changes to the table, I update the existing values in the table of the C column so I would not get unique constraint error.

    When you click the button Save, I get a constraint exception. Hope I made my requirement clear.

    Can someone give me a clue to this implementation.

    Thank you

    malandain

    With this update, all your C-columnvalue became negative. When you post the form thereafter, forms update agaion records one by one the new positive figures. Because the numbers of 'old' in the db are now negative, there will be no violation-UK.

  • Question of the unique constraint with finance charge

    Hi friends,

    As part of the implementation of 11 g BIAPPS-ODI during the execution of a finance charge is my load of CM plan failed with the error like below

    ODI-1519: series step 'Load start Plan (InternalID:1242500)' failed because step 'Refresh Global Variable (InternalID:1243500)' child is in error.

    ODI-1519: series step 'Refresh Global Variable (InternalID:1243500)' failed because the step child "Warehouse loading Phase (InternalID:2336500)" is a mistake.

    ODI-1519: series step "Warehouse loading Phase (InternalID:2336500)" failed because the child step "SIL 1 charge (InternalID:2337500)" is a mistake.

    ODI-1519: series step '1 SIL Load (InternalID:2337500)' failed, because the child step '2 group of dimensions of SIL (InternalID:2338500)' is a mistake.

    ODI-1519: series step '2 group of dimensions of SIL (InternalID:2338500)' failed because the child step "Parallels - independent DimGroup (InternalID:2346500)" is a mistake.

    ODI-1518: parallel step 'Parallels - independent DimGroup (InternalID:2346500)' failed. level of 1 child by mistake, which is more than the maximum number of allowed errors (0) defined for parallel step.  Has no measures of the child: 3 SIL Dims POSHIER_DIM (InternalID:2369500)

    ODI-1519: series step '3 SIL Dims POSHIER_DIM (InternalID:2369500)' failed because the child "POSHIER_DIM (InternalID:2372500)" is a mistake.

    ODI-1519: series step "POSHIER_DIM (InternalID:2372500)" failed because step "SIL_PositionDimensionHierarchy (InternalID:2377500)" child is in error.

    ODI-1217: SILOS_SIL_POSITIONDIMENSIONHIERARCHY Session (4278500) fails with return code 1.

    ODI-1226: SIL_PositionDimensionHierarchy.W_POSITION_DH step fails after 1 attempt.

    ODI-1240: Flow Run SIL_PositionDimensionHierarchy.W_POSITION_DH fails during an operation of integration. This flow of charge table target W_POSITION_DH.

    ODI-1228: SIL_PositionDimensionHierarchy.W_POSITION_DH (integration) of the task fails when connecting ORACLE target BIAPPS_DW.

    Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (DEV_DW. W_POSITION_DH_U2) violated

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)

    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)

    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)

    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)

    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1115)

    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1488)

    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3769)

    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3954)

    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1539)

    at oracle.odi.runtime.agent.execution.sql.SQLCommand.execute(SQLCommand.java:163)

    at oracle.odi.runtime.agent.execution.sql.SQLExecutor.execute(SQLExecutor.java:102)

    at oracle.odi.runtime.agent.execution.sql.SQLExecutor.execute(SQLExecutor.java:1)

    at oracle.odi.runtime.agent.execution.TaskExecutionHandler.handleTask(TaskExecutionHandler.java:50)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)

    at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)

    at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:577)

    at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:468)

    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)

    at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1895)

    to oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$ 2.doAction(StartScenRequestProcessor.java:580)

    at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)

    at oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor.doProcessStartScenTask(StartScenRequestProcessor.java:512)

    to oracle.odi.runtime.agent.processor.impl.StartScenRequestProcessor$ StartScenTask.doExecute (StartScenRequestProcessor.java:1068)

    at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:137)

    to oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$ 2.run(DefaultAgentTaskExecutor.java:82)

    at java.lang.Thread.run(Thread.java:662)

    How to solve the question above using ODI 11 g. I'm using Oracle ERP R12.1.3 as a source of data for this.

    Thanks in advance.

    Kind regards

    Saro

    What is the result of a query on table W_POSITION_DH or W_POSITION_D duplicate?

    Naeem

  • How to debug and find the exact constraint violation error

    {14:22:36:ErrorCode 122712 - 1 with ErrorMessage as ORA-00001: unique constraint (OPS$ CMS.)} {PK_TB_ML_EXER_UPLOAD) violated appeared [SSO16063259009], pk_xop_subsales.pr_process_exer [CMSCOST_USER]}

    {Pr_process_exer (PROCEDURE)
    p_voucher_num tb_xop_order_manager_t.voucher_num%TYPE,
    p_status_type tb_xop_order_manager_t.status_type%type,
    p_dest tb_xop_order_manager_t.dest%type,
    p_reference_key tb_xop_order_manager_t.reference_key%type,
    p_seq_num tb_xop_order_manager_t.seq_num%type,
    p_return_code tb_xop_order_manager_t.return_code%type,
    p_reason_desc tb_xop_order_manager_t.reason_desc%type,
    p_activity_qty tb_xop_order_manager_t.activity_qty%type,
    p_leaves_qty tb_xop_order_manager_t.leaves_qty%type,
    p_exec_price tb_xop_order_manager_t.exec_price%type,
    p_current_status tb_xop_order_manager_t.current_status%type,
    p_err_cur ON ref_cursor)
    IS
    CURSOR get_order_dtls (v_voucher_num tb_xop_order_manager_t.voucher_num%type)
    IS
    SELECT *.
    OF tb_xop_order_manager_t
    WHERE voucher_num = v_voucher_num;

    CURSOR get_mail_cd (v_opt_num OPTIONEE.opt_num%TYPE) IS
    SELECT mail_cd, sp_mail_cd
    OF XOP_OPTIONEE
    WHERE opt_num = v_opt_num;

    cursor get_opt_dtls (v_opt_num OPTIONEE.opt_num%TYPE) IS
    Select
    SUBSTR (Trim (O.name_first) |) ' ' || Trim (O.name_mi) | ' ' ||
    Trim (O.name_last), 1: 35) p_name,.
    SUBSTR (O.address1, 1, 35) opt_addr1,.
    SUBSTR (O.address2, 1, 35) opt_addr2,.
    SUBSTR (O.address3, 1, 35) opt_addr3,.
    SUBSTR (O.address4, 1, 35) opt_addr4,.
    SUBSTR (O.address5, 1, 35) opt_addr5,.
    SUBSTR (O.address6, 1, 35) opt_addr6,.
    SUBSTR (Trim (O.City) |) ' ' || Trim (O.State) | ' ' ||
    Trim (O.zip) | ' ' || Trim (O.Country), 1: 35) city_state_zip_country,.
    Trim town (O.City),
    Trim (O.State) State,
    Trim (O.zip) zip,
    Trim (O.Country) countries
    of the option o holder
    where o.opt_num = v_opt_num;
    -CQ: PCTUP00210726 - added wire instructions audit for info thread deleted.
    CURSOR (c_wire_instruction)
    in_wire_seq_no TB_XOP_WIRE_INSTRUCTIONS.wire_seq_no%TYPE) IS
    SELECT ml_brok_acct_num,
    SSN,
    plan_num,
    instr_type,
    aba_routing_num,
    swift_routing_code,
    bank_name,
    bank_acct_num,
    name_on_account,
    bank_addr_1,
    bank_addr_2,
    bank_addr_3,
    City,
    State,
    countries,
    zip,
    bank_ident_num,
    addtl_info
    OF TB_XOP_WIRE_INSTRUCTIONS
    WHERE wire_seq_no = in_wire_seq_no
    UNION
    SELECT ml_brok_acct_num,
    SSN,
    plan_num,
    instr_type,
    aba_routing_num,
    swift_routing_code,
    bank_name,
    bank_acct_num,
    name_on_account,
    bank_addr_1,
    bank_addr_2,
    bank_addr_3,
    City,
    State,
    countries,
    zip,
    bank_ident_num,
    addtl_info
    OF TB_XOP_WIRE_INSTRUCTIONS_AUDIT
    WHERE wire_seq_no = in_wire_seq_no;

    CURSOR c_order_qty IS
    SELECT order_qty
    OF tb_xop_order_manager
    WHERE voucher_num = p_voucher_num;
    v_order_qty tb_xop_order_manager.order_qty%TYPE;

    v_wire_instruction c_wire_instruction % ROWTYPE;
    v_order_dtls get_order_dtls % rowtype;
    v_opt_dtls get_opt_dtls % rowtype;
    v_settle_dt tb_ml_exer_upload.settle_dt%type;
    v_cusip_num corp.cusip_num%type;
    number of v_err_cd (12): = 0;
    v_err_msg varchar2 (4000);
    v_compy_nme tb_fc_Compy.compy_nme%type;
    v_ml_sec_num tb_fc_compy.ml_sec_num%type;
    v_mail_cd xop_optionee.mail_cd%type;
    v_count1 PLS_INTEGER: = 0;
    v_sum_activity_qty tb_xop_order_manager_t.activity_qty%TYPE;
    v_transact_no PLS_INTEGER;

    v_ivr_plan_num tb_fc_compy.ivr_plan_num%TYPE;

    wait_for_more EXCEPTION;
    exceeds_order_qty EXCEPTION;
    -Added CQ # PCTUP00481233
    number of v_sub_totfee;
    number of v_sub_fixedfee1;
    number of v_sub_fixedfee2;
    number of v_sub_fixedfee3;
    number of v_sub_secfee;
    number of v_sub_feenum;
    -Added CQ # PCTUP00481233
    v_fixedfee1 tb_xop_order_manager_t.fixed_fee1%TYPE; -SPIF # 43161 - variable to contain the fixed mensuels1

    BEGIN

    OPEN c_order_qty.
    SEEK c_order_qty INTO v_order_qty;
    CLOSE C_order_qty;
    DBMS.output.put_line ('completed1');
    IF v_order_qty <>p_activity_qty THEN
    DBMS.output.put_line ('completed2');
    IF p_status_type = "EO" AND v_order_qty < p_activity_qty THEN
    RAISE exceeds_order_qty;
    DBMS.output.put_line ('completed3');
    ELSIF p_status_type = 'EO' AND v_order_qty > p_activity_qty THEN
    -Partial enforcement
    INSERT INTO tb_xop_hold_multi_orders
    (voucher_num
    reference_key
    seq_num
    return_code
    reason_desc
    status_type
    activity_qty
    leaves_qty
    exec_price
    current_status
    waiting
    activ_dt)
    VALUES
    (p_voucher_num
    p_reference_key
    p_seq_num
    p_return_code
    p_reason_desc
    p_status_type
    p_activity_qty
    p_leaves_qty
    p_exec_price
    p_current_status
    , 'Y'
    SYSTIMESTAMP);
    DBMS.output.put_line ('completed4');
    ON THE OTHER
    IF p_status_type = "BE" THEN
    SELECT COUNT (1) IN v_count1
    OF tb_xop_hold_multi_orders
    WHERE voucher_num = p_voucher_num;
    DBMS.output.put_line ('completed5');
    IF v_count1 > 0 THEN
    INSERT INTO tb_xop_hold_multi_orders
    (voucher_num
    reference_key
    seq_num
    return_code
    reason_desc
    status_type
    activity_qty
    leaves_qty
    exec_price
    current_status
    waiting
    activ_dt)
    VALUES
    (p_voucher_num
    p_reference_key
    p_seq_num
    p_return_code
    p_reason_desc
    p_status_type
    , (-1) * p_activity_qty
    p_leaves_qty
    p_exec_price
    p_current_status
    , 'Y'
    SYSTIMESTAMP);
    UPDATE tb_xop_hold_multi_orders
    QUEUE = 'Y '.
    WHERE voucher_num = p_voucher_num;
    DBMS.output.put_line ('completed6');
    END IF;
    END IF;
    END IF;
    DBMS.output.put_line ('completed7');
    SELECT SUM (NVL(activity_qty,0)) IN the v_sum_activity_qty
    OF tb_xop_hold_multi_orders
    When pending = 'Y '.
    AND voucher_num = p_voucher_num;

    IF v_sum_activity_qty > 0 THEN
    IF v_sum_activity_qty <>v_order_qty THEN
    RAISE wait_for_more;
    ON THE OTHER
    -final order in the case of partial performance; complete the process
    UPDATE tb_xop_hold_multi_orders
    PUT on hold = ' don't
    process_dt = SYSDATE
    WHERE voucher_num = p_voucher_num;
    END IF;
    END IF;
    END IF;

    UPDATE tb_xop_order_manager_t
    SET activ_dt = TO_CHAR (SYSDATE, "YYYY-MM-DD HH24:MI:SS") | '. 000'
    dest = p_dest
    reference_key = p_reference_key,
    seq_num = p_seq_num
    return_code = p_return_code
    reason_desc = p_reason_desc,
    status_type = p_status_type
    , activity_qty = v_order_qty - p_activity_qty
    , leaves_qty = 0 - p_leaves_qty
    exec_price = p_exec_price,
    WHERE voucher_num = p_voucher_num;
    DBMS.output.put_line ('completed8');
    /*
    * SPIF # 43161 - update of the current situation to the PO moved to the end, even in works of the PROD.
    */

    IF (p_status_type = "EO") THEN

    BEGIN
    Select cusip_num
    in v_cusip_num
    Corp;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    SELECT cusip_num
    IN v_cusip_num
    OF tb_xop_espp_compy
    WHERE compy_acronym = replace (replace(user,'CMS'), '_USER');
    WHILE OTHERS THEN
    NULL;
    END;

    Select compy_nme, ml_sec_num, ivr_plan_num
    in v_compy_nme, v_ml_sec_num, v_ivr_plan_num
    of tb_fc_compy
    where compy_acronym = replace (replace(user,'CMS'), '_USER')
    UNION ALL
    Select compy_nme, je_ml_security_number, ivr_plan_num
    of tb_xop_espp_compy
    where compy_acronym = replace (replace(user,'CMS'), '_USER');
    -where ivr_plan_num = replace (substr(p_voucher_num,1,7), 'NORTH', 'XOP');

    Open get_order_dtls (p_voucher_num);
    SEEK get_order_dtls INTO v_order_dtls;

    v_settle_dt: = fn_xop_bankopen_bizday (TRUNC (v_order_dtls.exer_date + 1));
    v_settle_dt: = fn_xop_bankopen_bizday (TRUNC (v_settle_dt + 1));
    v_settle_dt: = fn_xop_bankopen_bizday (TRUNC (v_settle_dt + 1));

    FOR c_mail_cd IN get_mail_cd (v_order_dtls.opt_num)
    LOOP
    v_mail_cd: = c_mail_cd.mail_cd;
    -We need get sp_mail_cd and overlay with the sp_mail_cd in order_manager_t?
    END LOOP;

    OPEN get_opt_dtls (v_order_dtls.opt_num);
    SEEK get_opt_dtls INTO v_opt_dtls;
    CLOSE Get_opt_dtls;

    v_fixedfee1: = nvl (v_order_dtls.fixed_fee1, 0);
    /*
    * SPIF # 43161 - at least one transaction per day fees
    */
    v_fixedfee1: = pk_xop_enh_exerupdate.chrg_tranxfixed_fee (v_fixedfee1,
    v_order_dtls. Symbol,
    v_order_dtls.corp_acronym,
    v_order_dtls.opt_num);
    -Insert in tb_ml_exer_upload
    -Added CQ # PCTUP00481233
    Pk_Xop_Transactmodel.GET_FEE (v_order_dtls. GROUP_ID, v_order_dtls. SVC_ID, 'SQ', v_order_dtls.opts_exer,
    round (v_order_dtls.exec_price, 4), v_sub_totfee, v_sub_fixedfee2, v_sub_fixedfee1,.
    v_sub_fixedfee3, v_sub_secfee, v_sub_feenum, LPAD (v_order_dtls. SSN, 9, 0));
    v_order_dtls.sec_fee: = v_sub_secfee;
    UPDATE tb_xop_order_manager_t
    SET sec_fee = v_sub_secfee
    WHERE voucher_num = p_voucher_num;

    DBMS.output.put_line ('completed8');
    -End CQ # PCTUP00481233
    INSERT INTO tb_ml_exer_upload
    (exer_num, exer_seq,
    exer_dt, written_flag, backout_flag, output_line,
    je_flag, opts_exer,
    tot_tax, shrs_sold, comm_value, tot_fee,
    mkt_prc, exer_type, soc_sec,
    name_first, name_mi,
    name_last, check_addr_1, check_addr_2, check_addr_3,
    check_addr_4, check_addr_5, city, state, zip, country,.
    city_state_zip_country,
    p_name, opt_addr1, opt_addr2, opt_addr3, opt_addr4,
    opt_addr5, opt_addr6,
    settle_dt, send_to_citibank_flag,
    dom_chek_distr, foreign_currency_code,
    distribution_method, wire_seq_no,
    cusip_num, ml_retail_account, multi_curr_handling_fee,
    ml_sec_num, corp_name, upd_optionee_addr,
    outbound_flag,-there are N
    corp_symbol, taxwire_approve,-not make applicaplabe
    exersource,
    mail_cd, sp_mail_cd,
    backup_withholding,
    user_id,
    acct_num_othr)
    VALUES (v_order_dtls.exer_num, 0, v_order_dtls.exer_date, 'No', not, NULL,)
    -Would be PG 12/12/05 Changed to fill the resulting je_flag of dom_chek_distr',.
    -PG 16/12/05 I should not be generated for international controls... If 'Y' always
    'Y',-je_flag
    v_order_dtls.opts_exer, 0,-total tax will be 0.
    v_order_dtls.opts_exer, shrs_sold,
    v_order_dtls.comm_value,
    -SPIF # 43161 - replaced nvl (v_order_dtls.fixed_fee1, 0), with v_fixedfee1
    v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), - v_order_dtls.fees_amt,
    round (v_order_dtls.exec_price, 4), v_order_dtls.exer_type.
    LPAD (v_order_dtls. SSN, 9, '0'),-v_order_dtls.ssn, modified by Suresh on 08/02/07 for SPIF # 37210
    v_order_dtls.name_first, v_order_dtls.name_mi, v_order_dtls.name_last,
    v_order_dtls.check_addr_1, v_order_dtls.check_addr_2, v_order_dtls.check_addr_3,
    v_order_dtls.check_addr_4, v_order_dtls.check_addr_5, NVL (v_order_dtls. City, v_opt_dtls. (City),
    NVL (v_order_dtls. State, v_opt_dtls. State), NVL (v_order_dtls.zip, v_opt_dtls.zip).
    NVL (v_order_dtls. Country, v_opt_dtls. (Country),
    SUBSTR (nvl (v_order_dtls.city | v_order_dtls.)) State | v_order_dtls.zip | v_order_dtls. Country,
    v_opt_dtls.city_state_zip_country), 1: 34),-COLUMN LENGTH MAX IS 35
    v_opt_dtls.p_name, v_opt_dtls.opt_addr1, v_opt_dtls.opt_addr2, v_opt_dtls.opt_addr3,
    v_opt_dtls.opt_addr4, v_opt_dtls.opt_addr5, v_opt_dtls.opt_addr6,
    v_settle_dt, Decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
    v_order_dtls.dom_chek_distr, v_order_dtls.foreign_currency_code,
    v_order_dtls.distribution_method, v_order_dtls.wire_seq_no,
    v_cusip_num, v_order_dtls.acct_num, v_order_dtls.multi_curr_handling_fee,
    -nvl (fn_get_sec_num (replace (substr (p_voucher_num, 1, 7), 'NORTH', 'XOP'), v_order_dtls.symbol), v_ml_sec_num).
    NVL (fn_get_sec_num (v_ivr_plan_num, v_order_dtls.symbol), v_ml_sec_num).
    v_compy_nme, v_order_dtls.upd_optionee_addr,
    'N'-' is for outgoing flag.
    v_order_dtls. Symbol, 'd', --a ' for disabled taxwires
    The of ', - the of ' source being a subsequent sale.
    v_mail_cd, need to get mail_Cd?
    v_order_dtls.sp_mail_cd, v_order_dtls.backup_withholding,
    (User, v_order_dtls.acct_num_othr);

    IF (NVL(v_order_dtls.wire_seq_no,0) > 0) THEN

    OPEN c_wire_instruction (v_order_dtls.wire_seq_no);
    SEEK c_wire_instruction INTO v_wire_instruction;
    CLOSE C_wire_instruction;

    INSERT INTO TB_XOP_TRANSACT_WIRE_INSTR
    (user_id, exer_num, wire_seq_no, ml_brok_acct_num, ssn,
    plan_num, instr_type, aba_routing_num,
    swift_routing_code, bank_name, bank_acct_num,
    name_on_account, bank_addr_1, bank_addr_2, bank_addr_3,
    City, State, country, zip, bank_ident_num, addtl_info)
    VALUES
    (USER, v_order_dtls.exer_num, v_order_dtls.wire_seq_no,
    v_wire_instruction.ml_brok_acct_num, v_wire_instruction.ssn,
    v_wire_instruction.plan_num, v_wire_instruction.instr_type, v_wire_instruction.aba_routing_num,
    v_wire_instruction.swift_routing_code, v_wire_instruction.bank_name, v_wire_instruction.bank_acct_num,
    v_wire_instruction.name_on_account, v_wire_instruction.bank_addr_1, v_wire_instruction.bank_addr_2,
    v_wire_instruction.bank_addr_3, v_wire_instruction.city, v_wire_instruction.state, v_wire_instruction.country, v_wire_instruction.zip,
    (v_wire_instruction.bank_ident_num, v_wire_instruction.addtl_info);
    DBMS.output.put_line ('completed10');
    END IF;


    / * PG 05/01/06 call conversion check only for international controls and son * /.
    IF = v_order_dtls.dom_chek_distr ' n AND v_order_dtls.distribution_method IN ('W' ' d ","C"" ") THEN
    / * PG 20/12/05 to treat the subsequent sales with the wire or the distribution of currency * /.
    v_transact_no: = 88;
    pk_xop_citibank_forex.pr_cashconversion_ins_request (v_order_dtls.acct_num
    LPAD(v_order_dtls.ssn,9,'0') - v_order_dtls.ssn, modified by Suresh on 15/02/07 for SPIF # 37210
    v_order_dtls.distribution_method
    v_order_dtls.foreign_currency_code
    v_order_dtls.wire_seq_no
    , TOWER ((v_order_dtls.opts_exer * ronds (v_order_dtls.exec_price, 4)), 2)
    -ROUND(v_order_dtls.comm_value,2)
    -ROUND (nvl(v_order_dtls.fixed_fee1,0) + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), 2)
    -nvl(v_order_dtls.multi_curr_handling_fee,0)
    -product net nvl(v_order_dtls.backup_withholding,0)-
    , v_order_dtls.multi_curr_handling_fee - handling fee
    -Modified by Billon/Suresh on 03/02/2006-, v_order_dtls.login_name
    , CASE v_order_dtls.login_name WHEN ' CUSTOMER /' THEN v_order_dtls.login_name |' SSO' ELSE v_order_dtls.login_name |' / SSO' END
    , v_transact_no - transact_no as a placeholder for the 88 exer_type
    v_order_dtls.check_addr_1
    v_order_dtls.check_addr_2
    v_order_dtls.check_addr_3
    v_order_dtls.check_addr_4
    v_order_dtls.upd_optionee_addr
    v_order_dtls.city
    v_order_dtls.state
    v_order_dtls.zip
    v_order_dtls.country
    v_order_dtls.login_ipaddress
    v_order_dtls.fcnum
    v_order_dtls.opt_num
    v_settle_dt,
    p_exer_num = > v_order_dtls.exer_num
    );
    END IF;

    COMMIT;

    close get_order_dtls;

    END IF;

    /*
    * SPIF # 43161 - update of current status in IN. is moved to this part, even PROD.
    */
    UPDATE tb_xop_order_manager_t
    SET exec_dttime = decode (p_status_type, "EO", to_char (sysdate, 'DD-MON-YYYY HH24:mi:ss'), null)
    exer_date = trunc (sysdate)
    , cancel_dttime = decode (p_status_type, 'CX', to_char (sysdate, 'DD-MON-YYYY HH24:mi:ss'), 'UR', to_char (sysdate, "MON-DD-YYYY HH24:mi:ss), null)
    , current_status = "PO."
    sum_status = decode(p_status_type,'EO','X','C'),
    sum_stat_dttime = SYSDATE
    WHERE voucher_num = p_voucher_num;

    v_err_cd: = sqlcode;
    v_err_msg: = sqlerrm;

    Open the p_err_cur for v_err_cd select err_code, v_err_msg err_msg double;

    EXCEPTION
    DBMS.output.put_line ('completed200');
    / * PG 02/10 managed 'order of partial fill' exception * /.
    When wait_for_more then
    v_err_cd: = 0;
    v_err_msg: = ' ORA-0000: normal completion, successfully ';
    pr_xop_log_errors (' partially filled;) Pending-activity qty:' | TO_CHAR (v_sum_activity_qty) | "pk_xop_subsales.pr_process_exer");
    Open the p_err_cur for v_err_cd select err_code, v_err_msg err_msg double;
    When exceeds_order_qty then
    v_err_cd: = sqlcode;
    v_err_msg: = sqlerrm;
    Open the p_err_cur for v_err_cd select err_code, v_err_msg err_msg double;
    pr_xop_log_errors ("exceeded the amount of activity Order_qty - activity qty: ' | ') TO_CHAR (p_activity_qty) | "pk_xop_subsales.pr_process_exer");
    while others then
    v_err_cd: = sqlcode;
    v_err_msg: = sqlerrm;
    Open the p_err_cur for v_err_cd select err_code, v_err_msg err_msg double;
    pr_xop_log_errors (' error code ' | ') SQLCODE |' with ErrorMessage like ' | SQLERRM |' occurred '. the user | (' pk_xop_subsales.pr_process_exer');
    DBMS.output.put_line ('completed125');
    END pr_process_exer;
    }

    Hi friends, any1 help me how set ref-cursor in the declaration section and how to find the constraint error situation has occurred...

    956684 wrote:
    Hello.

    Friends please help... How to debug and find the exact position of the constraint violation... Thank you for the help...

    It's not a way to track it unless you have taken the exception raised.

    As a way to start debugging, you will need to monitor
    1. all DML against the Table on which you have constraint. Specifically, the DML that Act on the column you will be forced.
    2. use the exception handling, to record the error and the data that causes the constraint to fail.
    3. don't forget to monitor triggers, if used, could write data in the column you have forced on.

    Or

    Another track is to:

    select *
      from user_source
    where lower(text) like '%your_table_name%';
    order by type, name, line;
    

    Look at the lines, exclude that are in the statement or in the SELECT statements and targets of the DML.

    Looking at the unformatted code, that you have published, this statement looks like a culprit.

    INSERT INTO tb_ml_exer_upload
    (exer_num,exer_seq,
    exer_dt, written_flag, backout_flag, output_line,
    je_flag, opts_exer,
    tot_tax,shrs_sold,comm_value,tot_fee,
    mkt_prc,exer_type, soc_sec,
    name_first, name_mi,
    name_last,check_addr_1,check_addr_2,check_addr_3,
    check_addr_4,check_addr_5,city,state,zip,country,
    city_state_zip_country,
    p_name,opt_addr1,opt_addr2,opt_addr3,opt_addr4,
    opt_addr5,opt_addr6,
    settle_dt,send_to_citibank_flag,
    dom_chek_distr,foreign_currency_code,
    distribution_method,wire_seq_no,
    cusip_num, ml_retail_account,multi_curr_handling_fee,
    ml_sec_num, corp_name,upd_optionee_addr,
    outbound_flag, -- make it N
    corp_symbol,taxwire_approve, -- make it not applicaplabe
    exersource,
    mail_cd, sp_mail_cd,
    backup_withholding,
    user_id,
    acct_num_othr)
    VALUES(v_order_dtls.exer_num,0,v_order_dtls.exer_date,'N','N',NULL,
    -- PG 12/12/05 Changed to populate the je_flag based on dom_chek_distr 'D',
    -- PG 12/16/05 JE should not be generated for international checks.. So 'Y' always
    'Y', --je_flag
    v_order_dtls.opts_exer,0,--total tax will be 0.
    v_order_dtls.opts_exer, --shrs_sold,
    v_order_dtls.comm_value,
    --SPIF# 43161- replaced nvl(v_order_dtls.fixed_fee1, 0) with v_fixedfee1
    v_fixedfee1 + nvl(v_order_dtls.fixed_fee3,0) + nvl(v_order_dtls.sec_fee,0), --v_order_dtls.fees_amt,
    round(v_order_dtls.exec_price, 4),v_order_dtls.exer_type,
    LPAD(v_order_dtls.ssn,9,'0'), --v_order_dtls.ssn, Modified by Suresh on 02/08/07 for SPIF # 37210
    v_order_dtls.name_first,v_order_dtls.name_mi,v_order_dtls.name_last,
    v_order_dtls.check_addr_1,v_order_dtls.check_addr_2,v_order_dtls.check_addr_3,
    v_order_dtls.check_addr_4,v_order_dtls.check_addr_5,nvl(v_order_dtls.city,v_opt_dtls.city),
    nvl(v_order_dtls.state,v_opt_dtls.state),nvl(v_order_dtls.zip,v_opt_dtls.zip),
    nvl(v_order_dtls.country,v_opt_dtls.country),
    SUBSTR(nvl(v_order_dtls.city||v_order_dtls.state||v_order_dtls.zip||v_order_dtls.country,
    v_opt_dtls.city_state_zip_country),1,34), -- COLUMN LENGTH MAX IS 35
    v_opt_dtls.p_name,v_opt_dtls.opt_addr1,v_opt_dtls.opt_addr2,v_opt_dtls.opt_addr3,
    v_opt_dtls.opt_addr4,v_opt_dtls.opt_addr5,v_opt_dtls.opt_addr6,
    v_settle_dt,decode(v_order_dtls.distribution_method,'W','Y','D','Y','C','Y','D'),
    v_order_dtls.dom_chek_distr,v_order_dtls.foreign_currency_code,
    v_order_dtls.distribution_method,v_order_dtls.wire_seq_no,
    v_cusip_num,v_order_dtls.acct_num,v_order_dtls.multi_curr_handling_fee,
    -- nvl(fn_get_sec_num(replace(substr(p_voucher_num,1,7),'SSO','XOP'),v_order_dtls.symbol),v_ml_sec_num),
    nvl(fn_get_sec_num(v_ivr_plan_num, v_order_dtls.symbol),v_ml_sec_num),
    v_compy_nme,v_order_dtls.upd_optionee_addr,
    'N', --'N' is for outbound flag.
    v_order_dtls.symbol,'D', --'D' for taxwires disabled
    'S', -- 'S' for source being subsequent sale.
    v_mail_cd, --need to get mail_Cd??
    v_order_dtls.sp_mail_cd,v_order_dtls.backup_withholding,
    user,v_order_dtls.acct_num_othr);
    

    What is the structure of the tb_ml_exer_upload Table and the columns do you have constraints?
    Which column of the tb_ml_exer_upload table is your primary key (because the constraint name mentions pk_tb_ml_exer_upload)?

    Published by: Jen K on January 4, 2013 12:57

  • ORA-00001: unique constraint

    Hi all

    I use ODI 11.6 and Oracle 11 g.

    When executing my interface, I get the error inserting new line below rate

    ODI-1228: failed INT_TEMP_TO_MOSA (integration) task on the target of ORACLE EDGE_DEV_OWNER connection.
    Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (EDGE_DEV_OWNER. SP_MOS_PK) violated

    Any ideas how to solve this problem?

    Thank you
    Lony

    Check the separate option in the stream tab. Do not drop the I$ table. Run a group of query keycolumn in Toad cons I$ table and see whether or not duplicate records exist.
    Thank you.

  • Get the "unique constraint" error while mapping custom jsp

    Hello

    We are implementing iStore R12 (12.1.3).

    We have customized ibeCCtdMenu.jsp, renamed as xxibeCCtdMenu.jsp and moved to $OA_HTML / folder.

    Now in the template Manager, we create a new source (xxibeCCtdMenu.jsp) file to the title of "model of generation of Menu".

    However when we select site and language like 'All', it gives following error:
    Error in the logical record of physical mapping
    ORA-00001: unique constraint (IBE. IBE_DSP_LGL_PHYS_MAP_U2) violated in the package IBE_PhysicalMap_GRP procedure save_physicalmap
    All the sites and all the language already exists exists for 7670 deliverable

    How can we overcome them this error? Please notify.
    Thank you
    Vivek

    for a given Site and the language combination, can exist only one model.
    Default file provided by Oracle is set with combination like all Sites - all languages, and you will not be able to change it.

    Save your file with combination such as all Sites - English
    or , all languages.

    Then it will work fine.

    Hrishikesh

  • ORA-00001: unique constraint (GML. PO_ORDR_DTL_U1)

    Hello

    I have this error after I start the synchronization of joint purchase OPM. Help, please.


    Thank you very much

    Kind regards
    peopsquik
    $ oerr ora 00001
    00001, 00000, "unique constraint (%s.%s) violated"
    // *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.
    //         For Trusted Oracle configured in DBMS MAC mode, you may see
    //         this message if a duplicate entry exists at a different level.
    // *Action: Either remove the unique restriction or do not insert the key.
    $
    
  • composite unique constraint on the values of parent and child?

    Is it possible to have a composite unique constraint that contains the values of the child elements? The example below has the "child" elements are offline, but it's preferred, but optional, I know that you can have a unique constraint in the set of tables without using a reference table that contains the constraint and the two columns. How xdb manages this requirement?

    permit:
    <parent ID="1">
       <child><name>test1</name></child>
       <child><name>test2</name></child>
    </parent>
    <parent ID="2">
       <child><name>test1</name></child>
       <child><name>test2</name></child>
    </parent>
    not allowed:
    <parent ID="1">
       <child><name>test1</name></child>
       <child><name>test1</name></child>
    </parent>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
               xmlns:xdb="http://xmlns.oracle.com/xdb"
               xdb:storeVarrayAsTable="true"
               elementFormDefault="qualified">
        
        <xs:element name="parent" type="Parent_T"
            xdb:columnProps="CONSTRAINT parent_pkey PRIMARY KEY (XMLDATA.ID)"
            xdb:defaultTable="PARENT"/>
    
        <xs:complexType name="Parent_T" xdb:SQLType="PARENT_T" xdb:maintainDOM="false">
            <xs:sequence>
                <xs:element name="child" type="Child_T" minOccurs="1" maxOccurs="unbounded" xdb:SQLName="CHILD"
                          xdb:SQLInline="false" xdb:defaultTable="CHILD" "/>
            </xs:sequence>
            <xs:attribute name="ID" xdb:SQLName="ID" use="required" />
        </xs:complexType>
        
        <xs:complexType name="Child_T" xdb:SQLType="CHILD_T">
           <xs:sequence>
             <xs:element name="name" type="xs:string" xdb:SQLName="NAME"/>
           </xs:sequence>
         </xs:complexType>     
    </xs:schema>
    xdb:columnProps = "CONSTRAINT parent_pkey PRIMARY KEY (XMLDATA.ID), * UNIQUE (XMLDATA.» "Child.Name) *" triggers the non-existent attribute


    A possible solution would be to copy the value of the primary key parent of the child element, then I could create a composite unique constraint using only the values of the child. However, I have this same requirement elsewhere in my lowest nested schema, and it can become messy / bad design with cascading of all primary keys on the schema. For example, I have a recursive element in which two attributes must be unique only within the parent company:
    <parent id="1">
       <child a="1" b="1">
          <child a="1" b="2">
             <child a="1" b="1" /> *not allowed
          </child>
       </child>
       <child a="1" b="2" /> *not allowed
    </parent>
    Possible solution:
    <child a="1" b="2" parent_id="1" />
    <xs:complexType name="Child_T>
       <xs:sequence>
          <xs:element name="child" xsd:SQLInline="false" xsd:columnProps="UNIQUE(XMLDATA.a,XMLDATA.b,XMLDATA.parent_id)" minOccurs="0" maxOccurs="unbounded" type="Child_T">
       </xs:sequence>
       </xs:element
    </xs:complexType>
    Is there a better design?

    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi 
    PL/SQL Release 10.2.0.4.0 - Production                           
    CORE     10.2.0.4.0     Production                                       
    TNS for Linux: Version 10.2.0.4.0 - Production                   
    NLSRTL Version 10.2.0.4.0 - Production 

    You can do something like this:

    SQL> DECLARE
      2
      3    xsd_doc xmltype := xmltype('
      4  
      5    
      6      
      7        
      8          
      9        
     10      
     11    
     12    
     13      
     14        
     15          
     16        
     17      
     18    
     19    
     20      
     21        
     22          
     23        
     24        
     25      
     26    
     27    
     28      
     29        
     30          
     31        
     32      
     33    
     34  ');
     35
     36  BEGIN
     37
     38    dbms_xmlschema.registerSchema(
     39      schemaURL => 'test_parent.xsd',
     40      schemaDoc => xsd_doc,
     41      local => true,
     42      genTypes => true,
     43      genbean => false,
     44      genTables => false,
     45      enableHierarchy => dbms_xmlschema.ENABLE_HIERARCHY_NONE
     46    );
     47
     48  END;
     49  /
    
    PL/SQL procedure successfully completed
    
    SQL> CREATE TABLE my_xml_table OF XMLTYPE
      2  XMLTYPE STORE AS OBJECT RELATIONAL
      3  XMLSCHEMA "test_parent.xsd"
      4  ELEMENT "root"
      5  VARRAY xmldata."parent" STORE AS TABLE my_parent_tab
      6  (
      7    VARRAY "child" STORE AS TABLE my_child_tab
      8  )
      9  ;
    
    Table created
    
    SQL> ALTER TABLE my_parent_tab ADD CONSTRAINT parent_uk UNIQUE (nested_table_id, "ID");
    
    Table altered
    
    SQL> ALTER TABLE my_child_tab ADD CONSTRAINT child_uk UNIQUE (nested_table_id, "name");
    
    Table altered
     
    

    Then:

    SQL> insert into my_xml_table values (
      2  xmltype('
      3     test1
      4     test2
      5  
      6  
      7     test1
      8     test2
      9  ')
     10  );
    insert into my_xml_table values (
    *
    ERREUR à la ligne 1 :
    ORA-00001: violation de contrainte unique (DEV.PARENT_UK)
    
    SQL> insert into my_xml_table values (
      2  xmltype('
      3     test1
      4     test1
      5  
      6  
      7     test1
      8     test2
      9  ')
     10  );
    insert into my_xml_table values (
    *
    ERREUR à la ligne 1 :
    ORA-00001: violation de contrainte unique (DEV.CHILD_UK)
    
    SQL> insert into my_xml_table values (
      2  xmltype('
      3     test1
      4     test2
      5  
      6  
      7     test1
      8     test2
      9  ')
     10  );
    
    1 ligne créée.
    

    http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14259/xdb06stt.htm#sthref987

Maybe you are looking for