4

私には2つのユーザータイプがあります:

create type TEST_TYPE_WITH_CHAR as table of varchar2(100 char);
create type TEST_TYPE_WITH_BYTE as table of varchar2(100 byte);

どのタイプにcharが含まれ、どのバイトが含まれているかを判別する方法は?

ビューSYS.USER_COLL_TYPESはそのような情報を提供しません。sqlfiddle

4

1 に答える 1

2

ビューを見てくださいall_coll_typesChar_used列。要素の長varchar2さがバイト単位で指定されているのか、文字で指定されているのかを示します。

SQL> create type t_coll_type is table of varchar2(10 byte);
  2  /

Type created

SQL> 
SQL> select type_name
  2       , elem_type_name
  3       , char_used
  4    from all_coll_types
  5  where type_name = 'T_COLL_TYPE'
  6  ;

TYPE_NAME                      ELEM_TYPE_NAME                 CHAR_USED
------------------------------ ------------------------------ ---------
T_COLL_TYPE                    VARCHAR2                       B

SQL> create type t_coll_type2 is table of varchar2(10 char);
  2  /

Type created

SQL> 
SQL> select type_name
  2       , elem_type_name
  3       , char_used
  4    from all_coll_types
  5  where type_name = 'T_COLL_TYPE2'
  6  ;

TYPE_NAME                      ELEM_TYPE_NAME                 CHAR_USED
------------------------------ ------------------------------ ---------
T_COLL_TYPE2                   VARCHAR2                       C
于 2012-11-08T16:39:22.607 に答える