用varchar 不許用char
通過postman跑乙個springcloudalibaba中的乙個子服務,debug跟進去看一下,已經接收到引數值(圖1);再檢視控制台輸出的sql(圖2),複製控制台的sql到資料庫執行是有資料的(圖3)。
①已經確認資料庫連線沒有問題;
②通常情況下資料有空格,準確查詢是查不到的;
③從資料下手,發現游標位置前有空格,準確查詢還能查到解釋不通
oracle提供了五種字元資料型別:char、nchar、varchar、varchar2、nvarchar2。
使用資料庫字符集來儲存資料,長度固定,如果儲存的資料沒有達到指定長度,自動補足空格 。指定長度時,預設長度的計量單位由nls_length_semantics(預設為位元組byte)引數決定,但是我們可以手動指定為char或者byte。oracle建議使用nls_length_semantics來指定計量單位,可以提高效率。char型別的最大儲存長度為2000個位元組,在plsql中,最大儲存長度可以達到32767個位元組。使用char時, 可以不指定最大長度,此時最大長度為1.
使用國家字符集來儲存資料,長度固定,如果 儲存的資料沒有達到指定長度,資料庫自動補足空格 。指定長度時, 採用char為計量單位 ,不可以手動指定其他單位。最大儲存長度為2000個位元組,在plsql中,其最大儲存長度可以達到32767個位元組。使用nchar時,可以不指定最大長度,此時最大長度為1.
使用資料庫字符集儲存資料, 長度可變,如果儲存資料沒有達到指定長度,不自動補足空格 。可使用char,byte為計量單位,預設受引數nls_length_semantics的影響。最大儲存長度為4000個位元組,在plsql中,儲存長度可達32767個位元組。必須指定最大長度,長度最小值為1 .
使用國家字符集來儲存資料,長度可變,如果儲存的資料沒有達到指定長度,不自動補足空格。指定長度時, 採用char為計量單位 ,不可以手動指定其他單位。最大儲存長度為4000個位元組,在plsql中,其最大儲存長度可以達到32767個位元組。必須指定最大長度,長度最小值為1.
varchar:oracle沒有實現該資料型別,varchar與varchar2完全一致。
Oracle 踩坑記錄
在 做datax的一些功能測試,需要oracle,中間遇到的一些檔案進行記錄 安裝過程 現 ins 30014 谷歌有人說設定本機host,沒有成功。最後將本機網路關閉,該檔案得到解決,安裝過程最後進度條部分會略慢 很久沒有使用oracle,裡面的各種概念已經忘記。可以cmd 然後 sqlplus ...
oracle踩的那些坑
1.oracle日誌滿溢 公司測試環境忽然莫名其妙用不了了,檢查後發現是oracle監聽關閉了,嘗試啟動監聽,很慢,等待很久 反覆啟動後才啟動成功。然而成功後又提示連線超時。漫長的檢查後,發現是oracle的日誌檔案沒有清理,導致日誌檔案滿溢,oracle監聽自動關閉 卡頓。解決方法很簡單,直接關閉...
Oracle 字段型別
oracle 字段型別 字段型別 描述字段長度及其預設值 char size 用於儲存定長 size 位元組的字串資料。每行定長 不足部分補為空格 最大長度為每行2000位元組,預設值為每行1位元組。設定長度 size 前需考慮字符集為單位元組或多位元組。varchar2 size 用於儲存變長的字...