Delete parent without entries in child table

Hi
I have two table with millions of records. The child table has referential integrity with the parent and the foreign-key is indexed.
I must delete all the parent rows with no corresponding entries in child table.
What is the faster way?

You might test using DML error logging so you don't have to 'find' the rows. Just delete them all and let Oracle put the error rows in the log table.
Try this using the sample DDL you provided above:
exec DBMS_ERRLOG.CREATE_ERROR_LOG ('CHILD')
ALTER TABLE ERR$_CHILD DROP COLUMN C_ID;
ALTER TABLE ERR$_CHILD DROP COLUMN C_P_ID;
delete from parent
LOG ERRORS INTO err$_child ('DELETE') REJECT LIMIT UNLIMITED;
The drawback is the space taken for the required columns in the log table for child row data that had a parent. The two ALTER statements above DROP the actual 'child' columns from the log table after it is created to save space but the required fields will still be populated.
The DELETE will be successful and will remove 'parent' rows with NO children.

Similar Messages

  • Insert delete or update entry in Custom table from KONV entry changed

    Hi All,
    I have custom table ZKONV with only few required columns and should have same number of records as KONV has at any point in time.
    KONV is a cluster table so its not readable from ORACLE level. So ZKONV is created. But I dont know how to keep these both tables in sync.
    I need to perform insert delete or update entry in Custom table if insert delete or update happens on cluster table KONV from any transactions.
    As KONV is a cluster table and does not have changed time stamp I am not able to know the number of records changed in perticulat time period.
    Thanks,

    Thanks for reply,
    There is a Outside SAP system which needs to read KONV data to feed into their system, but as KONV is cluster table they are not able to read it from ORACLE level.
    To solve this we are thinking to create a transparent Z-table and will fill it with KONV and catch Update, delete or Insert statement and do same on ZKONv.
    Is this possible some how? by some database event or something....

  • ADF,how to delete parent record and related child record without manual cod

    Hi All,
    I'm using 11g adf.
    I have one parent table PAR and two child table CHD1 , CHD2 respectively.
    I'm inserting values in three tables , making a form having add , delete and edit buttons.
    Issue when i want to delete a record from PAR table , it gives child table record exists . i have did manual coding to delete the child records with related to the selected parent table PAR.
    Is there any process in ADF to delete the child records with respective selected parent record with out manual coding.
    thanks in advance.

    http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/bcentities.htm#BABHFJFJ
    John

  • Delete all the entries in target table when message mapping?

    Hello Gurus,
    I have a requirement in the project. When I do message mapping, I need to delete all the entries in the target table and then insert the new rows. From searching the old posts, I know it is possible without BPM. Can anyone please help me out? I really appreciated it.
    Regards,
    Bai

    Hi Bai,
    Check the below links:
    http://help.sap.com/saphelp_nwpi711/helpdata/en/43/9519abb1146353e10000000a11466f/frameset.htm
    Defining a DELETE Statement 
    http://help.sap.com/saphelp_nwpi711/helpdata/en/44/7b6e85fde93673e10000000a114a6b/content.htm
    Thanks,

  • Duplicate Entry in Child Tables in AD Process Form on triggering multipleAP

    hi all,
    I have a scenarion in which I have to provision AD Group Membership, for addition of each role to User.
    so I have created 5 Access policies, 5 roles and mapped AD Group in each access policy.
    The roles are comming from trusted source seperated by a string tokenizer.
    I have java code which will trigger and assign the role memberhsip to user, one after the other. iterating with the string tokenizer(;)
    The problem I see is, I see multiple entries of AD Groups in the process form for each group.
    If I add 3 roles to the user, I am seeing 6 entries in the AD Process form. Duplicate row for each and every row. sometimes i see 3 entries for each row. and 1 entry for each row.
    If I add the role memberships manually, by searching, then I dont see any problem with the AD child form.
    and also If I add a single group membership I dont see any problem with the AD Child form.
    I suspect that the event handler tcEvaluateAccessPolicies which is there in the post update is trying to add the duplicate entries as still the AD Group membership which is triggered for the first time is not yet finished by evaluating the access policies again.
    any such experiences? thoughts? work arounds?
    my oim environment is OIM11.1.1.3.0 on weblogic server.

    I have always coded these checks into my custom code whenever i maninuplate child table data. When adding, i always check the existing and when deleting, i always check if the value exists that i'm removing. I would suggest you write a piece of code that does the same and keep it in your library of re-usable code.
    You could try going to the database and making the field for the name a unique field. I don't know what the outcome will be from doing so.
    -Kevin

  • Set unique entries in child tables?

    Hi,
    OIM 11g here. I have built a process form with its attached child table for a custom connector i have made. Now i noticed that the child table accepts duplicate entries. How can i make the child table entries unique, as they are in the AD user groups child table?
    thx in advance.

    I have always coded these checks into my custom code whenever i maninuplate child table data. When adding, i always check the existing and when deleting, i always check if the value exists that i'm removing. I would suggest you write a piece of code that does the same and keep it in your library of re-usable code.
    You could try going to the database and making the field for the name a unique field. I don't know what the outcome will be from doing so.
    -Kevin

  • How to delete the NULL entries in nest table

    Hi,
    After I used a loop and open/fetch cursor populated the object table
    I found there are random NULL entries in my object table (nest table)
    The data look like this
    NULL NULL           NULL
    NULL NULL           NULL
    123     03-MAY-04     ACTIVE
    NULL NULL           NULL
    NULL NULL           NULL
    234     21-MAY-04     ACTIVE
    NULL NULL           NULL
    345     11-MAY-04     ACTIVE
    NULL NULL           NULL
    How can I get rid of those NULL entries in my nest table? So it can become
    123     03-MAY-04     ACTIVE
    234     21-MAY-04     ACTIVE
    345     11-MAY-04     ACTIVE
    Additional info:
    create type myType as object
    (id NUMBER (10,0),
    eff_date date,
    status VARCHAR2(17)
    create type myNestTab as table of myType;
    I have tried Delete procedure in following two ways.
    Version 1:
    FOR i IN l_my_nest_tab.FIRST..l_my_nest_tab.LAST
    LOOP
    IF l_my_nest_tab(i).id IS NULL THEN
    l_curr_event_tb.DELETE(i);
                   END IF;                         
    END LOOP;
    Version 2:
    FOR i IN l_my_nest_tab.FIRST..l_my_nest_tab.LAST
    LOOP
    IF l_my_nest_tab(i) IS NULL THEN
    l_curr_event_tb.DELETE(i);
                   END IF;                         
    END LOOP;
    Both of them give me the error “no data found.” And only left me the first NOT NULL entry in the table.
    123     03-MAY-04     ACTIVE
    Thanks in avdance.

    Hi Vishnu,
    u can write a report program for this and in that use the event  :
    AT NEW <field-name> ( use primary key)
    your statements
    ENDAT
    for eg.
    loop at itab ( herfe itab must be of type of table for which u want to track new entries)
    at new matnr
    write:/ new record
    endat
    endloop.
    schedule this report in background to run in every 5 or 10 mins as per your requirement and hence changes can be tracked.
    regards
    Vinod

  • OIM: Getting an error when trying to add entry into child table

    Hi OIM Guru,
    I have a process form and child table I am using for provisionng. Everthing was working so far, but suddenly I am getting the following error whenever I try to add an entry into the child table. I
    Can someone tell me what might be going on here?
    Thanks a lot
    tcFormInstanceOperationsBean/addProcessFormChildData encounter some problems: maoErrors:Cannot schedule a task for child table change, schedule item save failed
    tcFormInstanceOperationsBean/addProcessFormChildData encounter some problems: Cannot schedule a task for child table change, schedule item save failed
    Thor.API.Exceptions.tcAPIException: Cannot schedule a task for child table change, schedule item save failed
    at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.addProcessFormChildData(Unknown Source)
    at com.thortech.xl.ejb.beansimpl.tcFormInstanceOperationsBean.addProcessFormChildData(Unknown Source)
    at com.thortech.xl.ejb.beans.tcFormInstanceOperationsSession.addProcessFormChildData(Unknown Source)
    at com.thortech.xl.ejb.beans.tcFormInstanceOperations_2j82mm_EOImpl.addProcessFormChildData(tcFormInstanceOperations_2j82mm_EOImpl.java:1298)
    at com.thortech.xl.ejb.beans.tcFormInstanceOperations_2j82mm_EOImpl_CBV.addProcessFormChildData(Unknown Source)
    at Thor.API.Operations.tcFormInstanceOperationsClient.addProcessFormChildData(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at Thor.API.Base.SecurityInvocationHandler$1.run(Unknown Source)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.security.Security.runAs(Security.java:41)
    at Thor.API.Security.LoginHandler.weblogicLoginSession.runAs(Unknown Source)

    Never mind. I got it figured out.
    What happened is I changed my adapter that is being called and because of this change the task mappings in Process Definition got wiped out and I had to remap all the attributes again. It now works.
    Whew!! It took me a while to figure this out.
    Thanks

  • Delete the parent records and child table records at a time

    hi all;
    I am facing the pbm like to delete the all records in child table and corresponding records in parent table at a time. so I want to delete the all the records in child table and corresponding parent records in parent table by using single SQL query. plz help me
    Thanks in advance

    You want to use one single SQL statement to delete the child records in a table and the corresponding master records in the master table??
    That's not quite possible with a single SQL, of course unless you are talking about Oracle Forms, where you have a relation and set the delete behavior to Cascading, like said in the above posts.
    Tony

  • Insert data Flatfile table to Parent and child tables

    Hi All,
        I have Flatfile table which is we getting from daily txt files and i want to populate flatfile data to parent as well as child tables. parent table has primary key as ID. This ID is foreign key of child tables. 
    Here i have mentioned our process.
    1. Flatfile duplicates has to remove with condition of daily date.
    2. Before Insert parent table have to check duplicate(we have Unique key of 4 columns in parent) if duplicate is there we have to delete duplicate then Insert into parent table unique records(Primary key is ID).(here why we are delete duplicate record meaning
    we getting daily files so if any records updated in future that record should be insert to parent and child table so only we delete old records and insert new records).
    3.After insert parent we have to populate child tables from Flatfile table as well as we have to insert parent table primary key as foreign key of child tables.
    4. if any truncation error occurs that errors should go to error log table.
    Right now we are using cursor for this concept and cursor has performance issue. so we are trying to optimize other way to populate parent and child table to increase performance to populate.
    Please help us to which way to do this process increase of performance .
    Please  can any one reply.

    Hi RajVasu,
    Since this issue is related to Transact-SQL, I will move this thread to Transact-SQL forum. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated. 
    Thank you for your understanding and support.
    Regards,
    Katherine Xiong
    Katherine Xiong
    TechNet Community Support

  • Unable to delete last entry in Custom table

    Hi,
    I have one custom table which allows only some specific entries to be maintained in the table.I have used a standard table as a check table for dis.I found no issue while maintaining entries in the table.But when i try to delete the last entry in the table i get the message "No entry exist".Long textNo entries were found when importing data from the database.
    Kindly help.

    Hi,
    If it is not possible through table maintainence then write a small Z program to delete the entries in devlopment system and then if then if you want you can transfer those to other systems.
    delete from ZTABLE where {give your condition for the last record}.
    Regards,
    Sandipan

  • Sql server partition parent table and reference not partition child table

     
    Hi,
    I have two tables in SQL Server 2008 R2, Parent and Child Table.  
    Parent has date time, and it is partitioned monthly,  there is a Child table which just refer the Parent table using Foreign key relation.   
    is there any problem the non-partitioned child table referring to a partitioned parent table?
    Thanks,
    Areef

    The tables will need to be offline for the operation. "Offline" here, means that you wrap the entire operation in a transaction. Ideally, this transaction would:
    1) Drop the foreign key.
    2) Use ALTER TABLE SWITCH to drop the old data.
    3) Use ALTER PARTITION FUNCTION to drop the old empty partition.
    4) Use ALTER PARTITION FUNCTION to add a new empty partition.
    5) Reapply the foreign keys WITH CHECK.
    All but the last operation are metadata-only operation (provided that you do them right). To perform the last operation, SQL Server must scan the child tbale and verify that all keys are present in the parent table. This can take some time for larger tables.
    During the transaction, SQL Server holds Sch-M locks on the table, which means that are entirely inaccessible, even for queries running with NOLOCK.
    You avoid this the scan by applying the fkey constraint WITH NOCHECK, but this can have impact on query plans, as SQL Server will not consider the constraint as trusted.
    An alternative which should not be entirely dismissed is to use partitioned
    views instead. With partitioned views, the foreign keys are not an issue, because each partition is a pair of tables, with its own local fkey.
    As for the second question: it appears to be completely pointless to partition the parent, but not the child table. Or does the child table only have rows for a smaller set of the rows in the parent?
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Delete entry from Database table

    Hi,
    I configured one PCR scenerio in SPRO node -> business Packakes/ funtional packages-> Manager self service-> Personal Change request -> Group Change request scenerio.
    later I deleted that entry in backend, but still the same entry exist in db table "TWPC_PCR_Groups" .
    How can we delete that entry?
    thanks

    Hi,
    If you just want to delete a single entry from database table then you have to it in debug mode .
    go to se11->Give table name->Press F7( ie: display table entries)-> Goto the table contents (CTRLSHIFTF10)->Select the entry you want to delete->Give /H in the command bar ->enter into debug mode-> Give code as DELE -> save it. and press enter. Your entry will be deleted from database.
    Hope this helps..

  • How to find delete entries in custom table

    Hi,
    We have a custom table with table maintenance in Production. Some one deleted all the entries from the table. Can you please let me know how to retreive the old entries from the table and how to check who deleted the entries.
    Thanks
    Rama

    hi rama,
    Please refer to the below given link,
    [http://help.sap.com/saphelp_nw70/helpdata/en/43/0510abcda521abe10000000a1553f6/content.htm]
    I think it will sove ur problem,
    Reward points if usefull,
    Thanks,
    Kalyan.

  • Delete entries over 1 month old in parent  and child tables

    Hi guys,
    Im new to oracle (2days old) and im struggling to find out how to delete all entries over 1 month old in a database but also delete entries from the child table. I have read about delete cascading etc but im really strugging at the moment. Any tip or ideas? thank you

    You just need to delete data in parent table using the right WHERE clause that requires some timestamp column that stores data age. If the foreign key constraint is created with ON DELETE CASCADE child rows are automatically deleted.
    Assuming P is the parent table and C the child table and the timestamp column is stored in the parent table here is an example.
    SQL> create table p(px int primary key, d date);
    Table created.
    SQL> create table  c(cx int, cy int references p on delete cascade);
    Table created.
    SQL>
    SQL> insert into p values(1, '01/01/2011');
    1 row created.
    SQL> insert into p values(2, '15/01/2011');
    1 row created.
    SQL> insert into p values(3, '31/01/2011');
    1 row created.
    SQL> insert into c values(10,1);
    1 row created.
    SQL> insert into c values(20,2);
    1 row created.
    SQL> insert into c values(30,3);
    1 row created.
    SQL> commit;
    Commit complete.
    SQL>
    SQL> delete p where months_between(sysdate, d) >= 1;
    2 rows deleted.
    SQL>
    SQL> select * from p;
            PX D
             3 31-01-2011
    SQL> select * from c;
            CX         CY
            30          3
    SQL>Edited by: P. Forstmann on 15 févr. 2011 13:45

Maybe you are looking for

  • Using multiple iCloud accounts on iPhone

    Can I have multiple icloud accounts for my iPhone? Iwant my wife to be able to sync with our network at home without changing her Apple ID

  • Crystal 6.0 : How to hide the Page footer and Page Header of the Main Report on the Sub report.

    Post Author: pranay CA Forum: Crystal Reports Hi , I have a Main report and a Sub report .  When a subreport spans across multiple pages , the page header and page footer of the main report gets displayed along with it . I want to hide the Page Foote

  • Different links for different forms of the same list.

    Greetings, I have a custom list created with several columns one of which is the Title column. I have created three different views for this list. Using SharePoint Designer 2013 I have created three separate forms, one is a custom new for, a custom e

  • Insert XML Data Into An Existing PDF Form

    I am working on an application, written with XHTML and JavaScript, and running on AIR, so it is a desktop application. Users enter data into an XHTML form and upon submission I create an XML file of the data using JavaScript. At any later time users

  • Workaround: BEA Workshop studio installation with JRockit

    If JRockit is your primary JVM (i.e., JRockit is the only JVM installed OR JRockit appears before the Sun JVM in the PATH environment variable), the Workshop Studio installer will fail with the error message: "Can't launch executable. Could not load