来源:http://flysky0814.itpub.net/post/35477/413779
SQL> create table test_raw (raw_col raw(10));
表已创建。
SQL> insert into test_raw values (hextoraw('ff'));
已创建 1 行。
SQL> insert into test_raw values (hextoraw('0'));
已创建 1 行。
SQL> insert into test_raw values (hextoraw('23fc'));
已创建 1 行。
SQL> insert into test_raw values (hextoraw('fffffffffff'));
已创建 1 行。
SQL> insert into test_raw values (hextoraw('ffffffffffffffffffff'));
已创建 1 行。
SQL> insert into test_raw values (utl_raw.cast_to_raw('051'));
已创建 1 行。
SQL> select raw_col, dump(raw_col, 16) dump_raw from test_raw;
RAW_COL DUMP_RAW
-------------------- -----------------------------------------------
FF Typ=23 Len=1: ff
00 Typ=23 Len=1: 0
23FC Typ=23 Len=2: 23,fc
0FFFFFFFFFFF Typ=23 Len=6: f,ff,ff,ff,ff,ff
FFFFFFFFFFFFFFFFFFFF Typ=23 Len=10: ff,ff,ff,ff,ff,ff,ff,ff,ff,ff
303531 Typ=23 Len=3: 30,35,31
已选择6行。
RAW类型的存储很简单,对比字段的查询结果和DUMP的结果就一目了然了。
需要注意的是,两种转化为RAW的函数之间的差别。当使用HEXTORAW时,会把字符串中数据当作16进制数。而使用UTL_RAW.CAST_TO_RAW时,直接把字符串中每个字符的ASCII码存放到RAW类型的字段中。
---------------------------------------------------
SQL> select rawtohex(sysdate) from dual;
07D70B100A003100
SQL> select dump(sysdate,16) from dual;
Typ=13 Len=8: 7,d7,b,10,a,1,2,0
SQL> select rawtohex(12) from dual;
C10D
SQL> select dump(12,16) from dual;
Typ=2 Len=2: c1,d
SQL> select rawtohex('12') from dual;
3132
SQL> select dump('12',16) from dual;
Typ=96 Len=2: 31,32
可以看出rawtohex()函数参数可为date,number,char等类型,并自动转化为相应16进制数据.
而hextoraw()的参数只能为16进制.虽然最终结果还是用16进制数据表现出来,但在ORACLE内部是存储raw类型,具体内部怎么实现,小弟才舒学浅,就很难判断了!
分享到:
相关推荐
vEncryptedRaw := UTL_RAW.CAST_TO_RAW(vEncrypted); RETURN vEncryptedRaw; END; END; / ``` 通过以上步骤,我们成功地定义了一个可以用于加密和解密的PL/SQL包。此包提供了加密和解密的功能,使得开发者能够在...
- 插入数据时可以使用`HEXTORAW`或`UTL_RAW.CAST_TO_RAW`函数。 - 示例:`INSERT INTO raw_test VALUES (1, HEXTORAW('ff'));` - 使用`HEXTORAW`时,输入的字符串必须为16进制格式;使用`UTL_RAW.CAST_TO_RAW`时...
decrypted_data := UTL_I18N.RAW_TO_CHAR( DBMS_CRYPTO.DECRYPT_AES256( cipher => encrypted_data, key => key, pad => DBMS_CRYPTO.PAD_PKCS5 ), 'AL32UTF8' ); -- decrypted_data现在存储了原文数据 END...
UTL_I18N包中的`UTL_I18N.RAW_TO_CHAR`函数可以将一个字节串转换为字符,配合其他函数可以用来获取汉字的ASCII码,从而转换为拼音。但Oracle默认不支持直接获取拼音首字母,因此通常需要自定义函数来处理。 下面是...
B、提供telnet扩展命令,直接查看性能与语句 C、支持远程进行的直接Kill功能 D、支持SQL直接执行相关请求,并返回结果 E、提供REST外部请求服务功能 [root@fj43 tmp]# ./RunApp.sh /var/tmp/connect.json ...
6. **十进制与十六进制转换**:使用`TO_NUMBER()`和`TO_CHAR()`函数,配合`HEXTORAW()`和`RAWTOHEX()`函数进行不同进制间的转换。 7. **SYS_CONTEXT的使用**:`SYS_CONTEXT`函数用于获取会话级别的上下文信息,如...
6. **十进制与十六进制转换**:Oracle提供了`TO_NUMBER`和`TO_CHAR`函数进行数值格式的转换,而`HEXTORAW`和`RAWTOHEX`用于十六进制字符串与二进制数据间的转换。 7. **SYS_CONTEXT的使用**:`SYS_CONTEXT`函数用于...
**功能说明**:`HEXTORAW`用于将十六进制字符串转换为RAW数据类型,而`RAWTOHEX`则相反,用于将RAW数据类型转换为十六进制字符串。 **HEXTORAW 示例**: ```sql SELECT hextoraw('abcdef') FROM dual; ``` 此查询将...
INSERT INTO table_name (raw_column) VALUES (HEXTORAW('001122334455')); ``` 4. BLOB:BLOB是Binary Large Object的缩写,用于存储大量二进制数据,如图片、视频或文档。在.NET环境中,使用OracleParameter添加...
- **hextoraw/rawtohex**: 十六进制与原始值之间的转换。 - **to_char/to_date/to_number**: 转换为字符、日期、数字。 - **to_multi_byte/to_single_byte**: 多字节与单字节之间的转换。 - **nls_charset_id/nls_...
3. HEXTORAW函数:将十六进制字符串转换为 RAW 类型。 4. RAWTOHEX函数:将 RAW 类型转换为十六进制字符串。 5. ROWIDTOCHAR函数:将 ROWID 转换为字符类型。 6. TO_CHAR函数:将数字、日期类型的数据转换为字符类型...
- 示例:`RAWTOHEX(HEXTORAW('48656c6c6f'))` 返回 `'48656c6c6f'` 4. **ROWIDTOCHAR(s)**:将ROWID类型的`s`转换为CHAR数据类型。 - 示例:`ROWIDTOCHAR(ROWID 'AAAABAAAC')` 返回 `'AAAABAAAC'` 5. **TO_CHAR...
§9.7.1 与用户、角色与权限有关的数据字典 209 §9.7.2 查询数据字典信息 209 第十章 其它一些常见问题及技巧 212 §10.1 一些常见问题 212 §10.1.1 Oracle与2000年问题 212 §10.1.2 如何正确插入日期数据 213 §...
根据提供的Oracle代码片段,我们可以总结出一系列与Oracle数据库操作相关的知识点。这些知识点涵盖了日期处理、时间转换、数据类型转换等方面的重要功能。下面是针对这些代码片段的详细解释: ### 1. 使用`LAST_DAY...
SELECT RAW_TO_HEX(X'ff') FROM dual; ``` 输出结果为“ff”。 #### 45. ROWID_TO_CHAR 将ROWID类型转换为字符类型。例如: ```sql SELECT ROWID, ROWIDTOCHAR(ROWID) FROM scott.emp; ``` 输出结果为ROWID及其字符...
43. `RAWTOHEX`: 将二进制数据转换为十六进制字符串。 44. `ROWIDTOCHAR`: 将ROWID类型转换为字符类型。 45. `TO_CHAR(date, 'format')`: 根据format格式化日期。 46. `TO_DATE(string, 'format')`: 将字符串转换...