当连到一个DB的时候,怎么知道这个DB里面有多少table,并得到每张table的名称--
多谢

解决方案 »

  1.   

    oracle里你可以知道哪个用户有多少个表,用system用户登录,有一个叫dba_tables的视图那里有用户表的信息
      

  2.   

    感谢楼上,
    也许我没有把问题说得清楚,当我用java的Connection连好数据库,这时我想知道这个数据库里可以给这个user所能查看的table(不是view)有多少,都叫什么名字
      

  3.   

    select * from sysobjects where xtype='U'
      

  4.   

    或者:select * from sysobjects where type='U'
      

  5.   

    以上是SQL Server的所有用户表
      

  6.   

    oracle: select count(*) from V$user_tables
    sqlserver: select count(*) from sysobjects where type='U'
      

  7.   

    学习ing…… 哈哈又学到东西啦:)
      

  8.   

    Connection conn = null;
            DatabaseMetaData dbMeta = conn.getMetaData();
            
            ResultSet rs = dbMeta.getTables("%","MySchemaAsUsername","%",new String[]{"TABLE","VIEW"});
            
            ResultSetMetaData rsMeta =  rs.getMetaData();
            while(rs.next()){
                StringBuffer b = new StringBuffer();
                for (int i = 0; i < rsMeta.getColumnCount(); i++) {
                    b.append(rsMeta.getColumnLabel(i+1)).append('=').append(rs.getString(i+1));
                }
                System.out.println(b);
            }