• ベストアンサー

列名の変更 (Oracle 8.1.7)

表:TB_TEST 列:TB_TEST_MODE VARCHAR2(1) があります。列:TB_TEST_MODE VARCHAR2(1)を下記に変更するには SQLplusでどのようにすれば良いのでしょうか? (1)列名の変更:TB_TEST_TESTMODE VARCHAR2(1) (2)型式の変更:TB_TEST_MODE NUMBER(1) (3)サイズの変更:TB_TEST_MODE VARCHAR2(5) (4)サイズの変更:TB_TEST_MODE NUMBER(5) 以上、ご存知の方ご教示宜しくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

解答です。 1)alter table TB_TEST rename column TB_TEST_MODE to TB_TEST_TESTMODE 2)alter table TB_TEST modify(TB_TEST_MODE NUMBER(1)) 3)alter table TB_TEST modify(TB_TEST_MODE VARCHAR2(5)) 4)alter table TB_TEST modify(TB_TEST_MODE NUMBER(5)) 注意:型変換は全ての行の値がNullの必要があります。 詳しくはOTNのページからSQLリファレンスをDowLoadしてください

参考URL:
http://otn.oracle.co.jp
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yutopapa
  • ベストアンサー率47% (139/295)
回答No.3

(2)(3)(4)は#1さんの回答通りで、8iでも動作します。 (1)は8iでは出来ません。 テーブルをdropしてcreateし直すのが一番良いでしょうね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

