Oracle数据库批量插入&插入日期类型格式转换

直接上SQL

INSERT ALL
INTO table(字段1,字段2,字段3) VALUES (字段1值,字段2值,字段3值)
INTO table(字段1,字段2,字段3) VALUES (字段1值,字段2值,字段3值)
INTO table(字段1,字段2,字段3) VALUES (字段1值,字段2值,字段3值)
SELECT 1 FROM DUAL

上面这一段的SQL是一整句,整个执行

关于日期类型,我碰到的比较简单,只要转换以下就好了

to_date('2002-08-26','yyyy-mm-dd')

示例:

--创建表
CREATE T_CREATOR(
    CREATOR_ID NUMBER(32) NOT NULL,
    CREATE_USER VARCHAR2(30),
    CREATE_TIME DATE,
    MODIFY_USER VARCHAR2(30),
    MODIFY_TIME DATE
) 
COMMENT ON TABLE T_CREATOR IS '创建者表';
COMMENT ON COLUMN CREATOR_ID IS '创建者ID';
COMMENT ON COLUMN CREATE_USER IS '创建人';
COMMENT ON COLUMN CREATE_TIME IS '创建时间';
COMMENT ON COLUMN MODIFY_USER IS '修改人';
COMMENT ON COLUMN MODIFY_TIME IS '修改时间';
--创建主键
ALTER TABLE T_CREATOR ADD CONSTRAINT PK_T_CREATOR_ID PRIMARY KEY (CREATOR_ID);
--创建自增序列
CREATE SEQUENCE SEQ_T_CREATOR MINVALUE 100 --最小值100
NOMAXVALUE --最大值,不写则一直叠加
START WITH 100 --起始值
INCREMENT BY 1 --增长基数
NOCYCLE --不循环,一直增加
NOCACHE; -- 不使用缓存
--创建存储过程
CREATE OR REPLACE FUNCTION GET_SEQ_T_CREATOR RETURN NUMBER IS
  RESULT NUMBER;
BEGIN
  SELECT SEQ_T_CREATOR_ECHO.NEXTVAL INTO RESULT FROM DUAL;
  RETURN(RESULT);
END GET_SEQ_T_CREATOR;
-- 插入数据
INSERT ALL
INTO T_CREATOR(CREATOR_ID,CREATE_USER,CREATE_TIME,MODIFY_USER,MODIFY_TIME) VALUES (GET_SEQ_T_CREATOR 'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'),'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'))
T_CREATOR(CREATOR_ID,CREATE_USER,CREATE_TIME,MODIFY_USER,MODIFY_TIME) VALUES (GET_SEQ_T_CREATOR 'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'),'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'))
T_CREATOR(CREATOR_ID,CREATE_USER,CREATE_TIME,MODIFY_USER,MODIFY_TIME) VALUES (GET_SEQ_T_CREATOR 'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'),'test',to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss'))
SELECT 1 FROM DUAL; -- 这一句是存储过程,必须写
-- 以上SQL是一整句

猜你喜欢

转载自www.cnblogs.com/buyz/p/11366161.html