假如在oracle8.1.7中有schema scott,其中有table txdgma11,它的script语句这样定义的﹕
DROP TABLE TXDGMA11 CASCADE CONSTRAINTS ; CREATE TABLE TXDGMA11 (
CO VARCHAR2 (4) NOT NULL,
DTLVDP VARCHAR2 (8) NOT NULL,
MNLNUMBER VARCHAR2 (20) NOT NULL,
ARCCUNT VARCHAR2 (3) NOT NULL,
PRDID VARCHAR2 (20)
CONSTRAINT NU_TXDGMA11_PRDID NOT NULL,
CFMMK VARCHAR2 (1)
CONSTRAINT NU_TXDGMA11_CFMMK NOT NULL,
CANCELMK VARCHAR2 (1)
CONSTRAINT NU_TXDGMA11_CANCELMK NOT NULL,
TXEMP VARCHAR2 (20)
CONSTRAINT NU_TXDGMA11_TXEMP NOT NULL,
TXDAT VARCHAR2 (8)
CONSTRAINT NU_TXDGMA11_TXDAT NOT NULL,
TXTM VARCHAR2 (8)
CONSTRAINT NU_TXDGMA11_TXTM NOT NULL,
CONSTRAINT PK_TXDGMA11
PRIMARY KEY ( CO, DTLVDP, MNLNUMBER, ARCCUNT )
USING INDEX
TABLESPACE TNG00A PCTFREE 10
STORAGE ( INITIAL 40K NEXT 40K PCTINCREASE 50 ))
TABLESPACE TNG00A NOLOGGING
PCTFREE 20
PCTUSED 80
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 16384
NEXT 8192
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1 FREELIST GROUPS 1 )
NOCACHE;
ALTER TABLE TXDGMA11 ADD CONSTRAINT FK_GMA11_SAD31_1
FOREIGN KEY (CO, DTLVDP)
REFERENCES PDS1.TXDSAD31 (CO, DP) ;
请问如何在java程序中判断此表有哪些字段﹐字段名﹐数值类型﹐宽度﹔是否是primary key及foreign key,是否为not null.
请高手指点。
DROP TABLE TXDGMA11 CASCADE CONSTRAINTS ; CREATE TABLE TXDGMA11 (
CO VARCHAR2 (4) NOT NULL,
DTLVDP VARCHAR2 (8) NOT NULL,
MNLNUMBER VARCHAR2 (20) NOT NULL,
ARCCUNT VARCHAR2 (3) NOT NULL,
PRDID VARCHAR2 (20)
CONSTRAINT NU_TXDGMA11_PRDID NOT NULL,
CFMMK VARCHAR2 (1)
CONSTRAINT NU_TXDGMA11_CFMMK NOT NULL,
CANCELMK VARCHAR2 (1)
CONSTRAINT NU_TXDGMA11_CANCELMK NOT NULL,
TXEMP VARCHAR2 (20)
CONSTRAINT NU_TXDGMA11_TXEMP NOT NULL,
TXDAT VARCHAR2 (8)
CONSTRAINT NU_TXDGMA11_TXDAT NOT NULL,
TXTM VARCHAR2 (8)
CONSTRAINT NU_TXDGMA11_TXTM NOT NULL,
CONSTRAINT PK_TXDGMA11
PRIMARY KEY ( CO, DTLVDP, MNLNUMBER, ARCCUNT )
USING INDEX
TABLESPACE TNG00A PCTFREE 10
STORAGE ( INITIAL 40K NEXT 40K PCTINCREASE 50 ))
TABLESPACE TNG00A NOLOGGING
PCTFREE 20
PCTUSED 80
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 16384
NEXT 8192
MINEXTENTS 1
MAXEXTENTS 2147483645
FREELISTS 1 FREELIST GROUPS 1 )
NOCACHE;
ALTER TABLE TXDGMA11 ADD CONSTRAINT FK_GMA11_SAD31_1
FOREIGN KEY (CO, DTLVDP)
REFERENCES PDS1.TXDSAD31 (CO, DP) ;
请问如何在java程序中判断此表有哪些字段﹐字段名﹐数值类型﹐宽度﹔是否是primary key及foreign key,是否为not null.
请高手指点。
user_tab_columns
USER_CONSTRAINTS
user_cons_columns
user_triggers
user_objects
user_col_comments
user_tab_comments
user_db_links
user_jobs
user_free_space
等都比较有用。
......
try {
st = conn.createStatement();
rs = st.executeQuery("select * from "+sTableName+" where 1<>1 ");
ResultSetMetaData rsMeta;
rsMeta = rs.getMetaData();
}
catch(SQLException e)
{
e.printStackTrace();
}
获得rsMeta以后就好办了:
rsMeta.getColumnName(1);//可以获得第一列的列名
rsMeta.getColumnType(1);//可以获得列的类型不知楼主的意思是不是要这个?