use*_*794 6 database oracle plsql
我在oracle中有一个表,其中所有列的行都必须使用起始值500更新并递增1.
我试图在网上找到类似的东西但却无法获得任何有用的东西.oracle和PL/SQL不是我的专长.任何帮助,将不胜感激.
Lal*_*r B 10
我不会使用PL/SQL,因为它可以在纯SQL中完成.
您可以使用SEQUENCE开头500并递增1.
例如,
建立
SQL> DROP SEQUENCE s ;
Sequence dropped.
SQL>
SQL> CREATE SEQUENCE s START WITH 500 INCREMENT BY 1;
Sequence created.
SQL>
SQL> DROP TABLE t PURGE;
Table dropped.
SQL>
SQL> CREATE TABLE t AS SELECT LEVEL id FROM dual CONNECT BY LEVEL < =20;
Table created.
SQL>
SQL> SELECT * FROM t;
ID
----------
1
2
3
4
5
6
7
8
9
10
11
ID
----------
12
13
14
15
16
17
18
19
20
20 rows selected.
SQL>
Run Code Online (Sandbox Code Playgroud)
现在,让我们用序列更新表.
SQL> UPDATE t SET ID = s.nextval;
20 rows updated.
SQL>
SQL> SELECT * FROM t;
ID
----------
500
501
502
503
504
505
506
507
508
509
510
ID
----------
511
512
513
514
515
516
517
518
519
20 rows selected.
SQL>
Run Code Online (Sandbox Code Playgroud)
因此,您已更新所有行,序列以500开头并递增1.