Unique constraint weird error

version: 11.1.0.7

I try an insert as below, with the following error
INSERT INTO <dest_schema>.<dest_table_name> (col1,col2,col3) 
SELECT col1,col2,col3 FROM <src_schema>.<src_table_name>@dblink_name;

ORA-00001: unique constraint (<dest_schema>.<constraint_name>) violated
The weird part is that I am unable to find the constraint in the views of data as ALL_CONSTRAINTS or ALL_CONS_COLUMNS or DBA_CONSTRAINTS or DBA_CONS_COLUMNS (under any owner also) dictionary.

I checked the same on the source database to find nothing.

I am currently out of thoughts on how to get hurt this problem. Please suggest.

There is a unique index with constraint name? Because unique constraints are enforced by creating a unique index if no suitable index does already exist, a single index without a unique constraint can sometimes cause some confusion in the error message.

Justin

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;
    
  • 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 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.

  • 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

  • Unique constraint during the race error collecting statistics of schema

    Hello
    I get this error periodically during execution to collect statistics of schema
    In GATHER_SCHEMA_STATS , schema_name= ALL percent= 40 degree = 8 internal_flag= NOBACKUP
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    Unable to correctly update the history table - fnd_stats_hist.
    -1 - ORA-00001: unique constraint (APPLSYS.FND_STATS_HIST_U1) violated
    I went thru notes 470556.1 , but I have not applied patch 5876047 according to the note.

    I can truncate table FND_STATS_HIST? Is it safe to truncate this table?

    Thank you
    ARS

    Published by: user7640966 on January 2, 2011 23:58

    Hi Ars;

    If I suggest his prod, make sure you have a valid backup of your system and also raise sr and confirm with oracle support. If you are on the clone or test, such as mention of doc first to backup table FND_STATS_HIST (make sure that you have a valid backup), truncate and repeat the test question

    Respect of
    HELIOS

  • Unexpected error ORA-00001: unique constraint (LOTTO_BI. DAILY_SALES_IDX01)

    Hello experts

    Can someone help me understand this error please


    Unexpected error ORA-00001: unique constraint (LOTTO_BI. DAILY_SALES_IDX01) violated

    Thank you

    Without knowing your data structure or data your procedure is just a bunch without meaning of the code for me;).

    But like you said you do this
    text_file-online temporary_table-online primary_table

    And like you had an error during data pumping in primary_table insert_table I suspect he got some data inserted insert_table the primary_table without remove it from the insert_table (I don't see a deletion of him anywhere).

    You can find records in doubles with something like this:
    http://asktom.Oracle.com/pls/Apex/f?p=100:11:0:P11_QUESTION_ID:1224636375004
    (replace remove it with a select statement)

    Your data source would be a union with your insert_table and primary_table.

    And just out of curiosity:
    There are these neat external tables made for this purpose: http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#sthref778

    If you could just:
    -create an external table on the text file you want to load (a schedule)
    -load your data into the table with

    insert into your_table [...] select [...] from ext_table;
    

    This will save you
    -your temporary table
    -a lot of time that you will not need to treat your text file line by line
    -a lot of PL/SQL code

    see you soon

  • Capture the unique constraint by Apex error?

    Hello guys!
    My application is almost over and I'm currently focusing on the error handling! So far, I was able to solve many problems using the Apexlib.
    However, I would like to get rid of these annoying Ora - error messages are not comprehensible to the end user. Is it possible to intercept errors of unique constraint by their Summit before submitting data? If so, could you please be so kind and give me a good or better yet a full example how manage these errors with PL/SQL, or Javascript.
    I'm just a beginner so please be a little more detailed, so I can understand your code. :-)

    I know your opinion on this question and hope you can help me!

    Thank you very much!

    Kind regards

    Sebastian

    Hello Sebastian,.

    There is a mistake in your second loop. Must be something Island:

    
    amountx :=0; -- reset the counter
    FOR c IN (SELECT count(*) counter FROM tbl_schichtigkeit -- No INTO in this part
         WHERE int_schichtigkeit = APEX_APPLICATION.G_F03(j)
             AND lng_inv_pt_id = :P52_PTIDS
          )
    LOOP
         amountx := c.counter; --
         If amountx > 0 then
         RETURN 'Error on row ' || j;
        ELSE RETURN NULL;
        END IF;
    END LOOP;
    

    I'm not sure if you need this loop. I think you can also do it with only:

    SELECT count(*) counter
    INTO amountx
    FROM tbl_schichtigkeit
    WHERE int_schichtigkeit = APEX_APPLICATION.G_F03(j)
       AND lng_inv_pt_id = :P52_PTIDS;
    If amountx > 0 then
    RETURN 'Error on row ' || j;
    ELSE RETURN NULL;
    END IF;
    

    Be aware that it only reports the first error! If there are more records with an error, you won't get one, because you RETURN right after the first found.

    Greetings,
    Roel

    http://roelhartman.blogspot.com/

  • Index naming standards does not and unique constraints

    I found yet another question of naming standards

    I have tried to create a unique constraint as a normal index via the unique constraints and indexes in Properties of Table with the assumption that it will use the design properties of models.  This isn't.

    Naming Standard Template.jpg

    As noted in the image of the model above, my Unique constraint model is {table} _ {columns} lancement_remarques

    and my model of Index idx _ {columns} {table}.  Yet, when I try to create the Unique constraint, it creates the naming convention in names like CUSTOMER_ADDRESS__UK (2 lines of underscore?) as shown below.

    Table_Props_Unique_Constraint.jpg

    My assumption is that he needed a column, so I added the column and also applied the rules naming - nothing.

    Table_Props_Unique_Constraint_w_Column.jpg

    Is my wrong assumption on these constraints being appointed through the models?  If this is not the case, what naming rules is in this context?

    The same behavior is evident when you try to create index.

    I get not all comments on my posts.  Are these bugs or just user error?

    Hello

    Thank you to report the problem, I logged a bug. You can get 'Rules of naming' works properly if you press the button 'Apply' before that.

    I get not all comments on my posts.

    I don't think that anyone (or any job) has been ignored on this forum. Depending on the complexity of the problem and our current commitment (other urgent tasks, holidays, time zone), you can get answer almost immediately or after a certain time.

    It is useful for us, if you mark your messages as replied if you get the right answer.

    Philippe

  • 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

  • Adding a UNIQUE CONSTRAINT to an existing column with duplicate values

    Oracle Forums Hello, I have a table that contains rows 11 901. I tried to define the UNIQUE constraint on the column of xcode, but encountered an error: the column already contain duplicates! I rescued following SQL 'SELECT COUNT (*) FROM States;' the result is 11 901 and 'SELECT COUNT (DISTINCT (xcode)) FROM States;' the result is 11 680. So to enforce this unique key I have to remove the 221 lines. Please how can I do this?

    REMOVE duplicates...

    For example, as

    delete from your_table t
    where rowid <
       (
       select max(rowid)
       from your_table r
       where t.unique_column = r.unique_column);
    

    Thne create the constraint.

  • 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.

  • 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.
    $
    

Maybe you are looking for