ORACLE中一個字元佔多少位元組?(中文儲存)
今天在oracle 10g下測試了下varchar2與nvarchar2這兩種型別,網上有很多關於這兩種型別的區別的帖子,我還是自己測試了下。
varchar2(size type),size最大為4000,type可為char或者byte,預設是byte。
varchar2最多存放4000位元組的資料,不管type是char還是byte。所以如果你設定varchar2(4000 char),你可以存入4000個字母,但是不能存入4000個漢字。如果資料庫字符集編碼是GBK,那麼varchar2最多能存放2000個漢字,如果字符集編碼是UTF-8,那麼則只能最多存放1333個漢字了。
nvarchar2(size),size最大值為2000,單位是字元,而且不管是漢字還是字母,每個字元的長度都是2個位元組。所以nvarchar2型別的資料最多能存放2000個漢字,也最多隻能存放2000個字母。並且nvarchar2不同於varchar2,他不受資料庫字符集的影響。
另外如果我們把A1,A2都設為varchar2(4000),並且這兩個欄位的內容長度都超過了2000位元組,那麼使用select A1||A2 from table這樣的語句時,因為結果超過了4000位元組,所以會報錯。
相關推薦
ORACLE中一個字元佔多少位元組?(中文儲存)
今天在oracle 10g下測試了下varchar2與nvarchar2這兩種型別,網上有很多關於這兩種型別的區別的帖子,我還是自己測試了下。 varchar2(size type),size最大為4000,type可為char或者byte,預設是byte。 varchar2最多存放4000位元組的資料,不
java中一個字元佔多少位元組
原 https://blog.csdn.net/m0_37479246/article/details/79492828 位元組:byte:用來計量儲存容量的一種計量單位;位:bit 一個位元組等於8位 1byte = 8bit char佔用的是2個位元組 16位,所以一個cha
Java語言中一個字元佔幾個位元組?
要區分清楚內碼(internal encoding)和外碼(external encoding)就好了。 內碼是程式內部使用的字元編碼,特別是某種語言實現其char或String型別在記憶體裡用的內部編碼; 外碼是程式與外部互動時外部使用的字元編碼。“外部”相對“內部”而言;不是char或Str
ORACLE中的sysdate時間函式(擴充套件dual)
SYSDATE函式可以得到目前系統的時間, 例如:select sysdate from dual; SYSDATE函式常用的格式舉例如下: --加法相關 select sysdate,add_months(sysdate,12) from dual;
部分opencv中的GPU加速函式(中文翻譯)
由於專案需要,翻譯了一部分可以用於我現在專案的opencv函式,記錄於此,原始英文文件來自於http://blog.csdn.net/mtt_sky/article/details/42607839。 getCudaEnableDeviceCount:返回已安裝CUDA裝置的數量;
解決文字框中輸入字元限制---精確控制中文佔兩個位元組,英文佔一個位元組~
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script
一個字元佔幾個位元組
ASCII碼: 一個英文字母(不分大小寫)佔一個位元組的空間,一箇中文漢字佔兩個位元組的空間。一個二進位制數字序列,在計算機中作為一個數字單元,一般為8位二進位制數,換算為十進位制。最小值0,最大值255。如一個ASCII碼就是一個位元組。 UTF-8編碼: 一個英文字元等於一個位元
獲取字串中一個字元出現的索引位置( indexOf 和 lastIndexOf )
Java中字串中子串的索引位置查詢的方法: 1、int indexOf(String str) :返回第一次出現的指定子字串在此字串中的索引位置。 2、int indexOf(String str, int startIndex):從指定的索引位置開始,返回第一次出現指定子字
mysql和oracle的一個漢字佔幾個字元
以前一直使用oracle11g,一個漢字佔3個位元組,所以在操作mysql時也一直這樣分配長度。 今天測試了下發現不對了 可以看到第一個的長度確實是15,但是第二個為什麼是5? 在網上找到資料:c
java中判斷字串真實長度(中文2個字元,英文1個字元)的方法
public class Char_cn { public static void main(String[] args) { // TODO Auto-generated method stub String haha = "呵呵呵呵abcd";
詳解Oracle中NLS_LANG變數的使用(關於oracle客戶端中文亂碼的問題)
作業系統環境變數針對語言項設定有幾個,我經常設定的是這兩個LANG和NLS_LANG。LANG是針對Linux系統的語言、地區、字符集的設定,對linux下的應用程式有效,如date;NLS_LANG是針對Oracle語言、地區、字符集的設定,對oracle中的工具有
java裡面一個字元佔幾個位元組?
java的字元型別 char 佔用2個直接,因為他是Unicode編碼 Java簡單資料型別 簡單型別 大小 範圍/精度 float 4 位元組 32位IEEE 754單精度 double 8 位元組 64位IEEE 754雙精度 byte 1位元組 -128到127
關於一個字元佔多少個位元組的問題
首先解釋為什麼說char佔兩個位元組 Java code ? 1 2 3 4 5 6 public static void main(String[] args) { System.out.printf("The max value of ty
Oracle中Merge into用法總結 (轉載)
字符 存在 sin 刪除 ron mic 但是 多個 前段時間 Oracle中Merge into用法總結 (出處:http://www.cnblogs.com/dongsheng/p/4384754.html) 起因: 前段時間,因為涉及到一張表的大數據操作,要同時
Oracle 中MERGE語句的用法(轉載)
同時 sdn ble reat nth merge type href detail 原文章出處(http://blog.csdn.net/lichkui/article/details/4306299) MERGE語句是Oracle9i新增的語法,用來合並UPDATE和I
5.oracle中一個字段中存儲'a','b'與'a'與a的寫法,存儲過程中與之對應
存儲 中一 pan 過程 col -- 寫法 style logs select ‘‘‘a‘‘,‘‘b‘‘‘ from dual; --‘a‘,‘b‘ select ‘‘‘a‘‘‘ from dual; --‘a‘ select ‘a‘ from dual; --a
Oracle中PL/SQL之例外(異常)的使用
1、系統定義異常: 異常是程式設計語言提供的一種功能,用來增強程式的健壯性和容錯性。 no_data_fount (沒有找到資料) too_many_rows (select ... into
P68——編寫一個程式,要求提示輸入一個ASCII碼值(如66),然後列印輸入的字元
錯誤程式碼如下: 錯在定義了錯誤的輸入物件型別,使用者輸入時也弄錯了輸入型別, 更改後正確程式碼如下: #include <stdio.h> int main(void) { int a; printf("please enter a ASCII ma:");
ORA——00600錯誤的原因是:(Oracle中對clob型別欄位的操作)
ORA——00600錯誤的原因是:(Oracle中對clob型別欄位的操作) 改正的程式碼如下: //3.2生成資料插入語句 (增加的方式) StringBuilder insertSql = new StringBuilder(“INSERT INTO “); insertSql.a
用c++求一個二維整數陣列中最大子陣列之和(結對作業)
題目:返回一個二維整數陣列中最大子陣列之和。 要求: 1.輸入一個二維整形陣列,數組裡有正有負。 2.二維陣列中連續的一個子矩陣 組成一個數組,每個子陣列都有一個和。 3.求所有子陣列的和的最大值。 結對程式設計要求 兩人結對完成程式設計任務。 一人負責程式分析,程式碼程式設計。 一