第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Varchar2和char之間的主要區(qū)別是什么

Varchar2和char之間的主要區(qū)別是什么

汪汪一只貓 2019-07-31 10:25:09
Varchar2和char之間的主要區(qū)別是什么創(chuàng)建表:CREATE TABLE test (charcol    CHAR(10),varcharcol VARCHAR2(10));SELECT LENGTH(charcol), LENGTH(varcharcol) FROM test;結(jié)果:LENGTH(CHARCOL) LENGTH(VARCHARCOL)--------------- ------------------             10                  1 請(qǐng)告訴我Varchar2和char有什么區(qū)別?我們?cè)谑裁磿r(shí)候同時(shí)使用?
查看完整描述

3 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

顯示差異的簡(jiǎn)單示例:


SELECT 

    '"'||CAST('abc' AS VARCHAR2(10))||'"', 

    '"'||CAST('abc' AS CHAR(10))||'"' 

FROM dual;



'"'||CAST('ABC'ASVARCHAR2(10))||'"' '"'||CAST('ABC'ASCHAR(10))||'"'

----------------------------------- -------------------------------

"abc"                               "abc       "                   

1 row selected.

CHAR對(duì)于總是固定字符長(zhǎng)度的表達(dá)式是有用的,例如美國(guó)州的郵政編碼,例如CA,NY,F(xiàn)L,TX

查看完整回答
反對(duì) 回復(fù) 2019-07-31
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

這是一個(gè)老線程,但它只是谷歌搜索'Oracle char vs varchar2'的頂部,雖然已經(jīng)有幾個(gè)答案正確描述了行為char,但我認(rèn)為需要說(shuō)你不應(yīng)該使用它除外在兩種特定情況下:

  1. 您正在構(gòu)建固定長(zhǎng)度的文件或報(bào)告,并為a分配非null值,從而char避免了對(duì)rpad()表達(dá)式進(jìn)行編碼的需要。例如,如果firstnamelastname都被定義為char(20),那么firstname || lastname是一種較短的寫(xiě)作方式rpad(firstname,20) || rpad(lastname,20)

  2. 您需要區(qū)分顯式空字符串''null。通常它們?cè)贠racle中是相同的,但是分配''給一個(gè)char值會(huì)觸發(fā)它的空白填充行為,而null不是,所以如果說(shuō)出差異是很重要的,我真的不能想到它會(huì)出現(xiàn)原因的原因,那么你有辦法做到這一點(diǎn)。

實(shí)際上沒(méi)有理由char因?yàn)槟承╅L(zhǎng)度是固定的(例如Y/N標(biāo)志或ISO貨幣代碼等'USD')而使用。它不是更高效,它不節(jié)省空間(沒(méi)有神秘的長(zhǎng)度指示器varchar2,只有一個(gè)空白的填充開(kāi)銷char),并且它不會(huì)阻止任何人輸入更短的值。(如果你輸入'ZZ'你的char(3)貨幣欄,它就會(huì)被存儲(chǔ)為'ZZ '。)它甚至不能與曾經(jīng)依賴它的某些古老版本的Oracle向后兼容,因?yàn)樗鼜膩?lái)沒(méi)有。

傳染病可以傳播,因?yàn)椋ò凑兆罴褜?shí)踐),您可以使用類似的東西錨定變量聲明sales.currency%type。現(xiàn)在你的l_sale_currency變量是一個(gè)秘密char,它會(huì)為更短的值(或'')進(jìn)行無(wú)形填空,即使你已經(jīng)分配給它們兩個(gè),也會(huì)打開(kāi)隱藏在l_sale_currency不相等的錯(cuò)誤的大門(mén)。l_refund_currency'ZZ'

CHAR我確信,在Oracle 6中引入了ANSI兼容性原因。可能有潛在的客戶決定購(gòu)買(mǎi)哪個(gè)數(shù)據(jù)庫(kù)產(chǎn)品,并且ANSI兼容性在他們的核對(duì)表上(或者當(dāng)時(shí)是在那時(shí)),并且CHAR在ANSI標(biāo)準(zhǔn)中定義了空白填充,因此Oracle需要提供它。你不應(yīng)該真正使用它。


查看完整回答
反對(duì) 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 1115 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)