1

私は Oracle データベースへのアクセス権を与えられており、テーブル内の特定の列が null 可能かどうかを判断しようとしています。Oracle DB に接続して、接続メタデータを取得できます。

4

1 に答える 1

1

プレーンSQLソリューション(あらゆる種類のDBアクセスレイヤーで機能)

特定の列を取得するには:

SELECT NULLABLE 
FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = '<YOUR_TABLE_NAME>' 
AND COLUMN_NAME = '<YOUR_COLUMN_NAME>';

テーブル内のすべての列を取得するには:

SELECT COLUMN_NAME, NULLABLE 
FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = '<YOUR_TABLE_NAME>' ;

テーブルが別のスキーマにある場合は、次のように使用する必要があります。

SELECT COLUMN_NAME, NULLABLE 
FROM ALL_TAB_COLUMNS 
WHERE OWNER = '<OWNER_SCHEMA_NAME>' 
AND TABLE_NAME = '<YOUR_TABLE_NAME>';

( OTNディスカッションフォーラムへの投稿に基づく)

JDBC固有のソリューション:

DatabaseMetadataオブジェクトを使用できます。

  • を呼び出してテーブルデータを取得しますgetColumns(null,null,'yourtablename','%',null)
  • 次に、結果セットから、「COLUMN_NAME」列と「NULLABLE」が必要になるようにします。

Dr. Herong Yangから:すべての列のリスト-getColumns()

または、ダミークエリを使用することもできます:Java2S:ResultSetMetadataから列をnull許容します これは好きではありません、これはクリーンなソリューションではありません...

于 2012-10-11T13:09:53.477 に答える