2

Oracle10gを使用しています。'sal'列のすべての値に#を追加したい。これを最初に達成するために、「sal」列のデータ型を数値からvarcharに変更しようとしていますが、次のエラーが発生します ここに画像の説明を入力してください

私は何を間違っているのですか?

4

2 に答える 2

11

modify 2番目の代わりにキーワードを使用する必要がありますalter

alter table
   emp
modify
(
   sal    varchar2(10)
);

modifyテーブルの列のデータ型を変更するときは、キーワードを使用する必要があります。

もちろん、既存の列データを処理する必要があります。テーブルの列のデータ型を変更するときは、行をエクスポートし、テーブルを再定義してから、データを再インポートすることをお勧めします。

この場合、列のデータ型を変更するには、次の手順に従う必要があります。

  1. テーブルの最後に新しい列を作成します。
  2. 更新を実行して、新しいテーブル列にデータを入力します
  3. 古いテーブル列を削除します
  4. 新しい列の名前を元の列名に変更します
于 2012-06-24T12:46:59.633 に答える
3

完全に良い数字を取り、文字列を追加して残りのユーザーを台無しにするのは賢明な考えではないようです。選択に直接またはビューを介して文字列を追加するだけですか?

何かのようなもの:

SQL> create view emp_horked 
     as 
     select ename, sal, sal || '#' hash, to_char(SAL,'9999.99') || '#' sal_padded  
       from emp;

View created.

SQL> select * from emp_horked where rownum < 5;

ENAME             SAL HASH                                      SAL_PADDE
---------- ---------- ----------------------------------------- ---------
SMITH             800 800#                                        800.00#
ALLEN            1600 1600#                                      1600.00#
WARD             1250 1250#                                      1250.00#
JONES            2975 2975#                                      2975.00#

のフォーマットモデルの詳細to_char

于 2012-06-24T20:31:33.340 に答える