创建序列
create sequence A_squence minvalue 1 --最小值 nomaxvalue --不设置最大值(由机器决定),或 根据表字段的值范围设置 maxvalue maxvalue 999999999 -- 最大值 start with 1 --从1开始计数,数值可变 increment by 1 --每次加1,数值可变 nocycle --一直累加,不循环;cycle:达到最大值后,将从头开始累加 nocache; --不建缓冲区。 -- 如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度; -- 如果在单机中使用cache,或者oracle死了,那么下次读取的seq值将不连贯,所以不建议使用cache。
-- 创建序列
--创建序列 create sequence A_SEQ minvalue 1111 maxvalue 999999999999 start with 1111 increment by 1; commit;
INSERT 插入语句
-- INSERT SELECT 'INSERT INTO ' || 'a' || '(' || wm_concat(T.COLUMN_NAME) || ')' || ' values(' || wm_concat('#{' || T.COLUMN_NAME || '.' || T.data_type || '}') || '})' FROM USER_TAB_COLUMNS T WHERE T.TABLE_NAME = 'A';
oracle 字段替换
-- VARCHAR2 = VARCHAR -- NUMBER = NUMERIC
自动生成序列id
@Insert(" INSERT INTO A(ID,ZT,STATUS,CJR,CJSJ,CZR,CZSJ) " + "values(A_SEQ.nextval," + "#{zt,jdbcType=VARCHAR},#{status,jdbcType=NUMERIC},#{cjr,jdbcType=VARCHAR}," + "#{cjsj,jdbcType=DATE},#{czr,jdbcType=VARCHAR},#{czsj,jdbcType=DATE})") @Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "ID") int insertA(A entity);
xml 中 if
SELECT wm_concat( '<if test="' || T.COLUMN_NAME || ' != null and ' || T.COLUMN_NAME || ' != ''''">' || T.COLUMN_NAME || ',</if>') FROM USER_TAB_COLUMNS T WHERE T.TABLE_NAME = 'A';
SELECT wm_concat(T.COLUMN_NAME) FROM USER_TAB_COLUMNS T WHERE T.TABLE_NAME = 'A';