--1、将表中字段名转换成VO属性名
SELECT 'private ' || COMM || ' ' || COL || '; //' || COMMENTS
FROM (SELECT F_REP_COL_UPER(A.COLUMN_NAME) COL,
B.COMMENTS,
CASE
WHEN A.DATA_TYPE IN ('CHAR', 'VARCHAR2') THEN
'String'
WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_SCALE > 0 THEN
'Double'
WHEN A.DATA_TYPE = 'NUMBER' AND A.DATA_SCALE = 0 THEN
'Long'
WHEN A.DATA_TYPE = 'DATE' THEN
'Date'
END COMM
FROM USER_TAB_COLUMNS A, USER_COL_COMMENTS B
WHERE A.TABLE_NAME = '表名'
AND A.TABLE_NAME = B.TABLE_NAME
AND A.COLUMN_NAME = B.COLUMN_NAME
ORDER BY A.COLUMN_ID) AA;
--2、生成VO对应的hibernate.xml配置文件
SELECT DECODE(DATA_TYPE,
'NUMBER',
'<property name="' || NME || '" type="' || TYPE_NME ||
'"><column name="' || COLUMN_NAME || '" precision="' ||
DATA_PRECISION || '" scale="' || DATA_SCALE ||
'" /></property>',
'<property name="' || NME || '" type="' || TYPE_NME ||
'"><column name="' || COLUMN_NAME || '" length="' ||
DATA_LENGTH || '" /></property>')
FROM (SELECT T.COLUMN_NAME,
F_REP_COL_UPER(T.COLUMN_NAME) NME,
T.DATA_LENGTH,
T.DATA_PRECISION,
T.DATA_SCALE,
T.DATA_TYPE,
CASE
WHEN T.DATA_TYPE IN ('CHAR', 'VARCHAR2') THEN
'java.lang.String'
WHEN T.DATA_TYPE = 'NUMBER' AND T.DATA_SCALE > 0 THEN
'java.lang.Double'
WHEN T.DATA_TYPE = 'NUMBER' AND T.DATA_SCALE = 0 THEN
'java.lang.Long'
WHEN T.DATA_TYPE = 'DATE' THEN
'java.util.Date'
END TYPE_NME
FROM USER_TAB_COLUMNS T
WHERE T.TABLE_NAME = '表名'
ORDER BY T.COLUMN_ID) AA;