Oracle12,新增自增主键表和批量插入数据

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';

相关推荐
张洛闻Eren20 小时前
MySQL 维护稳定系统【MySQL第二课】
linux·数据库·mysql·云原生
布莱克60521 小时前
理解索引:从概念到实践
数据库·mysql
g10565591391 天前
LAMP博客平台Wordpress实战
android·mysql·nginx·php
我不是疯子是傻子1 天前
Qt CAN通信周期发送抖动?实测定时器精度校准与时间戳补偿方案
开发语言·数据库·qt
这个DBA有点耶1 天前
数据库迁移怎么做到“零翻车“:金仓 KDMS/KDTS/KFS 工具链实测
数据库·架构·dba
2501_937860941 天前
MySQL联合查询(多表查询)
数据库·mysql
名字还没想好☜1 天前
Next.js 用 Server Components 直连数据库:去掉 API 层的边界,和三条别踩的安全红线
前端·javascript·数据库·安全·react·next.js
迷迭香yy1 天前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
SelectDB1 天前
抖音集团 实时数据仓库:Apache Doris / SelectDB 的技术能力与实践
数据库
SelectDB1 天前
网易 日志与时序数据分析:Apache Doris / SelectDB 的技术能力与实践
数据库