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