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是一整句