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

相关推荐
@insist12321 小时前
信息系统管理工程师-任务、标准、EDM 过程与关键域
java·大数据·数据库
qq_3660862221 小时前
关于接口路径中中文值解码问题
java·开发语言·数据库
ClouGence21 小时前
数据库为什么需要 SSL?一文了解 SSL 连接原理与配置
数据库·开源
一十九的酒21 小时前
Oracle 密码恢复实战:使用 SPARE4 哈希值还原用户密码
数据库·oracle·密码丢失·密码恢复·账户锁定
冰暮流星21 小时前
mysql之新建表及对表的查询
android·数据库·mysql
C语言Plus21 小时前
C++ SqlBuilder一个简单、灵活且类型安全的 C++ SQL 构建器库
数据库·sql·安全·c++20
喝茶与编码21 小时前
真实业务场景:高并发 Upsert 死锁频发?InnoDB 锁机制与重试机制深度解析
数据库·python
BreezeJiang1 天前
做完 AI 日记本后,我终于理解了:向量数据库不是用来替代 MySQL 的
数据库
VALENIAN瓦伦尼安教学设备1 天前
转子/行星/平行轴齿轮箱综合故障模拟实验台可复现常见机械问题
大数据·数据库·人工智能·嵌入式硬件·算法
不好听6131 天前
向量数据库:Milvus 与 MySQL 的本质差异
数据库