请问:C#如何读取Oracle数据库中的表结构(表名,字段名,字段类型,备注)等
求高手解答 

解决方案 »

  1.   

    系统表  你可以搜搜 sql中是用系统表
      

  2.   

    Select Sysobjects.Name As 表名,
           Syscolumns.Name As 列名,
           Systypes.Name As 列类型,
           Syscolumns.Length As 列长度,
           Isnull(Sysproperties.Value, Syscolumns.Name) As 列说明,
           Case
             When Syscolumns.Name In
                  (Select 主键 = A.Name
                     From Syscolumns A
                    Inner Join Sysobjects B On A.Id = B.Id
                                           And B.Xtype = 'U'
                                           And B.Name <> 'Dtproperties'
                    Where Exists (Select 1
                             From Sysobjects
                            Where Xtype = 'Pk'
                              And Name In
                                  (Select Name
                                     From Sysindexes
                                    Where Indid In
                                          (Select Indid
                                             From Sysindexkeys
                                            Where Id = A.Id
                                              And Colid = A.Colid)))
                      And B.Name = Sysobjects.Name) Then
              1
             Else
              0
           End As 是否主键
      From Sysobjects, Systypes, Syscolumns
      Left Join Sysproperties On (Syscolumns.Id = Sysproperties.Id And
                                 Syscolumns.Colid = Sysproperties.Smallid)
     Where (Sysobjects.Xtype = 'U' Or Sysobjects.Xtype = 'V')
       And Sysobjects.Id = Syscolumns.Id
       And Systypes.Xtype = Syscolumns.Xtype
       And Systypes.Name <> 'Sysname'
       And Sysobjects.Name Like '%'
     Order By Sysobjects.Name, Syscolumns.Colid 
      

  3.   

    ORACLE
    的是
    SELECT * FROM TAB;
      

  4.   

    SELECT TABLE_NAME FROM user_tables;
    SELECT TABLE_NAME,COLUMN_NAME FROM user_tab_columns;