當前位置:首頁 » 數據倉庫 » 資料庫varcharvarchar2
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫varcharvarchar2

發布時間: 2022-05-14 02:33:07

A. oracle varchar 和varchar2的區別

varchar2是oracle提供的獨特的數據類型
oracle保證在任何版本中該數據類型向上和向下兼容
但不保證varchar,這是因為varchar是標准sql提供的數據類型
有可能隨著sql標準的變化而改變
不過ocacle以後的版本就不支持varchar類型,如果想新版本的資料庫兼容就不要用varchar,如果想和其它資料庫兼容就不要用varchar2
另外區別(重點):
varchar2存放空字元串'',和null,都統一用null來存放到資料庫中,直接查詢''是查詢不到東西的,這是跟其他資料庫的主要區別。
海楓科技

B. PL SQL中 varchar 和 varchar2有什麼區別

1.varchar2把所有字元都占兩位元組處理(一般情況下),varchar只對漢字和全形等字元占兩位元組,數字,英文字元等都是一個位元組;
2.VARCHAR2把空串等同於null處理,而varchar仍按照空串處理;
3.VARCHAR2字元要用幾個位元組存儲,要看資料庫使用的字元集,
大部分情況下建議使用varchar2類型,可以保證更好的兼容性。

C. 在oracle資料庫中為什麼推薦使用varchar2類型而不推薦使用char和varchar

例如:
v_char
varchar2(10);
c_char
char(10);
varchar2:對於定義長度的變數或表中的欄位的長度可變,就是定義varchar2(10),你只有一個字元時,變數或表中的欄位裡面就只保存了1個字元,不補空格,v_char='A';length(v_char)=1。
c_char/varchar:是定長數據:賦值c_char='A',實際上是:c_char='A
',length(c_char)=10。
如果作比較的話如果使用c_char/varchar,你會比較痛苦的
if
c_char=v_char
then
這樣的語句出來的肯定是:false否(else)裡面的,要對c_char實行rtrim才是:真:if
rtrim(c_char)=v_char
then
這才返回:ture

D. VARCHAR2與VARCHAR的區別

二者的區別如下:
1,varchar2把所有字元都占兩位元組處理(一般情況下),varchar只對漢字和全形等字元占兩位元組,數字,英文字元等都是一個位元組;

2,VARCHAR2把空串等同於null處理,而varchar仍按照空串處理;
3,VARCHAR2字元要用幾個位元組存儲,要看資料庫使用的字元集。

大部分情況下建議使用varchar2類型,可以保證更好的兼容性。

E. oracle中欄位類型varchar2最大長度是多少

1、varchar2有兩個最大長度:一個是在欄位類型4000;一個是在PL/SQL中變數類型32767。這是一個比較容易出錯的地方。

2、因為在函數中可以聲明長度超過4000的字元串變數,並且將它作為返回值,這里是不會提示編譯錯誤的。這個函數平時都可以正常執行,而一旦這個字元串長度超過4000,函數執行就會出錯。

3、在pl/sql中,建個函數,測試varchar2長度,可以看到函數是成功的;

(5)資料庫varcharvarchar2擴展閱讀

1、varchar2是oracle提供的獨有的數據類型,varchar2是存放可變長度的字元串,最大長度是4000.

2、在oracle中 varchar2的最大長度為4000 bytes,即varchar2(4000),最多能儲存2000個漢字或4000位的數字字母。當儲存值超過時可以使用clob(Character Large Object)或blob(Binary Large Object)類型。

3、varchar、varchar2、nvarchar2區別

1)varchar(50) 表示該欄位類型為varchar2類型,長度為50,可以存單位元組字元50個,如字母、數字等,可以存儲雙位元組字元25個,如漢字。不同的是,若輸入的不足,則以空格填充。

2)varchar2(50) 表示該欄位類型為varchar2類型,長度為50,可以存單位元組字元50個,如字母、數字等,可以存儲雙位元組字元25個,如漢字。

3)nvarchar2(50)表示該欄位類型為nvarchar2,長度為50,不論英文,數字,中文都能存50個。

參考資料

ORACLE資料庫-網路

F. char,varchar和varchar2的區別

