发文的主要原因是因为前几天一个同事一直说获取分区表的high_value不会,并且一直表示long类型完全不能获取。迫不得已,我今晚查了一下资料,发现oracle本身有对long类型的转换支持。
|
SQL> desc dbms_metadata_util …... FUNCTION LONG2VARCHAR RETURNS VARCHAR2 Argument Name Type In/Out Default? ------------------------------ ----------------------- ------ -------- LENGTH NUMBER IN TAB VARCHAR2 IN COL VARCHAR2 IN ROW ROWID IN …... |
|
create table t1 (name long); insert into t1 values(‘a’); insert into t1 values(‘b’); insert into t1 values(‘c’); commit; |
|
SQL> select sys.dbms_metadata_util.long2varchar(100,'scott.t1','name',rowid) from scott.t1; SYS.DBMS_METADATA_UTIL.LONG2VARCHAR(100,'SCOTT.T1','NAME',ROWID) -------------------------------------------------------------------------------- a b c SQL> select * from scott.t1 where sys.dbms_metadata_util.long2varchar(100,'scott.t1','name',rowid) = 'a'; NAME -------------------------------------------------------------------------------- a |
