Keeping track of anyone who made a deletion from a table

Dear all;
I thought this was going to be easy but I am yet to think of a solution to this problem. I have the following table created
create table test_tbl
   test_id varchar2(10) not null,
   test_modifiedby varchar2(30),
   test_result number(10),
   primary key(test_id)
);with the following insert
insert into test_tbl
  (test_id, test_modifiedby, test_result)
values
  ('122', 'John', 4);
insert into test_tbl
  (test_id, test_modifiedby, test_result)
values
  ('123', 'Jamie', 6);
insert into test_tbl
  (test_id, test_modifiedby, test_result)
values
  ('124', 'Katy', 8);
insert into test_tbl
  (test_id, test_modifiedby, test_result)
values
  ('125', 'Eric', 10);I am trying to write a simple procedure which is used for deletion and also I would like to be able to keep track on and the save the user who made the deletion and that is where I am having problems. I need to keep track on who made the deletion because I have a trigger which is used to save all deleted test_id made. See trigger below
CREATE OR REPLACE TRIGGER test_tbl_before_delete
BEFORE DELETE ON test_tbl
for each row
begin
insert into audit_test_tbl_table
    (test_id, test_modifiedby, test_result)
values
   (:old.test_id,
    :old.test_modifiedby,
    :old.test_result
end;Please how do I solve this problem. All help will be appreciated. Thank you.

Unfortunately Rob, I wouldnt be able to do that because I am using a web development tool called Asp.net which is linked to our oracle database and from the web development tool, users are able to login into the application I am designing and based on their login creditials, they are able to carryout tasks like deletions, insertions, etc. Now I am able to get the user name and info directly from the web development and able to pass it into my deletion procedure. See procedure below
procedure deletefromtest_tbl(delete_testid in varchar2, delete_modifieruser in varchar2)
  AS
temp_cnt number;
BEGIN
select count(*) into temp_cnt from test_tbl td
where td.test_id = delete_testid
if(temp_cnt != 0) then
    delete test_tbl pk
    where pk.test_id = delete_testid
  commit;
    end if;
end deletefromtest_tbl;From the procedure, I really don't know how to apply the delete_modifieruser (which contains the information of the user that perform the delete) so that information gets saved in the audit_test_tbl_table.

Similar Messages

  • How to keep your email on the server after deleting from the phone?

    how to keep your email on the server after deleting from the phone?

    If this is a POP mail account:
    Settings > Mail.... > Your account > Advanced > Delete from server > Never.
    However, this will risk re-downloading as new mail
    IMAC  accounts mirror what's on the phone in the server, so deleting from the inbox on the phone will either send it to the trans folder on the server or leave it in the inbox but marked as deleted (depending on the server)
    Settings > Mail.... > your account > Advanced > Deleted Mailbox > On My iPhone Trash

  • Condition Record PB00 gets deleted from A018 table

    Hi Gurus-
    Could anyone of you explain how the PB00 condition is getting deleted from A018 table (Purch Org Level Condition)? It looks like some batch job is randomly setting the Valid to Date A018-DATBI to yesterday's date and today there is no valid time dependent condition.
    I don't know any process/program that accesses PB00 condition in table A018 other than MEK1 or MEK4.
    Does SD condition type change has any impact in Purchasing Price (PB00). Although all the Rate/Price is stored in the same table KONP but separated by application area and table (A017, A018, A071, A073).
    Can anybody shed some lights on this please?

    Thanks for your reply. We know the user name who is making the change in A018. It is a batch user ID that makes the change but we have about 100 differentg background batch job that is scheduled everyday and I went through every one of them but did not raise any flag.
    And the worst part is since it is done by the batch user id (batch job), there is no change record (if I try to do MEK3-Environment>display changes) not even an entry in CDHDR table or CDPOS table.
    Trying to see if you guys know of any SD or MM program that accesses that table and set the valid to field to yesterdays date and create a new condition record (KNUMH) with valid to date 31.12.9999 and rate (value) to 0.00?
    Please let me know if you have any suggestion.
    Thanks in advance.

  • Could not delete from specified table?

    hi all,
    i'm getting this error could not delete from specified table when i execute a delete on dbf file via JDBC-ODBC bridge, when i execute an update table command i get operation must use an updatable query, but i'm not updating the query returned from select statement.
    Does anyone have similar problem before??

    Hi,
    my code is below:
    try {     
    conn=DriverManager.getConnectio("jdbc:odbc:sui","","");
    stmt = conn.createStatement();     
    int r= stmt.executeUpdate("Update Alarms set ACK=True WHERE DT = { d '" + msgdate + "' } AND TM= '" + msgtime + "'");
    System.out.println(r+" records updated in Alarms ");
    stmt.close();
    conn.close();
    stmt=null;
    conn=null;
    catch (NullPointerException e) {System.out.println(e.getMessage());}
    catch (SQLException e) {System.out.println(e.getMessage());}
    I have an ODBC datasource called sui and a table called alarms, i need to write into the column Ack to true when DT equals msgdate and TM equals msgtime, the error returned is Operation must use an updatable query.
    I believe the SQL has no problem because there is no SQL syntax error and i'm not updating any resultset returned from select query.
    When i delete, i get could not delete from specified table. Anyone has any idea wh'at's wrong?

  • Deletion from parent table

    Hi,
    Is it possible to delete parent records from parent table without deleting from child tables ?
    I can delete the records after disabling the constraints . But I couldn't enable the constraint on child table after deletion of parent records from parent table.
    Please Help.

    Two Alternatives
    1. What is the need of child records if no parent record ? No use keeping the child records without parent records.
    For e.g., If we have Invoice_Master containing the Distributor and total amount and Other Transport details and Invoice_Details containing the list of Items the Distributor has purchased. In this case if we delete the Invoice_Master then the Invoice_Details is meaning less.
    2. Another case If really need to maintain the Child records then create one dummy record in the Parent and link the Child records to the dummy Parent by changing the Foreign Key value to the dummy Parent record Primary Key Value.

  • Create Trigger to Delete from multiple tables

    Hello:
    I'm trying to write a trigger which will allow me to delete from multiple records. I have two tables where the record for the same client_id needs to be deleted.
    Is it possible to do this? I started writing some code and this is what I have so far:
    create or replace trigger app_t1
    before delete on <table1> ?? -
    for each row
    begin
    delete from client where clientid = :new.clientid;
    delete from key where pk = :newclientid;
    end;I'm stuck on the line where I have "before delete on" where I'm supposed to provide a table name. I can only use one table and I need to delete from two.
    This trigger is supposed to be used within APEX. In APEX, fields are designated as :P1_clientid where P1 references page 1 of the application. Yet, :P1_clientid is set to the field clientid in the table.
    So when I write my trigger, I'm not sure how I'm supposed to set my variables.
    Can someone help?
    I'm also going to post this into the APEX forum.
    Thanks.

    It's not clear to me if you are just trying to keep two tables in syn or whether you are trying to achieve something else.
    A couple of points though:
    - In delete database triggers the :new attributes are NULL. You probably mean to use the :old attributes.
    - Is there some relationship between the two tables? If so, setting the foreign key to CASCADE DELETE might do the trick for you.
    - Another option - better than a database trigger in my opinion - is to just code a procedure that deletes from both tables and call that one from APEX.
    Regards,
    Rob.

  • Once a row is deleted from a table ,how can i recover it back in the table?

    Hi
    I have made a delete program in Jdev. I had deleted some of the rows from table such that count goes 2 from 10.
    Now I want to use this table again for some other program,how should i restore the deleted rows so that i can use the table properly.
    However toad tool showing that no row is deleted from the table.
    Thanks & Regards

    Can you please elaborate how are you deleting rows from table.

  • Records have been deleted from the table.

    Hi all ,
    If records have been deleted from the table that any log file maintains the history as following Way.
    User Name who delete the records.
    Machine name where the command is execute.
    The command syntax e.g delete from abc where ……..
    or any other help related to mentioned problem.
    Regards,
    Mobeen.

    Wrong forum .. your question doesnt make much sense.
    But take a look at Oracle Auditing.

  • Deleting from multiple tables

    I have a master table and a detail table. I need to delete a set of records from both the master and detail tables based on a criteria. Now if I delete from one table then I will not know which records I have to delete from the other table. So the records needs to be deleted from both the tables using the criteria. My SQL statement to select the records is
    <<
    select *
    FROM TL_RATE A, TL_RATE_DETAIL B
    WHERE A.CARRIER_ID = B.CARRIER_ID
    AND A.TARIFF_CLASS_ID = B.TARIFF_CLASS_ID
    AND A.LANE_ID = B.LANE_ID
    AND A.SERVICE_COM_ID = B.SERVICE_COM_ID
    AND A.EFFECTIVE = B.EFFECTIVE
    AND DATE_INVALID < SYSDATE-365;
    >>
    Thanks

    You don't show what table DATE_INVALID is in. However, you should just delete the matching rows from the OTHER table first then that table. This is very slightly different from the rows returned by your query since your query is an inner join. In other words, you're excluding rows that might exist in one table but not the other. Assuming DATE_INVALID is in TL_RATE ...
    delete tl_rate_detail
    where (CARRIER_ID, TARIFF_CLASS_ID, LANE_ID, SERVICE_COM_ID, EFFECTIVE) in (
      select CARRIER_ID, TARIFF_CLASS_ID, LANE_ID, SERVICE_COM_ID, EFFECTIVE
      from tl_rate
      where date_invalid < sysdate - 365)
    delete tl_rate
    where date_invalid < sysdate - 365
    /Richard

  • Deleting from multiple tables where few tables have same column name

    Hi,
    I am new to PL/SQL and need some help. I need to delete data older then X years from some 35 odd tables in my schema and out of those tables 25 tables have same column name on which i can have my "where" clause and rest 10 table have different table names. I am doing something like this :
    declare
    table_list UTL_FILE.FILE_TYPE;
    string_line VARCHAR2(1000);
    tables_count number:=0;
    table_name VARCHAR2(400);
    column_name VARCHAR2(400);
    BEGIN
    table_list := UTL_FILE.FOPEN('ORALOAD','test7.txt','R');
    DBMS_OUTPUT.PUT_LINE(table_list);
    LOOP
    UTL_FILE.GET_LINE(table_list,string_line);
    table_name := substr(string_line,1, instr(string_line,'|')-1);
    column_name := substr(string_line, instr(string_line,'|')+1);
    DBMS_OUTPUT.PUT_LINE(table_name);
    DBMS_OUTPUT.PUT_LINE(column_name);
    IF column_name = 'SUBMISSION_TIME' THEN
    delete from :table_name where to_date(:column_name)<(sysdate-(365*7));
    ELSE
    delete from || table_name || where ( || to_date(column_name) || ) <(sysdate-(365*7));
    END IF;
    END LOOP;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    UTL_FILE.FCLOSE(table_list);
    DBMS_OUTPUT.PUT_LINE('Number of Tables processed is : ' || tables_count);
    UTL_FILE.FCLOSE(table_list);
    END;
    WHERE the text file "text7.txt" contains list of table name and column names separated by a pipe line. But when I execute the above proc it gives error "invalid table name".
    Can something like this be done or is there any other way to execute this task of deletion from 35 tables.
    Thanks.

    Thanks for replies. I don't know what I am doing wrong but still not getting this damn thing work...This is the proc i am running now :
    declare
    table_list UTL_FILE.FILE_TYPE;
    string_line VARCHAR2(1000);
    tables_count number:=0;
    table_name VARCHAR2(4000);
    column_name VARCHAR2(4000);
    code_text VARCHAR2(2000);
    BEGIN
    table_list := UTL_FILE.FOPEN('ORALOAD','test7.txt','R');
    LOOP
    UTL_FILE.GET_LINE(table_list,string_line);
    table_name := substr(string_line,1, instr(string_line,'|')-1);
    column_name := substr(string_line, instr(string_line,'|')+1);
    IF column_name = 'SUBMISSION_TIME' THEN
    DBMS_OUTPUT.PUT_LINE('do nothing');
    ELSE
    code_text:= 'begin delete from'|| (table_name) ||'where to_date' || (column_name) || '<(sysdate-(365*7))';
    Execute Immediate code_text;
    END IF;
    END LOOP;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    UTL_FILE.FCLOSE(table_list);
    DBMS_OUTPUT.PUT_LINE('Number of Tables processed is : ' || tables_count);
    UTL_FILE.FCLOSE(table_list);
    END;
    But it gives following error :
    " ORA-06550: line 1, column 51:
    PL/SQL: ORA-00933: SQL command not properly ended
    ORA-06550: line 1, column 7:
    PL/SQL: SQL Statement ignored
    ORA-06550: line 1, column 68:
    PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
    ORA-06512: at line 22 "

  • Delete from internal table

    Hi,
    I want to delete from internal table some regords.
    I write code:
    delete  isrot where bldat < '01.09.2005'.
    it doesn't work, what is wrong?
    regards,
    Joanna

    hi,
    you write the statement like....
    <b>delete FROM isrot where bldat < '01.09.2005'.</b>
    now it will work...
    To select the lines that you want to delete using a condition, use the following:
    <b>DELETE FROM <target> WHERE <cond> .</b>
    All of the lines in the database table that satisfy the conditions in the WHERE clause are deleted. The FROM expression must occur between the keyword and the database table.
    You should take particular care when programming the WHERE clause to ensure that you do not delete the wrong lines. For example, if you specify an empty internal table in a dynamic WHERE clause, all of the lines in the table are deleted.
    If at least one line is deleted, the system sets SY-SUBRC to 0, otherwise to 4. SY-DBCNT contains the number of lines deleted.
    follow this link for more information on internal table operation.
    http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3aef358411d1829f0000e829fbfe/content.htm
    regards,
    Ashok Reddy
    Message was edited by:
            Ashok Reddy

  • WBS elements not deleted from PRPS table

    Hi Experts,
    In CJ20N transaction:
    When I delete a project with project profile (ZABC):
      - The project record is completely deleted from 'PROJ' table.
      - The WBS records are completely deleted from 'PRPS' table.
    When I delete another project with different project profile (ZXYZ):
      - The project record is completely deleted from 'PROJ' table.
      - The WBS records are NOT deleted from 'PRPS' table.
    What is the reason for not deleting records from PRPS table?
    Thanks in advance for your valuable answers.

    WBS should be having actuals.

  • Delete from two tables in one statement

    Hi,
    Is there a way to delete from two tables in one statement?
    Actually I have two tables:
    1. Base table (id, name, age)
    2. Person table (id, city, street)
    The id in both tables is identical.
    I would like to delete using something like a join:
    Delete from base, person where id=2;
    Thanks
    dyahav

    Hi,
    If you want to delete records both at a time them your table must use ON DELETE CASCADE. See the below example.
    CREATE TABLE supplier
    ( supplier_id numeric(10) not null,
    supplier_name varchar2(50) not null,
    contact_name varchar2(50),
    CONSTRAINT supplier_pk PRIMARY KEY (supplier_id)
    CREATE TABLE products
    ( product_id numeric(10) not null,
    supplier_id numeric(10) not null,
    CONSTRAINT fk_supplier
    FOREIGN KEY (supplier_id)
    REFERENCES supplier(supplier_id)
    ON DELETE CASCADE
    In this example, we've created a primary key on the supplier table called supplier_pk. It consists of only one field - the supplier_id field. Then we've created a foreign key called fk_supplier on the products table that references the supplier table based on the supplier_id field.
    Because of the cascade delete, when a record in the supplier table is deleted, all records in the products table will also be deleted that have the same supplier_id value.
    Thank you.

  • Delete from two tables at the same time

    Hi,
    Is there way to delete from many tables at the same time ?
    delete from tbl1, tbl2;
    Thank you

    953402 wrote:
    Hi,
    Is there way to delete from many tables at the same time ?
    delete from tbl1, tbl2;
    Thank youNO
    Consider to actually Read The Fine Manual below
    http://docs.oracle.com/cd/E11882_01/server.112/e26088/toc.htm

  • Who deleted from a table

    hi
    How do I tell which user deleted data from a table ?
    Andale

    Hai,
    Users who have access write ABAP programs, has full access to the database and thus can delete all the data.
    Additionally users with permission can use SE14 to delete table contents completely.
    You can use STAD and ST03 to analyse what are all the tcodes executed in a particular period of time and by which user. Also you can use table logging on tables to log the activities on the table.
    http://help.sap.com/saphelp_nw04/Helpdata/EN/7e/c81ebb52c511d182c50000e829fbfe/frameset.htm
    Regards,
    Yoganand.V
    Edited by: Yoganand Vedagiri on Feb 6, 2009 11:54 AM

Maybe you are looking for

  • Align text between columns with space after paragraphs.

    I am creating a proposal with a ton of text. I used to align everything to a baseline grid with justified type and indented paragraphs. Recently, however, I was asked to change the style to left aligned text with spaces between the paragraphs. The te

  • Material Determination -SAP SD

    Hi All, I am working in Material Deterimination ( based on ATP). for eg: if the Product X is 10 QTY , when i create the sales order for Product X for 20 qty , system should pick 10 from X and remaining 10 from Y ( which we mentioend in COndition reco

  • IWeb site change computers

    How do I import an old iweb site designed on another computer to a new computer and edit it in iweb?

  • Getting applet to stay on page?

    I created an applet, but it pops up in another window. I wanted to know how I could get it to show up on the initial screen(window)?

  • How to my iphone is locked or not?

    hoe to check my iphone 5 is locked or not?