暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何在plsql中显示列中的特殊/看不见的字符?

ASKTOM 2019-03-20
771

问题描述

嗨,汤姆,

我有一个表格,在一列中有特殊字符。列值是这样的plsql
下面。

set serveroutput on;
declare

c      varchar2 (100);
a      number;

begin
       for i in (     select ekd0756_current_value from prdusrvi.EKD0756 where record_id =2292 )
        loop
              for j in 1..length(i.ekd0756_current_value)
              loop
                     c      := substr(i.ekd0756_current_value,j,1);
                     a      := ascii (c);
                     dbms_output.put_line (j || '|' || c || '| ' || a);
              end loop;
              dbms_output.put_line ('----------------------------------');
       end loop;
end;
/


我可以用十进制值打印所有普通字符和特殊字符,因为我不能附加结果集,所以我不能显示特殊字符accii值。有没有一种方法可以在Ask Tom中上传屏幕截图,以清楚地显示我的想法?以上plsql可以在ascii值中显示看不见的特殊字符。但是一些特殊字符ascii值 = 49819,这是正确的吗?

亲切的问候,

德里克

专家解答

我不知道你在问什么。ASCII函数

returns the decimal representation in the database character set of the first character of char.

因此,字符具有在您的字符集中49,819的值。

如果共享此输出和转储函数,则可以看到存储在列中的值。即使它们是 “不可见” 或不可打印的字符。

如果要显示这些值的插入,请将ASCCI返回的值传递给CHR:

create table t (
  c1 varchar2(10)
);

insert into t values ( chr(49819) );
insert into t values ( chr(10) );

select c1, ascii ( c1 ), dump ( c1 ) from t;

C1   ASCII(C1)   DUMP(C1)               
?          49819 Typ=1 Len=2: 194,155   

             10 Typ=1 Len=1: 10   

文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论