• 締切済み

列のサイズを縮小するには

NUMBER(5)の列をNUMBER(5,2)に変更したいのですが、良い方法はないでしょうか。 一時表を作りINSERTする方法を試したのですが、定義名が自動の表定義が付けられていてうまくいきません。 列のサイズを縮小し、なおかつ表制約もそのままにする方法を教えてください。

みんなの回答

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.3

Object Browserでやってみたところ レコードがあると ダメでしたね。 レコードを エクセルにコピーして 空にしてやってみると 定義は 変更できたけど、そのコピーしたデータを そのまま貼り付けるのは できませんでした。 その変更した列のデータを調整しないとダメなようです。

wo-007
質問者

お礼

回答ありがとうございました。 試行錯誤した結果、 1.一時的な表(A)を作る 2.元の表(B)からAにINSERTする 3.AをTRUNCATEし、桁数を変更する 4.AからBにデータを戻す の方法で成功しました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

オラクルだったら Object Browserを使ってみたら いかがでしょうか?

参考URL:
http://www.sint.co.jp/siob/
  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

一度 ドロップして 再度 クリエイトするしかないですね。 テンポラリのテーブルを作成し、ドロップする前に レコードをその テンポラリに保存し、クリエイトしたら、テンポラリから移せばいいでしょう。

wo-007
質問者

補足

回答ありがとうございます。 >一度 ドロップして 再度 クリエイトするしかないですね。 制約名がOracleで自動的に付けられたものなのですが、 そのまま引き継げますでしょうか?

関連するQ&A