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

相关推荐
这个DBA有点耶11 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB11 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB11 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB11 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
ProcessOn13 小时前
纯干货!MySql实战02:一条SQL更新语句执行流程大探索!
sql·mysql·sql server
这个DBA有点耶14 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly768917 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!17 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网17 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析