Oracle12,新增自增主键表和批量插入数据
1、#查询版本
SELECT * FROM v$version;
2、#创建表
python
CREATE TABLE USERS_TDE (
ID NUMBER(10) GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
NAME VARCHAR2(50) NOT NULL,
EMAIL VARCHAR2(100),
AGE NUMBER(3),
SEX VARCHAR2(10),
ID_CARD VARCHAR2(18),
MOBILE VARCHAR2(11),
V_CARD VARCHAR2(50),
OFFICE_CARD VARCHAR2(50),
ADDRESS VARCHAR2(200)
)
TABLESPACE TDE_TS;
3、#批量新增数据
批量新增数据:639166
python
DECLARE
TYPE t_rows IS TABLE OF USERS_TDE%ROWTYPE;
v_data t_rows := t_rows();
c_total CONSTANT NUMBER := 639166;
c_batch CONSTANT NUMBER := 5000;
BEGIN
FOR i IN 1 .. c_total LOOP
v_data.EXTEND;
v_data(v_data.COUNT).NAME := '陈欢';
v_data(v_data.COUNT).EMAIL := 'www5@163.com';
v_data(v_data.COUNT).AGE := 1;
v_data(v_data.COUNT).SEX := 'M';
v_data(v_data.COUNT).ID_CARD := '460025198109101501';
v_data(v_data.COUNT).MOBILE := '13581696800';
v_data(v_data.COUNT).V_CARD := 'SYP618183458';
v_data(v_data.COUNT).OFFICE_CARD:= '军字第00111209号';
v_data(v_data.COUNT).ADDRESS := '北京市朝阳区立水桥北';
IF MOD(i, c_batch) = 0 THEN
FORALL j IN 1 .. v_data.COUNT
INSERT INTO USERS_TDE (
NAME,EMAIL,AGE,SEX,ID_CARD,MOBILE,V_CARD,OFFICE_CARD,ADDRESS
) VALUES (
v_data(j).NAME,
v_data(j).EMAIL,
v_data(j).AGE,
v_data(j).SEX,
v_data(j).ID_CARD,
v_data(j).MOBILE,
v_data(j).V_CARD,
v_data(j).OFFICE_CARD,
v_data(j).ADDRESS
);
COMMIT;
v_data.DELETE;
END IF;
END LOOP;
IF v_data.COUNT > 0 THEN
FORALL j IN 1 .. v_data.COUNT
INSERT INTO USERS_TDE (
NAME,EMAIL,AGE,SEX,ID_CARD,MOBILE,V_CARD,OFFICE_CARD,ADDRESS
) VALUES (
v_data(j).NAME,
v_data(j).EMAIL,
v_data(j).AGE,
v_data(j).SEX,
v_data(j).ID_CARD,
v_data(j).MOBILE,
v_data(j).V_CARD,
v_data(j).OFFICE_CARD,
v_data(j).ADDRESS
);
COMMIT;
END IF;
DBMS_OUTPUT.PUT_LINE('完成,共插入 ' || c_total || ' 条');
END;
4、#查询TDE是否开启
SELECT tablespace_name, encrypted
FROM user_tablespaces
WHERE tablespace_name = 'TDE_TS';
