Advertisement
Guest User

Untitled

a guest
Mar 29th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.40 KB | None | 0 0
  1. case record.col_type
  2. when dbms_types.TYPCODE_DATE then 'DATE'
  3. when dbms_types.TYPCODE_NUMBER then 'NUMBER'
  4. when dbms_types.TYPCODE_RAW then 'RAW'
  5. when dbms_types.TYPCODE_CHAR then 'CHAR'
  6. when dbms_types.TYPCODE_VARCHAR then 'VARCHAR2'
  7. when dbms_types.TYPCODE_VARCHAR then 'VARCHAR'
  8. when dbms_types.TYPCODE_MLSLABEL then 'MLSLABEL'
  9. when dbms_types.TYPCODE_BLOB then 'BLOB'
  10. when dbms_types.TYPCODE_BFILE then 'BFILE'
  11. when dbms_types.TYPCODE_CLOB then 'CLOB'
  12. when dbms_types.TYPCODE_CFILE then 'CFILE'
  13. when dbms_types.TYPCODE_TIMESTAMP then 'TIMESTAMP'
  14. when dbms_types.TYPCODE_TIMESTAMP_TZ then 'TIMESTAMP_TZ'
  15. when dbms_types.TYPCODE_TIMESTAMP_LTZ then 'TIMESTAMP_LTZ'
  16. when dbms_types.TYPCODE_INTERVAL_YM then 'INTERVAL_YM'
  17. when dbms_types.TYPCODE_INTERVAL_DS then 'INTERVAL_DS'
  18. when dbms_types.TYPCODE_REF then 'REF'
  19. when dbms_types.TYPCODE_OBJECT then 'OBJECT'
  20. when dbms_types.TYPCODE_VARRAY then 'VARRAY'
  21. when dbms_types.TYPCODE_TABLE then 'TABLE'
  22. when dbms_types.TYPCODE_NAMEDCOLLECTION then 'NAMEDCOLLECTION'
  23. when dbms_types.TYPCODE_OPAQUE then 'OPAQUE'
  24. when dbms_types.TYPCODE_NCHAR then 'NCHAR'
  25. when dbms_types.TYPCODE_NVARCHAR then 'NVARCHAR2'
  26. when dbms_types.TYPCODE_NCLOB then 'NCLOB'
  27. when dbms_types.TYPCODE_BFLOAT then 'BFLOAT'
  28. when dbms_types.TYPCODE_BDOUBLE then 'BDOUBLE'
  29. when dbms_types.TYPCODE_UROWID then 'UROWID'
  30. end case
  31.  
  32. select text from all_source
  33. where owner='SYS'
  34. and name='DBMS_TYPES'
  35. and type='PACKAGE';
  36.  
  37. PACKAGE dbms_types AS
  38.  
  39. TYPECODE_DATE PLS_INTEGER := 12;
  40.  
  41. TYPECODE_NUMBER PLS_INTEGER := 2;
  42.  
  43. TYPECODE_RAW PLS_INTEGER := 95;
  44.  
  45. TYPECODE_CHAR PLS_INTEGER := 96;
  46.  
  47. TYPECODE_VARCHAR2 PLS_INTEGER := 9;
  48.  
  49. TYPECODE_VARCHAR PLS_INTEGER := 1;
  50.  
  51. TYPECODE_MLSLABEL PLS_INTEGER := 105;
  52.  
  53. TYPECODE_BLOB PLS_INTEGER := 113;
  54.  
  55. TYPECODE_BFILE PLS_INTEGER := 114;
  56.  
  57. TYPECODE_CLOB PLS_INTEGER := 112;
  58.  
  59. TYPECODE_CFILE PLS_INTEGER := 115;
  60.  
  61. TYPECODE_TIMESTAMP PLS_INTEGER := 187;
  62.  
  63. TYPECODE_TIMESTAMP_TZ PLS_INTEGER := 188;
  64.  
  65. TYPECODE_TIMESTAMP_LTZ PLS_INTEGER := 232;
  66.  
  67. TYPECODE_INTERVAL_YM PLS_INTEGER := 189;
  68.  
  69. TYPECODE_INTERVAL_DS PLS_INTEGER := 190;
  70.  
  71.  
  72.  
  73. TYPECODE_REF PLS_INTEGER := 110;
  74.  
  75. TYPECODE_OBJECT PLS_INTEGER := 108;
  76.  
  77. TYPECODE_VARRAY PLS_INTEGER := 247; /* COLLECTION TYPE */
  78.  
  79. TYPECODE_TABLE PLS_INTEGER := 248; /* COLLECTION TYPE */
  80.  
  81. TYPECODE_NAMEDCOLLECTION PLS_INTEGER := 122;
  82.  
  83. TYPECODE_OPAQUE PLS_INTEGER := 58; /* OPAQUE TYPE */
  84.  
  85.  
  86.  
  87. /* NOTE: These typecodes are for use in AnyData api only and are short forms
  88.  
  89. for the corresponding char typecodes with a charset form of SQLCS_NCHAR.
  90.  
  91. */
  92.  
  93. TYPECODE_NCHAR PLS_INTEGER := 286;
  94.  
  95. TYPECODE_NVARCHAR2 PLS_INTEGER := 287;
  96.  
  97. TYPECODE_NCLOB PLS_INTEGER := 288;
  98.  
  99.  
  100.  
  101. /* Typecodes for Binary Float, Binary Double and Urowid. */
  102.  
  103. TYPECODE_BFLOAT PLS_INTEGER := 100;
  104.  
  105. TYPECODE_BDOUBLE PLS_INTEGER := 101;
  106.  
  107. TYPECODE_UROWID PLS_INTEGER := 104;
  108.  
  109.  
  110.  
  111. SUCCESS PLS_INTEGER := 0;
  112.  
  113. NO_DATA PLS_INTEGER := 100;
  114.  
  115. SQL> DECLARE
  116. 2 v_anydata ANYDATA := ANYDATA.ConvertVarchar2('String');
  117. 3 v_typename VARCHAR2(128);
  118. 4 BEGIN
  119. 5 v_typename := v_anydata.GetTypeName();
  120. 6 DBMS_OUTPUT.PUT_LINE('Type of ANYDATA instance is [' || v_typename || ']');
  121. 7 END;
  122. 8 /
  123.  
  124. Type of ANYDATA instance is [SYS.VARCHAR2]
  125.  
  126. PL/SQL procedure successfully completed.
  127.  
  128. select
  129. distinct
  130. c.type# type_code,
  131. decode(c.type#, 1, decode(c.charsetform, 2, 'NVARCHAR2', 'VARCHAR2'),
  132. 2, decode(c.scale, null, decode(c.precision#, null, 'NUMBER', 'FLOAT'), 'NUMBER'),
  133. 8, 'LONG',
  134. 9, decode(c.charsetform, 2, 'NCHAR VARYING', 'VARCHAR'),
  135. 12, 'DATE',
  136. 23, 'RAW', 24, 'LONG RAW',
  137. 69, 'ROWID',
  138. 96, decode(c.charsetform, 2, 'NCHAR', 'CHAR'),
  139. 100, 'BINARY_FLOAT',
  140. 101, 'BINARY_DOUBLE',
  141. 105, 'MLSLABEL',
  142. 106, 'MLSLABEL',
  143. 111, 'REF',
  144. 112, decode(c.charsetform, 2, 'NCLOB', 'CLOB'),
  145. 113, 'BLOB', 114, 'BFILE', 115, 'CFILE',
  146. 121, 'USER_TYPE',
  147. 122, 'USER_TYPE',
  148. 123, 'USER_TYPE',
  149. 178, 'TIME(' ||c.scale|| ')',
  150. 179, 'TIME(' ||c.scale|| ')' || ' WITH TIME ZONE',
  151. 180, 'TIMESTAMP(' ||c.scale|| ')',
  152. 181, 'TIMESTAMP(' ||c.scale|| ')'||' WITH TIME ZONE',
  153. 231, 'TIMESTAMP(' ||c.scale|| ')'||' WITH LOCAL TIME ZONE',
  154. 182, 'INTERVAL YEAR(' ||c.precision#||') TO MONTH',
  155. 183, 'INTERVAL DAY(' ||c.precision#||') TO SECOND(' ||
  156. c.scale || ')',
  157. 208, 'UROWID',
  158. 'UNDEFINED') type_name from sys.col$ c order by c.type#;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement