Oracle 将数据插入/复制到具有某些更改值的PL-SQL表中

Oracle 将数据插入/复制到具有某些更改值的PL-SQL表中,oracle,plsqldeveloper,Oracle,Plsqldeveloper,任何人都知道它为什么不工作您可以选择行并将它们插入到同一个表中,进行如下更改: 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 (739

任何人都知道它为什么不工作

您可以选择行并将它们插入到同一个表中,进行如下更改:

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;

您可以选择行并将它们插入到同一个表中,并进行如下更改:

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;

对此,您不需要PL/SQL:

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

对此,您不需要PL/SQL:

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

你怎么知道它不起作用?如果你有错误,显示它。如果结果不是预期的,请说明您正在尝试做什么。表单Id是主键吗?如果是,您将无法插入多个具有相同id(7399)的行。不管怎么说,在PL/SQL中这样做的意义是什么,当您可以编写一个简单的SQL查询来更快地完成此操作时?FORM_ID不是主键——它是作为运行时错误,如果我输入count(*),我有一个三个错误ora-06550,您仍然需要向我们显示该运行时错误。ORA-06550如果没有行号和您收到的准确错误消息,将毫无意义。感谢GORAN,我发现了错误,是多个进程同时运行,您如何知道它不工作?如果你有错误,显示它。如果结果不是预期的,请说明您正在尝试做什么。表单Id是主键吗?如果是,您将无法插入多个具有相同id(7399)的行。不管怎么说,在PL/SQL中这样做的意义是什么,当您可以编写一个简单的SQL查询来更快地完成此操作时?FORM_ID不是主键——它是作为运行时错误,如果我输入count(*),我有一个三个错误ora-06550,您仍然需要向我们显示该运行时错误。ORA-06550如果没有行号和您收到的确切错误消息,将毫无意义。感谢GORAN,我发现错误是由于同时运行的多个进程
+
在SQL中不用于串联,请改用
|
+
在SQL中不用于串联,请改用
|