sql >> データベース >  >> RDS >> Oracle

Oracleの数値列の精度の変更

    最初に精度を設定しなかったと仮定すると、それは最大値(38)であると想定されます。精度を38から14に変更しているため、精度が低下しています。

    これを処理する最も簡単な方法は、列の名前を変更し、データをコピーしてから、元の列を削除することです。

    alter table EVAPP_FEES rename column AMOUNT to AMOUNT_OLD;
    
    alter table EVAPP_FEES add AMOUNT NUMBER(14,2);
    
    update EVAPP_FEES set AMOUNT = AMOUNT_OLD;
    
    alter table EVAPP_FEES drop column AMOUNT_OLD;
    

    本当に列の順序を保持したい場合は、代わりにデータを2回移動できます:

    alter table EVAPP_FEES add AMOUNT_TEMP NUMBER(14,2);
    
    update EVAPP_FEES set AMOUNT_TEMP = AMOUNT;
    
    update EVAPP_FEES set AMOUNT = null;
    
    alter table EVAPP_FEES modify AMOUNT NUMBER(14,2);
    
    update EVAPP_FEES set AMOUNT = AMOUNT_TEMP;
    
    alter table EVAPP_FEES drop column AMOUNT_TEMP;
    


    1. SQL Serverのデータベースですべてのチェックキーと外部キーの制約を有効にする方法(T-SQLの例)

    2. ORACLEでVARCHARのXMLTYPEを変換するにはどうすればよいですか?

    3. SQL Serverセマンティック検索を使用したWindowsファイルシステムでのドキュメントの保存と分析–パート2

    4. MySQLのLENGTH()とは何ですか?