8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Oracle 中执行多行插入的最佳方法?

Melloware 2月前

80 0

我正在寻找一种在 Oracle 9 数据库中执行多行插入的好方法。以下方法在 MySQL 中有效,但似乎在 Oracle 中不受支持。INSERT INTO TMP_DIM_EXCH_RT (EXCH_WH_K...

我正在寻找一种在 Oracle 9 数据库中执行多行插入的好方法。以下方法在 MySQL 中有效,但 Oracle 似乎不支持。

INSERT INTO TMP_DIM_EXCH_RT 
(EXCH_WH_KEY, 
 EXCH_NAT_KEY, 
 EXCH_DATE, EXCH_RATE, 
 FROM_CURCY_CD, 
 TO_CURCY_CD, 
 EXCH_EFF_DATE, 
 EXCH_EFF_END_DATE, 
 EXCH_LAST_UPDATED_DATE) 
VALUES
    (1, 1, '28-AUG-2008', 109.49, 'USD', 'JPY', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (2, 1, '28-AUG-2008', .54, 'USD', 'GBP', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (3, 1, '28-AUG-2008', 1.05, 'USD', 'CAD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (4, 1, '28-AUG-2008', .68, 'USD', 'EUR', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (5, 1, '28-AUG-2008', 1.16, 'USD', 'AUD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
    (6, 1, '28-AUG-2008', 7.81, 'USD', 'HKD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008');
帖子版权声明 1、本帖标题:在 Oracle 中执行多行插入的最佳方法?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Melloware在本站《oracle》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 在 Oracle 中,要向表 t 中插入具有列 col1、col2 和 col3 的多行,可以使用以下语法:

    INSERT ALL
       INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
       INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3')
       INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3')
       .
       .
       .
    SELECT 1 FROM DUAL;
    

    在 Oracle 23c 中,您可以使用以下简化的语法插入多行:

    INSERT INTO t(col1, col2, col3) VALUES
    ('val1_1', 'val1_2', 'val1_3'),
    ('val2_1', 'val2_2', 'val2_3'),
    ('val3_1', 'val3_2', 'val3_3');
    

    对于插入大量行,新语法比旧 INSERT ALL 方法快得多,与方法一样快 UNION ALL 。但是,由于解析时间呈指数级增长,您仍然希望避免一次插入超过 1000 行。

返回
作者最近主题: