DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DBに登録されているテーブルの情報を取得する。

環境/言語:[Windows XP VB.NET ORACLE11g]
分類:[.NET]

.NET初心者です。
現在、登録されている"商品コード"の番号がかわりそれを全部変更しないといけないのですがテーブル数が多くて。下記のことを実現できればと思ってます。
下記のことを実現できるか教えていただきたく投稿しています。
ネット等で色々調べているとできそうですが自分ではどうもうまくできないのでわかるかたぜひ教えてください。

1.現在100以上あるDBのテーブルより列名"商品コード"があるものを取得する。
2.その"商品コード"のKey情報で主キーや外部キーになっているかを取得する。
3.できれば条件で主キーとうでなければUPDATEのようにプログラムで一気に修正したいと思っています。
■No25024に返信(Mieさんの記事)
> 1.現在100以上あるDBのテーブルより列名"商品コード"があるものを取得する。
対 Oracle なので、
 SELECT * FROM USER_TAB_COLUMNS WHERE COLUMN_NAME = '商品コード'
とか。ADODB 経由で OpenSchema メソッドを呼ぶという手もあるかも。


> 2.その"商品コード"のKey情報で主キーや外部キーになっているかを取得する。
SELECT * FROM USER_INDEXES WHERE EXISTS(SELECT * FROM USER_IND_COLUMNS
WHERE USER_INDEXES.INDEX_NAME = USER_IND_COLUMNS.INDEX_NAME AND
USER_IND_COLUMNS.COLUMN_NAME = '商品コード')


> 3.できれば条件で主キーとうでなければUPDATEのようにプログラムで一気に修正したいと思っています。
番号をどのように変更したいのか分からないので、具体的なコードは書けませんが、
.NET で処理したいるのであれば、ADO.NET にて実装することになるかと。
魔界の仮面弁士さんへ

大変参考になり1.と2.は解決しましたm(__)m
初めて書き込みをしたのでこんなに早く教えていただけるなんて
思っていませんでした。
わからないことだらけで毎日遅くまで仕事してるので大変助かりました。
本当にありがとうございました♪
KEY以外テーブルはプログラムでUPDATEかけるつもりです。

が!!現在のシステムを使い出して日が浅いしテーブル数も100以上あり
しかもVB.NET初心者過ぎて他の問題が・・・
'商品コード'が紐づいてる'提案書商品コード'などがありその辺と3.KEYの部分は手動で頑張りたいと思います。
普通よっぽどのことがないとデータ件数も多い場合このようなことをしない気が(>_<)・・・
自分の勉強だと思って頑張ります。

DOBON.NET | プログラミング道 | プログラミング掲示板