`

Oracle rawtohex hextoraw

阅读更多
Oracle   8.1.7 

SQL>   ed 
已写入文件   afiedt.buf 

    1     declare 
    2         a   varchar2(100); 
    3     begin 
    4         select   rawtohex( 'aaaa ')   into   a   from   dual; 
    5         dbms_output.put_line(a); 
    6*   end; 
SQL>   / 
61616161                           --结果正确! 

PL/SQL   过程已成功完成。 

SQL>   ed 
已写入文件   afiedt.buf 

    1     declare 
    2         a   varchar2(100); 
    3     begin 
    4         a:=rawtohex( 'aaaa '); 
    5         dbms_output.put_line(a); 
    6*   end; 
SQL>   / 
AAAA                                       --结果显然错误! 

PL/SQL   过程已成功完成。 

 

我估计是oracle内部类型转换的问题 

这样可以 
11:32:36   SQL>   select   to_char(   rawtohex( 'aaaa '))   from   dual; 

TO_CHAR( 
-------- 
61616161 

但这样就不行了 
11:32:22   SQL>   declare 
11:32:35       2     a   varchar2(100); 
11:32:35       3     begin 
11:32:35       4     a:=to_char(   rawtohex( 'aaaa ')); 
11:32:35       5     dbms_output.put_line(a); 
11:32:35       6     end; 
11:32:35       7     / 
declare 
* 
ERROR   位于第1行: 
ORA-06550:   第   4   行,   第   4   列: 
PLS-00307:   有太多的   'TO_CHAR '   说明与此次调用相匹配 
ORA-06550:   第   4   行,   第   1   列: 
PL/SQL:   Statement   ignored 

 

RAWTOHEX   is   a   SQL   function,   as   opposed   to   a   PL/SQL   function,   and   must   be   used   in   a   SQL   statement.   SQL   has   no   concept   of   an   assignment   opperator,   :=.   

So   change   
l_strng   :=   RAWTOHEX........   
to   
SELECT   RAWTOHEX(p_string)   INTO   l_string   FROM   dual;   

 

RAWTOHEX   函数确实是SQL函数,我经过了多次测试,得到的结果与你相同,按说rawtohex既然为sql函数,执行   a:=rawtohex( 'aaaa ')时就应该报错,至于oracle为什么不报错,我也说不清楚,也许真的有两个版本。总之你知道就行了。


似乎a:=rawtohex(x)大致相当于select   rawtohex(hextoraw(x))   into   a 

 

HEXTORAW
语法:  HEXTORAW(string)
功能: 将由string表示的二进制数值转换为一个RAW数值. String应该包含一个十六进制的数值. String中的每两个字符表示了结果RAW中的一个字节..HEXTORAW和RAWTOHEX为相反的两个函数.
使用位置: 过程性语言和SQL语句。
 
RAWTOHEX
语法: RAWTOHEX(rawvalue)
功能:  将RAW类数值rawvalue转换为一个相应的十六进制表示的字符串. rawvalue中的每个字节都被转换为一个双字节的字符串. RAWTOHEX和HEXTORAW是两个相反的函数.
使用位置: 过程性语言和SQL语句。
 
分享到:
评论

相关推荐

    获取top前10个Oracle的进程(支持多实例)

    A、获取top前10个Oracle的进程,并打印出(根据实际进程情况列出 R/S 状态) B、对这些进行进行PS检查资源占有情况,并确定是那个数据库实例的进程 C、根据当前目录下的connect.json配置数据库连接数据库访问,打印...

    oracle函数大全

    例如,可以通过HEXTORAW和RAWTOHEX进行转换: ```sql SELECT RAWTOHEX(HEXTORAW('FF')) FROM dual; -- 将十六进制的'FF'转换为二进制表示 ``` Oracle函数大全涉及的知识点非常广泛,上述只是部分函数的介绍。为了...

    富士通内部培训ORACLE资料

    6. **十进制与十六进制转换**:Oracle提供了`TO_NUMBER`和`TO_CHAR`函数进行数值格式的转换,而`HEXTORAW`和`RAWTOHEX`用于十六进制字符串与二进制数据间的转换。 7. **SYS_CONTEXT的使用**:`SYS_CONTEXT`函数用于...

    Oracle关键字用法整合

    **功能说明**:`HEXTORAW`用于将十六进制字符串转换为RAW数据类型,而`RAWTOHEX`则相反,用于将RAW数据类型转换为十六进制字符串。 **HEXTORAW 示例**: ```sql SELECT hextoraw('abcdef') FROM dual; ``` 此查询将...

    DBA成长之路(ORACLE)

    ### DBA成长之路(ORACLE) #### 数据文件 ... - **RAWTOHEX**:将RAW数据转换为十六进制字符串。 通过以上内容的学习,DBA可以更好地理解Oracle数据库的核心概念和技术,从而更有效地管理和维护数据库系统。

    oracle系统内置函数大全

    4. RAWTOHEX函数:将 RAW 类型转换为十六进制字符串。 5. ROWIDTOCHAR函数:将 ROWID 转换为字符类型。 6. TO_CHAR函数:将数字、日期类型的数据转换为字符类型。 7. TO_DATE函数:将字符类型的数据转换为日期类型。...

    oracle代码包括查询,子查询,,,

    `HEXTORAW`函数用于将十六进制字符串转换为二进制数据,而`RAWTOHEX`则执行相反的操作,即将二进制数据转换为十六进制字符串。 ### 10. 使用`ROWIDTOCHAR`函数将ROWID转换为字符串 ```sql SELECT ROWID, ...

    Oracle函数大全.pdf

    - **hextoraw/rawtohex**: 十六进制与原始值之间的转换。 - **to_char/to_date/to_number**: 转换为字符、日期、数字。 - **to_multi_byte/to_single_byte**: 多字节与单字节之间的转换。 - **nls_charset_id/nls_...

    oracle之常用faq.doc

    6. **十进制与十六进制转换**:Oracle提供了`TO_NUMBER`和`TO_CHAR`函数进行数字与字符串的转换,同时,可以使用`HEXTORAW`和`RAWTOHEX`处理十六进制数据。 三、SYS_CONTEXT与日期函数 7. **SYS_CONTEXT用法**:`...

    oracle常用函数

    ### HEXTORAW/RAWTOHEX函数 - **HEXTORAW**: 十六进制转二进制。 - **RAWTOHEX**: 二进制转十六进制。 - 示例:`SELECT HEXTORAW('13'), RAWTOHEX(19) FROM dual;` ### USERENV函数 - **USERENV**: 获取当前...

    Oracle函数大全

    - `RAWTOHEX` 和 `HEXTORAW`:在十六进制字符串和RAW类型之间转换。 5. **条件判断函数**: - `CASE`:根据条件返回不同的值。 - `DECODE`:类似IF-THEN-ELSE的简写形式。 6. **聚合函数**: - `COUNT`:计算...

    Oracle8i_9i数据库基础

    第一部分 Oracle SQL*PLUS基础 23 第一章 Oracle数据库基础 23 §1.1 理解关系数据库系统(RDBMS) 23 §1.1.1 关系模型 23 §1.1.2 Codd十二法则 24 §1.2 关系数据库系统(RDBMS)的组成 24 §1.2.1 RDBMS 内核 24...

    oracle chm帮助文件下载

    6. **十进制与十六进制转换**:使用`TO_NUMBER()`和`TO_CHAR()`函数,配合`HEXTORAW()`和`RAWTOHEX()`函数进行不同进制间的转换。 7. **SYS_CONTEXT的使用**:`SYS_CONTEXT`函数用于获取会话级别的上下文信息,如...

    oracle函数及其用法

    - `HEXTORAW(x)`:将16进制字符串转换为二进制数据。 5. **聚组函数**: - `AVG(x)`:返回指定列`x`的平均值。 - `COUNT(*)`:返回查询结果的行数。 - `MAX(x)`:返回指定列`x`的最大值。 - `MIN(x)`:返回...

    oracle日常命令.docx

    - `HEXTORAW()`、`RAWTOHEX()`:十六进制和二进制之间的转换。 - `TO_CHAR()`、`TO_DATE()`、`TO_NUMBER()`:字符串与日期、数字间的转换。 - `TO_MULTI_BYTE()`、`TO_SINGLE_BYTE()`:全角和半角字符的转换。 -...

    oracle函数库

    ### Oracle函数库详解 #### 一、字符串处理函数 **1. ASCII('字符')** - **功能**: 返回指定字符的ASCII码(十进制数)。 - **示例**: `SELECT ASCII('A') FROM DUAL;` 返回结果为 `65`。 **2. CHR(数字)** - **...

    oracle_sql函数

    19. **HEXTORAW(x)** (字符): 将包含十六进制数据的字符串转换为二进制数据。 20. **INITCAP(x)** (字符): 返回字符串x首字母大写,其余小写的版本。 21. **INSTR(w, x[, y[, z]])** (字符): 在字符串w中查找x的...

    oracle plsql函数大全

    43. `RAWTOHEX`: 将二进制数据转换为十六进制字符串。 44. `ROWIDTOCHAR`: 将ROWID类型转换为字符类型。 45. `TO_CHAR(date, 'format')`: 根据format格式化日期。 46. `TO_DATE(string, 'format')`: 将字符串转换...

Global site tag (gtag.js) - Google Analytics