SQL:如何在一个查询(插入行)中编写多个交互式脚本

一个简单的问题-我只想学习如何编写一个查询,该查询将通过编写一个查询而不是2个单独的查询在表中插入2行。我的查询工作完全正常,如果可能的话,我只想知道一种更简单的方法。以下是我想合并为1的2个查询。

INSERT INTO dept (deptno,dname)
VALUES (dept_id_seq.NEXTVAL,'EDUCATION');

INSERT INTO dept (deptno,'ADMINISTRATION');

如上所述,我的代码可以正常工作。这是我的输出,没有错误-

DE DNAME                          LOC
-- ------------------------------ ------------------------------
10 accOUNTING                     NEW YORK
20 RESEARCH                       DALLAS
30 SALES                          CHICAGO
40 OPERATIONS                     BOSTON
60 EDUCATION
70 ADMINISTRATION

感谢您的帮助!

smallantji 回答:SQL:如何在一个查询(插入行)中编写多个交互式脚本

尚不清楚您要什么,但是您可以使用以下命令使inserts 1脚本执行:

BEGIN
INSERT INTO dept (deptno,dname) VALUES (dept_id_seq.NEXTVAL,'EDUCATION');
INSERT INTO dept (deptno,'ADMINISTRATION');
END;

但是,看起来您可能想要使用游标在值列表中循环,然后将它们插入其他位置。

,

不确定这是您要考虑的内容,但是您可以这样做:

INSERT INTO dept

SELECT dept_id_seq.NEXTVAL,'EDUCATION' UNION ALL

SELECT dept_id_seq.NEXTVAL,'ADMINISTRATION'

,

您可以使用以下语法:

INSERT ALL
  INTO mytable (column1,column2,column_n) VALUES (expr1,expr2,expr_n)
  INTO mytable (column1,expr_n)
SELECT * FROM dual;
,

或者您可以仅在MERGE分支中使用NOT MATCHED

MERGE INTO DEPT d
  USING (SELECT 'EDUCATION' AS DNAME FROM DUAL UNION ALL
         SELECT 'ADMINISTRATION' AS DNAME FROM DUAL) s
    ON (d.DNAME = s.DNAME)
  WHEN NOT MATCHED THEN
    INSERT (DEPTNO,DNAME)
    VALUES (DEPT_ID_SEQ.NEXTVAL,s.DNAME)
本文链接:https://www.f2er.com/3142815.html

大家都在问