rasheed
rasheed

Reputation: 1

insert into / copy data from table to same with some changing value PL-SQL

BEGIN
  FOR i IN (select * from Mpl_Form_Responses t  WHERE t.form_ID = 1944 and t.response_id > 15) LOOP
    INSERT INTO Mpl_Form_Responses
      (Form_Id, Response_Id,remarks, Userid)
    VALUES
      (7399, i.RESPONSE_ID,i.remarks, i.userid);
  END LOOP;
END;

anyone know why its not working

Upvotes: 0

Views: 96

Answers (2)

gkatiforis
gkatiforis

Reputation: 1652

You can select rows and insert them to the same table with some changing like this:

INSERT INTO Mpl_Form_Responses(Form_Id, Response_Id,remarks + 'edited', Userid)
select  7399, t.Response_Id, t.remarks, t.Userid
from  Mpl_Form_Responses t  
WHERE t.form_ID = 1944

Upvotes: 2

Thomas
Thomas

Reputation: 366

You dont need PL/SQL for this:

  INSERT INTO mpl_form_responses
        (form_id
        ,response_id
        ,remarks
        ,userid)

   SELECT 7399 as form_id
         ,response_id
         ,remarks
         ,userid 
     FROM mpl_form_responses t
    WHERE t.form_id = 1944
      AND t.response_id > 15

Upvotes: 0

Related Questions