创建序列
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(
'' || T.COLUMN_NAME || ' != null and ' || T.COLUMN_NAME || ' != ''''">' || T.COLUMN_NAME || ',')
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';