如题所述
第1个回答 2017-02-26
SQL> create or replace function display_raw (rawval raw, type varchar2)
2 return varchar2
3 is
4 cn number;
5 cv varchar2(32);
6 cd date;
7 cnv nvarchar2(32);
8 cr rowid;
9 cc char(32);
10 begin
11 if (type = 'NUMBER') then
12 dbms_stats.convert_raw_value(rawval, cn);
13 return to_char(cn);
14 elsif (type = 'VARCHAR2') then
15 dbms_stats.convert_raw_value(rawval, cv);
16 return to_char(cv);
17 elsif (type = 'DATE') then
18 dbms_stats.convert_raw_value(rawval, cd);
19 return to_char(cd);
20 elsif (type = 'NVARCHAR2') then
21 dbms_stats.convert_raw_value(rawval, cnv);
22 return to_char(cnv);
23 elsif (type = 'ROWID') then
24 dbms_stats.convert_raw_value(rawval, cr);
25 return to_char(cnv);
26 elsif (type = 'CHAR') then
27 dbms_stats.convert_raw_value(rawval, cc);
28 return to_char(cc);
29 else
30 return 'UNKNOWN DATATYPE';
31 end if;
32 end;
33 /
用这个函数try一哈本回答被提问者采纳
2 return varchar2
3 is
4 cn number;
5 cv varchar2(32);
6 cd date;
7 cnv nvarchar2(32);
8 cr rowid;
9 cc char(32);
10 begin
11 if (type = 'NUMBER') then
12 dbms_stats.convert_raw_value(rawval, cn);
13 return to_char(cn);
14 elsif (type = 'VARCHAR2') then
15 dbms_stats.convert_raw_value(rawval, cv);
16 return to_char(cv);
17 elsif (type = 'DATE') then
18 dbms_stats.convert_raw_value(rawval, cd);
19 return to_char(cd);
20 elsif (type = 'NVARCHAR2') then
21 dbms_stats.convert_raw_value(rawval, cnv);
22 return to_char(cnv);
23 elsif (type = 'ROWID') then
24 dbms_stats.convert_raw_value(rawval, cr);
25 return to_char(cnv);
26 elsif (type = 'CHAR') then
27 dbms_stats.convert_raw_value(rawval, cc);
28 return to_char(cc);
29 else
30 return 'UNKNOWN DATATYPE';
31 end if;
32 end;
33 /
用这个函数try一哈本回答被提问者采纳