Oracle 如何将INSERT INTO用于此PL/SQL代码块?

Oracle 如何将INSERT INTO用于此PL/SQL代码块?,oracle,for-loop,plsql,sql-insert,sql-like,Oracle,For Loop,Plsql,Sql Insert,Sql Like,我对PL/SQL的过程语言方面相当陌生,所以如果这是基本的,请原谅我 我正在尝试将值放入我以前在此代码块之外创建的表中。此代码当前在第六行出现错误。知道为什么吗 BEGIN FOR c IN (SELECT name FROM clients) LOOP FOR d IN (SELECT customer_id, alt_name FROM customers) LOOP IF d.alt_name LIKE '%' || c.name || '%' THE

我对PL/SQL的过程语言方面相当陌生,所以如果这是基本的,请原谅我

我正在尝试将值放入我以前在此代码块之外创建的表中。此代码当前在第六行出现错误。知道为什么吗

BEGIN
  FOR c IN (SELECT name FROM clients) LOOP
    FOR d IN (SELECT customer_id, alt_name FROM customers) LOOP 
      IF d.alt_name LIKE '%' || c.name || '%'
      THEN
            INSERT INTO previously_made_table(name, customer_id, alt_name, customer_code) VALUES(c.name, d.customer_id, d.alt_name, '101');
            COMMIT;
       END IF;
    END LOOP;
END LOOP;
END;

这里不需要pl\sql

insert into previously_made_table
  (name, customer_id, alt_name, customer_code) 
 select c.name, d.customer_id, d.alt_name, '101'
 from   clients c , customers d
 where  d.alt_name LIKE '%' || c.name || '%'
这起作用了

INSERT INTO previously_made_table VALUES(c.name, d.customer_id, d.alt_name, '101');

我删掉了列名。希望这有帮助。

请发布错误。谢谢。错误是PL/SQL:ORA-00904:“客户代码”:标识无效。我应该向您保证表上肯定有此字段。您可以尝试只运行SQLPlus(或您最喜欢的Oracle工具)中的INSERT语句吗?也许你的列名搞错了……没错,但我更想知道如何使用我提出问题时使用的PL/SQL格式。在
以前的\u-make\u-table
中,你可能没有名为
customer\u-code
的列。它就在那里,正如我在上面的评论中提到的。请在你的INSERT INTO语句中。