Oracle Metadata

http://www.devart.com/dotconnect/oracle/articles/metadata.html
http://dcx.sybase.com/1101/en/dbprogramming_en11/ianywhere-data-sqlanywhere-saconnection-getschem6330755502-0.html

Oracle SQL Developer 

Toad DBA Suite for Oracle

http://software.dell.com/products/toad-dba-suite-for-oracle/    

Oracle SQL Developer 

http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

 

In this overload first parameter is name of a collection, and second parameter is the array of restrictions to be applied when querying information. Quantity of elements in the array must be less or equal to the value that is returned by GetSchema() method in the second cell of the row that corresponds to the collection name. (Or from the table below, which is much more handy.) If the second argument is null (Nothing), the function behaves like the previous overload (that takes a single parameter).
GetSchema Method Reference

 

 

Collection NameNumber of restrictionsRemarks
MetaDataCollections0
Returns this list. Same as using GetSchema() method without parameters.
ReservedWords0
Lists all reserved words used in the server.
Users1
Lists all users on the server.
When restricted by username, returns information about specific user.
Tables2
GetSchema("Tables") Returns the list of all tables on the server that you have access to.
The first restriction for this collection is name of a schema. If specified, the method returns all tables within the schema.
The second restriction is table name. Note that masks are not allowed in dotConnect for Oracle.
Views2
GetSchema("Views") Returns the list of all views on the server that you have access to.
The first restriction for this collection is name of a schema. If specified, the method returns all views within the schema.
The second restriction is the name of the view.
Columns3
Returns the list of columns, their type and some extra information.
GetSchema("Columns") Returns the list of all columns in all schemas of the table.
Restricted by schema name, the method returns all columns in the specified schema.
The second restriction is name of a table that GetSchema method should search in.
At last, you can specify column name.
Indexes4
Returns the list of indexes and their details.
The first restriction is name of a schema the indexes belongs to.
The second restriction is name of the index.
The third restriction is name of a table that uses the index.
The last restriction is name of schema the table belongs to.
IndexColumns5
Returns information about columns included in indexes. The following restrictions may be specified:
Name of the schema for indexes;
Index name;
Name of the schema for tables;
Table name;
Column name.
Functions2
Returns the list of functions on the server. The following restrictions may be specified:
Schema name;
Function name.
Procedures3
Returns the list of procedures on the server. The following restrictions may be specified:
Schema name;
Package name;
Procedure name.
Arguments4
Returns the list of procedure and function arguments. The following restrictions may be specified:
Schema name;
Package name;
Procedure name;
Argument name.
Synonyms2
Returns the list of synonyms on the server. The following restrictions may be specified:
Schema name;
Synonym name.
Sequences2
Returns the list of sequences on the server. The following restrictions may be specified:
Schema name;
Sequence name.
Packages2
Returns the list of packages on the server. The following restrictions may be specified:
Schema name;
Package name.
PackageBodies2
Returns the list of package bodies on the server that you have access to. The following restrictions may be specified:
Schema name;
Package name.
ForeignKeys3
Returns the list of foreign keys on the server. The following restrictions may be specified:
Schema name;
Key name;
Table name.
ForeignKeyColumns3
Returns the list of columns of foreign keys on the server. The following restrictions may be specified:
Schema name;
Key name;
Table name.
Triggers2
Returns the list of triggers on the server that you have access to. The following restrictions may be specified:
Schema name;
Trigger name.
Clusters2
Returns the list of clusters on the server that you have access to. The following restrictions may be specified:
Schema name;
Cluster name.
TypeNameProviderDbTypeColumnSizeCreateFormatCreateParametersDataType
BFILE14294967296BFILE System.Byte[]
BLOB24294967296BLOB System.Byte[]
CHAR32000CHAR({0})sizeSystem.String
CLOB44294967296CLOB System.String
DATE619DATE System.DateTime
FLOAT2938FLOAT System.Decimal
INTERVAL DAY TO SECOND70INTERVAL DAY({0}) TO SECOND({1})dayprecision,secondsprecisionSystem.TimeSpan
INTERVAL YEAR TO MONTH80INTERVAL YEAR({0}) TO MONTHyearprecisionSystem.Int32
LONG102147483647LONG System.String
LONG RAW92147483647LONG RAW System.Byte[]
NCHAR112000NCHAR({0})sizeSystem.String
NCLOB124294967296NCLOB System.String
NUMBER1338NUMBER ({0},{1})precision,scaleSystem.Decimal
NVARCHAR2144000NVARCHAR2({0})sizeSystem.String
RAW152000RAW({0})sizeSystem.Byte[]
ROWID163950ROWID System.String
TIMESTAMP1827TIMESTAMP({0})precision of fractional secondsSystem.DateTime
TIMESTAMP WITH LOCAL TIME ZONE1927TIMESTAMP({0} WITH LOCAL TIME ZONE)precision of fractional secondsSystem.DateTime
TIMESTAMP WITH TIME ZONE2034TIMESTAMP({0} WITH TIME ZONE)precision of fractional secondsSystem.DateTime
VARCHAR2224000VARCHAR2({0})sizeSystem.String

 

    /// <summary>
    /// 对于本文的Oracle安装来说,data source对应着Oracle_Client\oracle\ora92\network\admin\tnsnames.ora配置文件中的网络服务名
    /// Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = geovin)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = geovindu)));user id=sysdba;password=0214;Persist Security Info=True;";
    /// 涂聚文 20150516
    /// </summary>
    public partial class Form1 : Form
    {
        public string connectionString = @"Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = geovistu-xwvuyh)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oracle9i)));user id=geovin;password=0214;Persist Security Info=True;";
        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        DataTable setDatat()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Rows.Add(1, "Procedures");
            dt.Rows.Add(2, "DataTypes");
            dt.Rows.Add(3, "Foreign Keys");
            dt.Rows.Add(4, "Databases");
            dt.Rows.Add(5, "dbo");
            dt.Rows.Add(6, "Arguments");
            dt.Rows.Add(7, "Collection Name");
            dt.Rows.Add(8, "DatasourceInformation");
            dt.Rows.Add(9, "MetaDataCollections");
            dt.Rows.Add(10, "ForeignKeyColumns");
            dt.Rows.Add(11, "Functions");
            dt.Rows.Add(12, "IndexColumns");
            dt.Rows.Add(13, "Indexes");
            dt.Rows.Add(14, "PrimaryKeys");
            dt.Rows.Add(15, "ReservedWords");
            dt.Rows.Add(16, "Restrictions");
            dt.Rows.Add(17, "Triggers");
            dt.Rows.Add(18, "UDFs");
            dt.Rows.Add(19, "UniqueKeys");
            dt.Rows.Add(20, "UserPrivileges");
            dt.Rows.Add(21, "Users");
            dt.Rows.Add(22, "ViewColumns");

            //DataTable dt = connection.GetSchema("Tables", strRestricted);
            dt.Rows.Add(23, "Tables");
            dt.Rows.Add(24, "Columns");//表的列的详细,有主键TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,ORDINAL_POSITION,COLUMN_DEFAULT,IS_NULLABLE,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH,NUMERIC_PRECISION,NUMERIC_SCALE,DATETIME_PRECISION,CHARACTER_SET_NAME,COLLATION_NAME,COLUMN_TYPE,COLUMN_KEY,EXTRA,PRIVILEGES,COLUMN_COMMENT
            dt.Rows.Add(25, "Views");
            dt.Rows.Add(26, "Indexes");//表的列
            dt.Rows.Add(27, "IndexColumns");//主键

            return dt;
        }
        /// <summary>
        /// 
        /// </summary>
        public Form1()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_Load(object sender, EventArgs e)
        {
            this.txtConnection.Text = connectionString;
            this.comboBox1.DataSource = setDatat();
            this.comboBox1.DisplayMember = "name";
            this.comboBox1.ValueMember = "id";
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                using (OracleConnection connection = new OracleConnection(connectionString))
                {
                    connection.Open();
                    //MessageBox.Show(connection.State.ToString());
                    DataTable dt = connection.GetSchema(this.comboBox1.Text.Trim());
                    this.dataGridView1.DataSource = dt;
                    this.textBox1.Text = GetColumnNames(dt);

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
                ex.Message.ToString();
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            string connString = "Provider=OraOLEDB.Oracle.1;User ID=geovin;Password=0214;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = geovistu-xwvuyh)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = oracle9i)))";
            OleDbConnection conn = new OleDbConnection(connString);
            try
            {
                conn.Open();
                //MessageBox.Show(conn.State.ToString());
                DataTable dt = conn.GetSchema(this.comboBox1.Text.Trim());
                this.dataGridView1.DataSource = dt;
                this.textBox1.Text = GetColumnNames(dt);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
            finally
            {
                conn.Close();
            }
        }

  用 

using Oracle.DataAccess.Client;

MetaDataCollections
DataSourceInformation
DataTypes
Restrictions
ReservedWords
Users
Tables
Columns
Views
Synonyms
Sequences
Functions
Procedures
Packages
PackageBodies
IndexColumns
Indexes
ProcedureParameters
Arguments
UniqueKeys
PrimaryKeys
ForeignKeys
ForeignKeyColumns
JavaClasses
XMLSchemas

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值