Gun*_*gur 2 sql oracle plsql loops insert
我在使用以下 for 循环在 Oracle 中插入 100 万条记录时遇到问题。insert 语句独立工作,但不在循环内。我在这里做错了什么?
BEGIN
FOR v_LoopCounter IN 385000000..1000000 LOOP
INSERT INTO PORT (snb, real_exch, act_exch, user_type, status_id, category_id, assignable)
VALUES (TO_CHAR(v_LoopCounter),'GSMB','GSMB','GSM',0,90,'0');
COMMIT;
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
不要那样做,尤其不要COMMIT在循环中。
使用行生成器;有很多技术,其中之一是这样的:
SQL> create table test (snb number, real_exch varchar2(20));
Table created.
SQL> insert into test (snb, real_exch)
2 select 385000000 + level - 1, 'GSMB'
3 from dual
4 connect by level <= 10; --> you'd put a million here
10 rows created.
SQL> select * from test;
SNB REAL_EXCH
---------- --------------------
385000000 GSMB
385000001 GSMB
385000002 GSMB
385000003 GSMB
385000004 GSMB
385000005 GSMB
385000006 GSMB
385000007 GSMB
385000008 GSMB
385000009 GSMB
10 rows selected.
SQL>
Run Code Online (Sandbox Code Playgroud)