`

Oracle Raw,number,varchar2转换

阅读更多

Oracle Raw,number,varchar2...转换 在网络中的计算机之间传输 RAW 数据时,或者使用 Oracle 实用程序将 RAW 数据从一个数据库移到另一个数据库时,Oracle 服务器不执行字符集转换。存储实际列值所需要的字节数大小随每行大小而异,最多为 2,000 字节。可能这样的数据类型在数据库效率上会提高,而且对数据由于字符集的不同而导致的不一致的可能性在这边也排除了。这个字段在实际的用途中好像不多。 raw类型的介绍,在此引用了一下网友的blog: RAW,类似于CHAR,声明方式RAW(L),L为长度,以字节为单位,作为数据库列最大2000,作为变量最大32767字节。 LONG RAW,类似于LONG,作为数据库列最大存储2G字节的数据,作为变量最大32760字节 ============================================================== SQL> create table datatype_test_raw(paddr raw(8)); Table created SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!')); insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!')) ORA-01401: inserted value too large for column SQL> alter table datatype_test_raw modify paddr raw(20); Table altered SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!')); insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw type test!')) ORA-01401: inserted value too large for column SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('This is a raw test!')); 1 row inserted SQL> commit; Commit complete SQL> select * from datatype_test_raw; PADDR ---------------------------------------- 54686973206973206120726177207465737421 SQL> select utl_raw.cast_to_varchar2(paddr) from datatype_test_raw; UTL_RAW.CAST_TO_VARCHAR2(PADDR -------------------------------------------------------------------------------- This is a raw test! SQL> insert into datatype_test_raw(paddr) values(utl_raw.cast_to_raw('中文测试')); 1 row inserted SQL> commit; Commit complete SQL> select utl_raw.cast_to_varchar2(paddr) from datatype_test_raw; UTL_RAW.CAST_TO_VARCHAR2(PADDR -------------------------------------------------------------------------------- This is a raw test! 中文测试: SQL> select paddr, utl_raw.cast_to_varchar2(paddr) from datatype_test_raw; PADDR UTL_RAW.CAST_TO_VARCHAR2(PADDR ---------------------- -------------------------------------------------------------------------------- 54686973206973206120726177207465737421 This is a raw test! D6D0CEC4B2E2CAD4 中文测试 这里用到了两个函数: utl_raw.cast_to_raw([varchar2]);--将varchar2转换为raw类型 utl_raw.cast_to_varchar2([raw]);--将raw转换为varchar2类型这里varchar2的字符集一般是GB2312。 另外: utl_raw包的几个其他的函数用法: utl_raw.cast_from_number([number]); utl_raw.cast_to_number([number]); 位操作: utl_raw.bit_or(); utl_raw.bit_and(); utl_raw.bit_xor(); 另外还有转换函数: hextoraw(); --将对应16进制数转换为raw 当使用HEXTORAW时,会把字符串中数据当作16进制数。而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中


 

 

分享到:
评论

相关推荐

    Oracle与DB2数据类型分类对应说明

    但是,Oracle 中的 VARCHAR2(n)类型仅用于存放较小的字符串,因此,在实际应用中,我们需要根据实际情况选择合适的字符串类型。例如,在 DB2/400 中,我们可以使用定长的 CHAR(N)类型与 Oracle 的 VARCHAR2(n)...

    oracle字段类型转换的处理

    Oracle数据库支持多种数据类型,包括数值类型(如NUMBER、INTEGER、BINARY_FLOAT等)、字符类型(如VARCHAR2、CHAR、CLOB等)、日期时间类型(如DATE、TIMESTAMP等)以及二进制类型(如RAW、BLOB等)。在实际应用中...

    ORACLE 自动类型转换

    Oracle数据库支持多种数据类型,如数值型(NUMBER、INTEGER、BINARY_INTEGER等)、字符型(VARCHAR2、CHAR、CLOB等)、日期时间型(DATE、TIMESTAMP等)以及二进制数据类型(RAW、BLOB等)。在某些情况下,当不同...

    Oracle与DB2数据类型的对应说明书

    Oracle中的VARCHAR2类型可以对应DB2/400中的CHAR类型和VARCHAR类型。当n时,可以使用DB2/400中的CHAR类型或VARCHAR类型。当n>4000时,可以使用DB2/400中的VARCHARLONG类型或CLOB类型。 三、NUMBER类型 Oracle中的...

    oracle加密解密

    CREATE OR REPLACE FUNCTION DECRYPT(P_IN VARCHAR2, P_KEY RAW) RETURN NUMBER IS V_IN VARCHAR2(2000); BEGIN DBMS_OBFUSCATION_TOOLKIT.DES_DECRYPT(INPUT_STRING => P_IN, KEY_STRING => P_KEY, DECRYPTED_...

    oracle汉字转拼音

    PROCEDURE 拼音截取 (p_hanzi IN VARCHAR2, p_start IN NUMBER, p_length IN NUMBER, p_sub_pinyin OUT VARCHAR2); END 汉字转拼音包; / CREATE OR REPLACE PACKAGE BODY 汉字转拼音包 AS PROCEDURE 获取全拼 (p_...

    oracle-java数据类型1

    - `VARCHAR2` 类型在 Oracle 中也有扩展为 `oracle.sql.CHAR` - `BFILE` 类型是 Oracle 特有的大对象类型,用于存储外部文件,没有对应的 JDBC 类型,但可以通过 `oracle.jdbc.OracleTypes.BFILE` 访问 - `ROWID`...

    Oracle的表结构转成Mysql的表结构

    i_number_default_type IN VARCHAR2 := 'DECIMAL', i_auto_incretment_column_name IN VARCHAR2 := '%ID' ) RETURN CLOB IS -- 变量声明 Result CLOB; cnt NUMBER; data_type VARCHAR2(128); column_str ...

    mssql2oracle类型对比

    - `nvarchar`: 可变长度的Unicode字符串,等同于Oracle中的`VARCHAR2`类型。 - `text`: 大文本数据类型,等同于Oracle中的`LONG`类型。 - `ntext`: Unicode大文本数据类型,Oracle中没有直接对应的类型,可以使用...

    DB2和ORACLE 应用开发差异比较

    - Oracle的`CHAR(n)`和`VARCHAR2(n)`对应DB2的`CHAR(n)`和`VARCHAR(n)`,但DB2的`VARCHAR(n)`最大长度为32762,Oracle为2000。 - Oracle的`LONG`类型在DB2中可以用`LONG VARCHAR(n)`或`CLOB(2GB)`替代。 - `...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).pdf

    EMP_NO VARCHAR2(20), -- 用户编号 EMP_DESCLONG, -- 用户简历 USED_DATE DATE, -- 注册日期 EMP_IC_MAC RAW(50), -- 用户IC卡的MAC号 EMP_ADMIN_FLAG CHAR(1), -- 管理员标志 EMP_PICTURE BLOB -- 用户图像 )...

    mysql与oracle数据类型对应关系.pdf

    - ENUM:预定义的一组值,Oracle没有直接对应,可用VARCHAR2或NUMBER代替。 - FLOAT:浮点数,Oracle的FLOAT(24)等同。 - INT和INTEGER:整数,Oracle的NUMBER(10,0)。 - LONGBLOB和LONGTEXT:存储大型对象,...

    汉字转全拼或首字母Oracle存储过程

    TYPE t_pinyin_dict IS TABLE OF VARCHAR2(10) INDEX BY PLS_INTEGER; g_pinyin_dict t_pinyin_dict; -- 初始化字典表 PROCEDURE init_dict IS BEGIN FOR i IN 16000..65535 LOOP g_pinyin_dict(i) := ...;...

    Oracle与.Net 数据类型映射

    2. **字符串类型**:string对应Oracle的VARCHAR2或CHAR,DateTimeOffset对应TIMESTAMP WITH TIME ZONE。 3. **日期/时间类型**:DateTime对应Oracle的DATE,DateTimeOffset对应TIMESTAMP WITH TIME ZONE,TimeSpan...

    Oracle与DB2数据类型的分类对应说明分享.pdf

    - Oracle 的 `VARCHAR2(n)` 类型对应 DB2/400 的 `CHAR(n)` 或 `VARCHAR(n)`,但长度限制不同。对于小于等于32766个字符的情况,使用 DB2/400 的 `CHAR` 或 `VARCHAR`;超过此长度,Oracle 的 `LONG` 类型可以对应 ...

    oracle基本数据类型

    Oracle 中有多种字符类型,包括 char、varchar、varchar2、long 等。 * char(n):定长字符串,最大长度为 2000 字节。char 类型的字符串长度是固定的,可以指定长度,否则默认为 1 字节长。 * varchar(n):可变长...

    mysql与Oracle数据类型比较.pdf

    - `ENUM`在Oracle中无直接对应类型,通常转换为`VARCHAR2`或`NUMBER`。 - `SET`在Oracle中通常转换为`VARCHAR2`,因为它可以存储一组值。 5. **二进制类型**: - MySQL的`BIT`在Oracle中转换为`RAW`,用于存储二...

    DB2和ORACLE_应用开发差异比较

    - **字符类型**:Oracle的`CHAR`和`VARCHAR2`与DB2的`CHAR`和`VARCHAR`类似,但长度限制不同。 - **数值类型**:Oracle的`NUMBER`类型根据精度和小数位数的不同,可以映射到DB2的`SMALLINT`、`INTEGER`、`BIGINT`、`...

    Oracle实现MD5加密

    FUNCTION FN_CheckUser(P_UserName_In VARCHAR2, P_Password_In VARCHAR2) RETURN NUMBER; END; / ``` 接着,你需要创建该包的体,实现具体的加密和验证逻辑。这种做法特别适用于需要频繁执行MD5加密操作的场景,...

    北大青鸟Oracle ppt2

    字符数据类型包括CHAR(固定长度)、VARCHAR2(推荐使用,可变长度)和LONG(用于大段文本)。数值数据类型如NUMBER支持整数、浮点数和实数,精度可达38位。日期时间数据类型包括DATE(存储日期和时间,精确到秒)和...

Global site tag (gtag.js) - Google Analytics