Oracle 字符串格式
首先介绍:char(N) 和Varchar2(N)格式
create table TEST_CHAR
(
CHAR_COL CHAR(10),
VARCHAR_COL VARCHAR2(10),
);
SQL> insert into test_char(char_col, varchar_col ) values ('123','123');
SQL> commit;
SQL> select char_col,dump(char_col,16) as d_char_col , varchar_col,dump(varchar_col,16) as d_varchar_col from test_char;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
---------- -------------------------------------------------------------------------------- ----------- --------------------------------------------------------------------------------
123 Typ=96 Len=10: 31,32,33,20,20,20,20,20,20,20 123 Typ=1 Len=3: 31,32,33
可以看到:char 类型,若是长度不够,则自动在后面填补空格;varchar类型,则只是存储‘123’。
SQL> select to_number('31','xx') from dual;
TO_NUMBER('31','XX')
--------------------
49
----首先将16进制的数据转化为10进制。
SQL> select chr(49) from dual;
CHR(49)
-------
1
取得了 49 对应的 字符。
总结如下:oracle 存储字符,是将字符转化为对应的ASCII码进行相应的存储。
SQL> insert into test_char(char_col , varchar_col) values( '神奇的国家','神奇的国家');
SQL> commit;
Commit complete
SQL> select char_col,dump(char_col,16) as d_char_col , varchar_col,dump(varchar_col,16) as d_varchar_col from test_char;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
---------- -------------------------------------------------------------------------------- ----------- --------------------------------------------------------------------------------
123 Typ=96 Len=10: 31,32,33,20,20,20,20,20,20,20 123 Typ=1 Len=3: 31,32,33
神奇的国家 Typ=96 Len=10: c9,f1,c6,e6,b5,c4,b9,fa,bc,d2 神奇的国家 Typ=1 Len=10: c9,f1,c6,e6,b5,c4,b9,fa,bc,d2
可以看到中文字符 是按两个字节进行存储的。
接下来进行介绍的是:NChar(N),NVarchar2(N)。
create table TEST_NCHAR
(
CHAR_COL NCHAR(10),
VARCHAR_COL NVARCHAR2(10)
);
SQL> insert into test_nchar (char_col , VARCHAR_COL) values('123','123');
1 row inserted
SQL> commit;
Commit complete
SQL> select char_col , dump(char_col , 16) as d_char_col , VARCHAR_COL , dump(VARCHAR_COL, 16) as d_VARCHAR_COL from test_nchar;
CHAR_COL D_CHAR_COL VARCHAR_COL D_VARCHAR_COL
-------------------- -------------------------------------------------------------------------------- -------------------- --------------------------------------------------------------------------------
123 Typ=96 Len=20: 0,31,0,32,0,33,0,20,0,20,0,20,0,20,0,20,0,20,0,20 123 Typ=1 Len=6: 0,31,0,32,0,33
可以清楚的看到,同时插入了字符串‘123’,但是NChar的为 0,31,0,32,0,33,就是说:高位用0补充,补足两个字节。
总结如下:NChar,Nvarchar2 存储的所有字符都是按两个字节进行存储。
上述四种类型的共同点是:英文字符和数字都是按照ASCII码进行存储。
可以查看oracle的字符集:
SQL> select * from sys.props$ where name like '%CHARACTERSET%' ;
NAME VALUE$ COMMENT$
------------------------------ -------------------------------------------------------------------------------- --------------------------------------------------------------------------------
NLS_CHARACTERSET ZHS16GBK Character set
NLS_NCHAR_CHARACTERSET AL16UTF16 NCHAR Character set
分享到:
相关推荐
Oracle 基本数据类型 Oracle 中有多种基本数据类型,包括字符类型、数字类型、日期类型、二进制类型等。了解这些数据类型的特点和使用场景,对于数据库设计和开发至关重要。本文将详细介绍 Oracle 中的基本数据类型...
### Oracle基本数据类型详解 #### 一、概述 Oracle 数据库提供了多种数据类型来满足不同的需求,这些数据类型包括字符型、数值型、日期时间型、大对象类型等。了解这些基本数据类型对于正确设计数据库表结构至关...
在Oracle数据库中,处理字符串是常见的操作之一,尤其是在数据分析或数据清洗的过程中。有时我们需要将一个长字符串分割成多个部分,以便进行进一步的操作。Oracle提供了一些内置的函数来帮助我们完成这个任务。本篇...
2. **Varchar2(n)**:这是Oracle中最常用的可变长字符串数据类型,长度范围为1到4000字节。Varchar2会根据实际数据长度动态调整空间,节省存储空间。与Char相比,Varchar2在空间上更高效,但可能影响查询速度。如果...
- `bit`在SQL Server中没有直接对应的Oracle数据类型,但可以近似用单字节的`NUMBER(1)`表示。 - `datetime`和`smalldatetime`在SQL Server中对应Oracle的`DATE`,表示日期和时间。 - `decimal`和`numeric`在SQL ...
它提供了一个OracleDbType枚举,该枚举定义了所有Oracle数据类型到.NET数据类型的映射。例如,OracleDbType.Number对应.NET的decimal,OracleDbType.Varchar2对应.NET的string,OracleDbType.Date对应.NET的DateTime...
总结来说,Oracle 和 SQL Server 数据类型在很多方面有相似之处,如字符串、数字、日期/时间、二进制数据类型,但在细节上有所差异,如长度限制、Unicode 支持和特定用途的类型(如 Oracle 的 Bfile 和 SQL Server ...
在Oracle数据库中,我们经常需要处理各种数据类型之间的转换。尤其是在处理字符型数据时,有时我们需要判断一个字符串是否能够被成功地转换成数字类型。与SQL Server提供了`IS_NUMBER`这样的内置函数不同,Oracle并...
总的来说,Oracle的JSON处理能力强大且灵活,不仅能够满足基本的字符串操作,还能支持复杂的数据查询和转换,使得在关系型数据库中存储和处理JSON数据变得轻松易行。通过学习和实践这些功能,开发者可以更好地适应...
使用`TO_DATE()`函数可以将字符串类型的数据转换为日期类型。 **示例1:** ```sql SELECT TO_DATE('20111101', 'yyyyMMdd') FROM DUAL; ``` **查询结果:**2011-11-1 **说明:**这里将一个8位的日期字符串转换成了...
Oracle 连接字符串代码可以分为多种类型,包括 ODBC 连接、OLE DB 连接和 Oracle.DataAccess.Client.OracleConnection 连接等。 1. ODBC 连接 新版本 Driver={Microsoft ODBC for Oracle};Server=myServerAddress;...
然而,当你尝试向CLOB字段插入数据时,如果超过了Oracle规定的最大限制,就会遇到“ORA-01704: 文字字符串过长”的错误。这个错误通常意味着你试图插入的字符串超过了Oracle数据库允许的最大长度,对于VARCHAR2类型...
在本文中,我们将对 Oracle 和 DB2 的数据类型进行分类和对应说明,主要包括数值类型、日期时间类型、字符串类型、LOB 类型和 ROWID 类型等。 一、数值类型 Oracle 中的 NUMBER 类型可以对应 DB2/400 中的多种类型...
通过以上步骤,可以在.NET环境中成功处理和传递长度超过4000个字符的字符串至Oracle数据库,并通过存储过程读取这些数据。这种方式不仅能够解决字符串长度限制的问题,还能够提高应用程序的灵活性和扩展性。
### Oracle基本数据类型存储格式浅析 —— 字符类型 #### 概述 在Oracle数据库中,字符类型是非常常见的数据类型之一,它主要用于存储文本信息。本文将详细探讨Oracle数据库中几种基本字符类型的存储格式,包括`...
Oracle数据库中常用的数据类型主要包括字符类型、数字类型、日期时间类型以及LOB类型等,每一种数据类型适用于特定的数据存储需求。 1. 字符类型 - CHAR类型是固定长度的,用于存储定长的字符串,最多2000个字符。...
在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...