2009-05-15 8 views
2

私はOracle Express Editionを使用しています。プログラム(.Net C#、Microsoft oracle connector)内でテーブル情報(列名、タイプ、サイズなど) )。oracle(.Net Connector)を使用したクエリーの記述

SqlPlusでは、 "desc <tablename>"というコマンドを入力すると、テーブルに関するすべての情報が表示されます。

今私はプログラムでそれをやりたいです。私はクエリ "desc <tablename>"を出そうとしましたが失敗しました。それから私はDESCがストアドプロシージャであることをどこかで読んで、私たちは、ストアドプロシージャとしてそれを呼び出す必要があり、それから私は、コード、そのエラーで失敗し、

コード1

private OracleDataReader OracleDescribe(string tablename) 
{ 
    OracleCommand cmd = new OracleCommand("describe " + tablename, OracleConn); 
    return cmd.ExecuteReader(); 
} 

エラー1

次試してみました
Invalid SQL Statement 

コード2

private OracleDataReader OracleDescribe(string tablename) 
{ 
    OracleCommand cmd = new OracleCommand("describe", OracleConn); 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add("table", OracleType.VarChar).Value = tablename; 
    return cmd.ExecuteReader(); 
} 

エラー2

Encountered the symbol ">" when expecting one of the following: (

答えて

3

システムのメタデータビュー/テーブルでクエリを使用します。例えば:

SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, 
     DATA_PRECISION, DATA_SCALE, NULLABLE, DATA_DEFAULT, CHAR_LENGTH 
FROM ALL_TAB_COLUMNS 
WHERE OWNER='SCOTT' AND TABLE_NAME IN ('EMP', 'DEPT') 
ORDER BY TABLE_NAME ASC, COLUMN_ID ASC 

ます。また、(あなたがお勧め、.NET 2.0以降を使用している場合)、たDbConnectionのGetSchemaメソッドに見て、MSDNで定義された特定のビューをチェックすることができます。

関連する問題