char:
使用指定長度的固定長度表示的字元串;比如char(8),則資料庫會使用固定的8個位元組來存儲數據
,不足8為的字元串在其後補空字元;
varchar
在oracle中varchar跟char是一個類型;sqlserver中varchar相當於oracle中的varchar2
varchar2
用實際字元數+2個位元組來存儲的變長字元串;比如一個欄位定義為varchar(10),而實際存儲的內容為
『A』,則資料庫會用3個位元組來存儲該字元串,其中前兩個位元組用來存儲字元的長度;
在資料庫中的欄位,由於一個欄位大小不能超過一個block的長度,所以varchar和char都是最大為
8000個位元組,由於可能會存儲漢字,也就是一個字元用2個位元組來存儲,所以欄位中最大定義為varchar
(4000),而在plsql中,這個大小的限制變為32000左右,這是因為表示其大小的位元組只有兩個。

G. oracle中varchar,varchar2,nvarchar,nvarchar2有什麼區別

一、varchar和varchar2之間的區別

1、在一般情況下,varchar2把所有字元都占兩位元組處理,而varchar只對漢字和全形等字元占兩位元組,數字,英文字元等都是一個位元組。

2、varchar2把空串等同於null處理,而varchar仍按照空串處理。

3、varchar2字元要用幾個位元組存儲,要看資料庫使用的字元集,比如GBK,漢字就會占兩個位元組,英文1個如果是UTF-8,漢字一般佔3個位元組,英文還是1個。

二、nvarchar和nvarchar2的區別

1、nvarchar中字元為中文則一般按2個位元組計算,英文數字等按照一個自己計算。

2、nvarchar2中所有字元均按照2個位元組計算。

3、nvarchar2雖然更占空間,但是它有更好的兼容性,所有推薦使用。

(7)資料庫varcharvarchar2擴展閱讀

Oracle資料庫

Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。

可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的、適應高吞吐量的資料庫解決方案。

H. 在oracle中varchar和varchar2有什麼區別

區別點:

  • varchar只對漢字和全形等字元占兩位元組,數字,英文字元等都是一個位元組。

  • varchar2把空串等同於null處理,而varchar仍按照空串處理。

  • varchar2把所有字元都占兩位元組處理(一般情況下),並且字元要用幾個位元組存儲,要看資料庫使用的字元集。

I. char varchar varchar2 的區別

1、處理速度

char 和相同長度的varchar處理速度差不多。varchar的長度不會影響處理速度;

2、string

O/R Mapping中對應實體的屬性類型一般是以string居多,用char[]的非常少,所以如果按mapping的合理性來說,可變長度的類型更加吻合;varchar的存放和string是一樣原理的,即length {block}這種方式,所以varchar的長度和它實際佔用空間是無關的;

3、查詢成本

char和varchar的比較成本是一樣的,現在關鍵就看它們的索引查找的成本了,因為查找策略都一樣,因此應該比較誰佔用空間小。

例:

在存放相同數量的字元情況下,如果數量小,那麼char佔用長度是小於varchar的,但如果數量稍大,則varchar完全可能小於char,而且要看實際填充數值的充實度,比如說varchar(3)和char(3),那麼理論上應該是char快了,但如果是char(10)和varchar(10),充實度只有30%的情況下,理論上就應該是varchar快了。

因為varchar需要額外空間存放塊長度,所以只要length(1-fillfactor)大於這個存放空間(好像是2位元組),那麼它就會比相同長度的char快了。

(9)資料庫varcharvarchar2擴展閱讀:

1、如果數據量非常大,又能100%確定長度且保存只是ansi字元,那麼char;

2、能確定長度又不一定是ansi字元或者,那麼用nchar;

3、不確定長度,要查詢且希望利用索引的話,用nvarchar類型吧,將它們設到400;

4、不查詢的話沒什麼好說的,用nvarchar(4000);

5、性格豪爽的可以只用3和4,偶爾用用1,畢竟這是一種額外說明,等於告訴別人說,我一定需要長度為X位的數據。

J. Oracle資料庫中的varchar2類型

varchar2(50)
表示該欄位類型為varchar2類型,長度為50,可以存單位元組字元50個,如字母、數字等,可以存儲雙位元組字元25個,如漢字。
varchar2是Oracle中特有的一種資料庫類型,與varchar的區別在於
varchar
存貯為定長
varchar2
存貯為不定長。
即:如果定義了一個欄位為varchar(10),那麼存貯到這個欄位的值,不管有沒有10個字元,都存貯為10個字元長度,不足的部份補足空格。而如果定義為varchar2(10),那麼按實際值來存貯,即欄位值有多長存貯為多長,不補足空格。這樣,在進行欄位值的比較時,varchar2顯然比
varchar欄位簡單且不易出錯。另外,在進行存貯時,varchar2
也比varchar節約存貯空間。因此建議用varchar2來代替varchar類型。除非你能確定這個欄位存貯內容總是那麼長,那麼varchar欄位也是可以用的。
varchar2的最大長度是4000