各位好:
現在在學資料庫方面知識,碰到一個問題,煩請幫忙解答:創建一個emp表格,ename型別設定為 “ename CHAR(10)”。插入資料后,把ename型別設定為“ename VARCHAR2(12)”。設定完后,計算ename欄位長度,值全為12,是插入資料后不能修改型別嗎,還是CHAR和VARCHAR2之間不能隨便修改?
1、創建表格emp:
CREATE TABLE emp(
empno NUMBER(4),
ename CHAR(10),
job VARCHAR(20),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(4),
comm NUMBER(4)
)
2、修改欄位型別及長度
ALTER TABLE emp
MODIFY(
ename VARCHAR2(12)
)
3、查詢欄位長度
SELECT
ename,LENGTH(ename)
FROM emp
4、查詢結果:

uj5u.com熱心網友回復:
一般很少改型別,大小 都是一開始定好的uj5u.com熱心網友回復:
明顯是幫你用空格補齊了…… 你把varchar2(10)改到varchar2(12)看看?uj5u.com熱心網友回復:
你改欄位型別前,ename欄位里面存的值是原值加上‘ ’空格的值,也就是‘SMITH ’這樣,你改變欄位為varchar2后,它里面的值仍然為‘SMITH ’,所以長度為10,如果你想恢復原值,那么你需要做trim操作后再改欄位型別。uj5u.com熱心網友回復:
char是定長字串型別,寫入資料后會自動用空格補滿,varchar2是變長字串,只儲存實際寫入的資料。char改成varchar2時,空格也帶過去了。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/62139.html
標籤:基礎和管理
下一篇:oracle導庫impdp報錯
