国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle字符值的比較和儲存

2024-08-29 13:33:37
字體:
來源:轉載
供稿:網友
     以前對Oracle字符值的比較和儲存沒有弄得很清楚,直到最近寫程序碰到了,才認真去實踐驗證了一下,結果還真的發現自己的一些錯誤熟悉。

對于char和varchar2類型數據庫列值的儲存,以前一直以為:
1、char列按輸入的值儲存,假如值長度不夠char列的長度,則在后面補上空格char(32)
2、varchar2列按輸入的值儲存,假如值長度不夠varchar2列的長度,后面不補空格
上面2點都是對的,不過下面這一點就不對了
3、即使輸入的值后面含空格,varchar2列在儲存時也會去掉,也就是說varchar2列后一定不含空格
SQL> create table testyyw(col1 char(2),col2 varchar2(2));Table createdSQL> insert into testyyw values ('x','x');1 row insertedSQL> insert into testyyw values ('x ','x ');1 row insertedSQL> select dump(col1),dump(col2) from testyyw;DUMP(COL1) DUMP(COL2)------------------------------------------------------------------------ Typ=96 Len=2: 120,32 Typ=1 Len=1: 120Typ=96 Len=2: 120,32 Typ=1 Len=2: 120,32
用dump函數看出來了,2行在數據庫中的儲存方式不一樣的,varchar2列后面也有空格

在網上查了下Oracle字符的比較,查到了如下結果
關于字符值的比較, Oracle使用以下兩種比較規則:

1、空格補齊比較語法
對于類型CHAR、NCHAR、text literals、USER函數值, 在進行比較時, 先在較短的那個
字符串后補上空格以使長度相等, 然后再進行比較.
所以, 'ab'='ab '

2、非補齊比較語法
對于類型VARCHAR2、NVARCHAR2, 則不用補齊, 直接進行比較;
而對于1和2的類型作比較的情況,我的試驗結果都是原值直接比較,也就是按2類的方法來

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 葵青区| 和田市| 汽车| 大名县| 平度市| 江阴市| 准格尔旗| 阿拉善右旗| 江都市| 宜良县| 清苑县| 东阳市| 建阳市| 曲麻莱县| 五河县| 宝清县| 临城县| 英吉沙县| 杂多县| 定南县| 六盘水市| 肥乡县| 汤原县| 兴义市| 霍邱县| 远安县| 天峻县| 麦盖提县| 武强县| 阿图什市| 德钦县| 石屏县| 淮阳县| 咸宁市| 左云县| 绥宁县| 大方县| 重庆市| 虞城县| 武胜县| 安岳县|