- - PR -
型を一斉に変更したいです。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-04-18 19:48
お世話になります。
データベースは、ORACLE10gです。 テーブル作成時に、あるフィールドの型を「NVARCHAR2」にしなくてはいけない部分を「VARCHAR2」で作成してしまいました。 ※Visioにて、ドライバをAccess又はSQLServerで、NVARCHR2型を指定していても、ドライバをOracleに変更すると、なぜか、VARCHR2型になってしまうんです。 そこで、VARCHAR2のフィールドを、すべてNVARCHAR2に変更したいと思っています。サイズもそのままにしたいです。 SQL文でやると、 ALTER TABLE テーブル名 MODIFY(フィールド名 NVARCHAR2(サイズ)); この文を、変更する分だけ書いてもいいのですが、なんとか、テーブル名を指定したら、その中にある「VARCHAR2」を「NVARCHAR2」に変更みたいなことがしたいです。 処理的には、 1.引数のテーブル内にある「VARCHAR2」型のフィールドを検索する。 2.ヒットした分、ループし、SQL文を発行。その時、DBからヒットしたフィールドのサイズを取得する ALTER TABLE 引数のテーブル名 MODIFY(検索しヒットしたフィールド名 NVARCHAR2(DBから取得したサイズ)); こんな感じのストアドプロシジャーってできるでしょうか? よろしくお願いします。 |
|
投稿日時: 2006-04-18 20:06
わざわざストアドプロシジャーを作るまでも無く、テーブル定義文をエディターで取り込んで
文字列置換、カットアンドペースト とか駆使すればMODIFYのSQL作れませんか? 一回動けば良いんですよね |
|
投稿日時: 2006-04-18 20:15
七味唐辛子さん、こんばんわ。
一回限りであれば、SQL文を作成すのですが、今後、Oracleにテーブルを作成する場合、VisioからOracleドライバを使用し生成しようとするとどうしても「VARCHAR2」になってしまうので、今後、何回も使用したいと思ってます。 Visioの方で、「NVARCHAR2」として、生成できるのであれば、一回限りでよいのですが・・・。 なので、フィールドが増えた場合でも対応できるように、テーブル内の「VARCHAR2」をすべて検索し、型を変換みたいなことをしたいと思ってます。 |
1