No1です。バージョンを確認していませんでした。Oracle 8.1.7でサポートしているSQLかどうかわかりません。申し訳ないです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 列の桁数変更の方法 (oracle 8i)

    oracle 8.1.7 を使用 下表の列2を下記のように変更したいのですが 方法(SQLplusにて)が分かりません、 ご教示くださいますようよろしくお願いいたします (変更前)列2:T_MIX_PTN VARCHAR2(1) NOT NULL (変更後)列2:T_MIX_PTN VARCHAR2(3) NOT NULL 表 :T_MIX ---------------------------------------- 列1:T_MIX_CD VARCHAR2(4) NOT NULL 列2:T_MIX_PTN VARCHAR2(1) NOT NULL 列3:T_MIX_CNT NUMBER(1,0) NOT NULL 列4:T_MIX_GCD1 VARCHAR2(6) NOT NULL 列5:T_MIX_GRATE1 NUMBER(4,1) NOT NULL 列6:T_MIX_GCD2 VARCHAR2(6) NOT NULL 列7:T_MIX_GRATE2 NUMBER(4,1) NOT NULL

  • SQLで列名の変更

    ある表の列の定義ではなく、列名の名前を変更したいのですが.....。 よろしくお願いします。

  • SQLを教えてください

    下記表があり、列1のデータを列2,列3に分割する方法を 教えてください 表 :t_test 列0:管理No t_test_no VARCHAR2(7) NOT NULL PRIMARY KEY 列1:値(文字) *.**×10の乗数 t_test_data VARCHAR2(20) 列2:値(数値) 列1の「*.**」の部分 t_test_suu NUMBER(3,2) 列3:値(数値) 列1の「10の乗数」の部分 t_test_jousuu NUMBER(1,0) データ例 列0, 列1, 列2, 列3 A000001, 1.20×1, 1.2, 0 A000002, Null, Null, Null A000003, 1.23×100, 1.23, 2 A000004, 0.20×10000, 0.2, 4 A000005, 0.00×10, 0, 1 (補)列1に値がない場合もある

  • SQL文を教えてください

    下記表があり、列0のデータを条件に, 列1,列2,列3の値を更新する方法を教えてください 表 :t_test 列0:管理No t_test_no VARCHAR2(7) NOT NULL PRIMARY KEY 列1:値(文字) t_test_data VARCHAR2(20) 列2:値(数値) t_test_suu NUMBER(3,2) 列3:値(数値) t_test_jousuu NUMBER(1,0) データ例 列0, 列1, 列2, 列3 A000001, abc, 1.2, 0 A000002, Null, Null, Null A000003, a1b2c3, 1.23, 2 A000004, opqrstuv, 0.2, 4 A000005, あいう, 0, 1 列0 条件のデータは必ず既存するものとする つまり、更新(update)処理

  • Varcharサイズ変更後にエラー

    こんにちは。宜しくお願いします。 かなり古いシステムでVB6で開発されているものがあるのですが、昨日、データーベース(SQLServer2005)のとあるテーブルの列のサイズをVarchar(1000)からVarchar(2000)へ変更しました。 すると、いままで問題なく稼動していたシステムにエラーが発生しまして、デバッグしてみると、SELECT文で取得した変更箇所の列の値が、NULLで戻ってきました。 NULL値の対策として、IsNull関数を使用して、NULL値の場合には、別の文字列に変換するようにしてあるのですが、IsNull関数ではNull=Falseを返します。 いろいろネットで文献を探しまして、Where句に指定している列名をSELECT句に含まないといけないという記述を発見しましたが、実行しても結果は変わりませんでした。 なにかSQLServer側で意識しなくてはいけない事があるのでしょうか。 当方、DBにはあまり詳しくないので、原因に心当たりのある方はご教授頂ければ幸いです。

  • 副問合せ 続(Oracle SQL)

    問題:NATION表とINVENTION表より人口密度(人口/面積)が100以下の国で、発明事項がある国の国コードを表示する。 方法1:主問合せでNATION表を利用する 方がうまくいきません。 私の考えた下記SQL文では実行結果が80件返ってしまいます。 答えは方法2と同じ5件ですがどこが悪いのでしょうか? 回答のほどよろしくお願い致します。 方法1:主問合せでNATION表を利用する SELECT CODE FROM NATION WHERE (POPULATION / AREA) <=ANY(SELECT 100 FROM INVENTION) SELECT CODE FROM NATION WHERE POPULATION / AREA < 100;(上と同じ意味) INVENTION表の副問合せがうまくできていないので5件出力できない? 方法2:主問合せでINVENTION表を利用する SELECT DISTINCT NATION_CODE FROM INVENTION WHERE NATION_CODE = ANY(SELECT CODE FROM NATION WHERE 100 >= POPULATION / AREA) NATION_CODE ----------- 107 136 142 154 157 各表の構造はこのようになります。 SQL> DESCRIBE INVENTION 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- INVENTION NOT NULL VARCHAR2(30) INVENTOR VARCHAR2(30) YEAR NUMBER(4) NATION_CODE NUMBER(4) SQL> DESCRIBE NATION 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- CODE NOT NULL NUMBER(5) NATION NOT NULL VARCHAR2(28) CAPITAL VARCHAR2(20) AREA NUMBER(22) POPULATION NUMBER(22)

  • エクセルVBAで列名が#N/Aとなった列を削除するプログラムはどのように組めばよいのでしょうか?

    エクセルVBAで列名が#N/Aとなった列を削除するプログラムはどのように組めばよいのでしょうか? 下記のような表です。    A      B      C      D・・・・・ 1 イチゴ   #N/A    リンゴ   #N/A 2  100     1      75      1 3  250     2      50      4 4  150     2      25      5 ・        ↓    A      B  ・・・・・ 1 イチゴ   リンゴ  2  100     75 3  250     50 4  150     25 ・ よろしくお願いいたします。

  • 文字列内の数値を検索に使う場合の手法

    検索の仕方で質問があります。 WinXPでの開発です。 データベースはOracle、開発ソフトはC++Builder5です。 以下のようなテーブルとデータがあります。 TB2,TB3のidは必ずTB1に存在します。 TB3のdataには、カンマ区切りの文字列が入っています。 dataのカンマ区切りの内容は "コード,サイズ1,サイズ2" となっています。 実際はこのような単純なデータではないので、カラム分けするのは 設計時に難しかったようです。 ------------------------------ CREATE TABLE TB1 ( id number, name varchar2(20) ); 1 sample1 2 sample2 3 sample3 ------------------------------ CREATE TABLE TB2 ( id number, keyno number ); 1 100 3 200 ------------------------------ CREATE TABLE TB3 ( id number, data char(200) ); 1 aaa,0.1,0.2 2 bbb,0.3,0.4 ------------------------------ たとえば TB2.keynoが100であり、TB3.dataのサイズ1が0.1のデータのTB1.nameを取りだす という場合、どのようなSQL文になるのでしょうか? TB3のデータは読み込んだ後に一旦文字列を分解して コード、サイズ1、サイズ2を取得しないことには検索出来ないと思います。 一番高速な手法はどうなるでしょうか? トリガーを使って、作業用のテーブル作ってやればいい、 みたいなことを言われたのですが、トリガーは違うのでは?と思いながら 手法を悩んでいます。 ローカルデータベースのようなファイルを使ってやる方法になるのでしょうか? アドバイスをお願いします。

  • エクセルで一番大きな数字の列名を表示させいたい

    ■■セダン■ワゴン■スポーツ■カテゴリ 田中□1□■□1□■□□□□■ 佐藤□1□■□2□■□□1□■ 鈴木□1□■□2□■□□3□■ 高橋□1□■□4□■□□4□■ 山本□1□■□3□■□□1□■ エクセルでこんな感じの表があります。 カテゴリの列に、一番大きな数字の列名(セダン・ワゴン・スポーツ)を 表示させたいのですが、どのようにすればいいのでしょうか? EX佐藤→ワゴン、鈴木→スポーツ、山本→ワゴン それから同数のものがある場合には、(田中、高橋)の場合には、同数と 表示させたく思っています。また数字がはいったセルには、データがない 場合があります。 以上よろしくお願いいたします。

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

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

筆まめに関して
このQ&Aのポイント
  • 筆まめVer.27のパソコンを最新のVerにアップデートしたいですが、CD版を購入できますか?またデータ移行は可能ですか?
  • Windows11を使用していますが、筆まめVer.27のパソコンを最新のVerにアップデートしたいです。CD版を購入できますか?データ移行もできますか?
  • ソースネクスト株式会社の筆まめVer.27を使用しています。最新のVerにアップデートするにはCD版を購入する必要がありますか?データ移行も可能ですか?
回答を見る