4)oracle/jdbc/driver/OracleDatabaseMetaData"oracle/jdbc/OracleDatabaseMetaDataOracleDatabaseMetaData.java/Loracle/jdbc/logging/annotations/DefaultLogger;value oracle.jdbc*Loracle/jdbc/logging/annotations/Supports;)Loracle/jdbc/logging/annotations/Feature; COLUMN_GET RESULT_FETCH1oracle/jdbc/OracleDatabaseMetaData$DataTypeSource DataTypeSourceRSFSIFOUR_GIG_MINUS_ONEJmaxLogicalLobSize*(Loracle/jdbc/internal/OracleConnection;)V!(Loracle/jdbc/OracleConnection;)V    ((Loracle/jdbc/driver/OracleConnection;)V  " getColumns^(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;java/sql/SQLException& connection'Loracle/jdbc/internal/OracleConnection; () *%oracle/jdbc/internal/OracleConnection,getIncludeSynonyms()Z ./ -0hasSqlWildcard(Ljava/lang/String;)Z 23 4getColumnsNoWildcardsPlsql()Ljava/lang/String; 67 8stripSqlEscapes&(Ljava/lang/String;)Ljava/lang/String; :; <%>getColumnsWithWildcardsPlsql(Z)Ljava/lang/String; @A Bjava/util/PropertiesD()V F EGuse_long_fetchItrueK setProperty8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object; MN EO prepareCallF(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/CallableStatement; QR -Sjava/sql/CallableStatementU setString(ILjava/lang/String;)V WX VYregisterOutParameter(II)V [\ V]closeOnCompletion _F V`execute b/ Vc#oracle/jdbc/OracleCallableStatemente getCursor(I)Ljava/sql/ResultSet; gh fijava/sql/ResultSetk getFetchSize()I mn lo setFetchSize(I)V qr lsjava/lang/Stringudeclare in_owner varchar2(256) := null; in_name varchar2(256) := null; my_user_name varchar2(256) := null; cnt number := 0; out_owner varchar2(256) := null; out_name varchar2(256):= null; xxx SYS_REFCURSOR; begin in_owner := ?; in_name := ?; select user into my_user_name from dual; if (my_user_name = in_owner) then select count(*) into cnt from user_tables where table_name = in_name; if (cnt = 1) then out_owner := in_owner; out_name := in_name; else select count(*) into cnt from user_views where view_name = in_name; if (cnt = 1) then out_owner := in_owner; out_name := in_name; else begin select table_owner, table_name into out_owner, out_name from user_synonyms where synonym_name = in_name; exception when NO_DATA_FOUND then out_owner := null; out_name := null; end; end if; end if; else select count(*) into cnt from all_tables where owner = in_owner and table_name = in_name; if (cnt = 1) then out_owner := in_owner; out_name := in_name; else select count(*) into cnt from all_views where owner = in_owner and view_name = in_name; if (cnt = 1) then out_owner := in_owner; out_name := in_name; else begin select table_owner, table_name into out_owner, out_name from all_synonyms where owner = in_owner and synonym_name = in_name; exception when NO_DATA_FOUND then out_owner := null; out_name := null; end; end if; end if; end if; wgetVersionNumber()S yz -{'open xxx for SELECT NULL AS table_cat, }> in_owner AS table_schem, in_name AS table_name,  DECODE (t.data_type, 'CHAR', t.char_length, 'VARCHAR', t.char_length, 'VARCHAR2', t.char_length, 'NVARCHAR2', t.char_length, 'NCHAR', t.char_length, 'NUMBER', 0, t.data_length)java/lang/StringBuilder G% t.column_name AS column_name, append-(Ljava/lang/String;)Ljava/lang/StringBuilder; COLS3Loracle/jdbc/OracleDatabaseMetaData$DataTypeSource; t datatypeQueryY(Loracle/jdbc/OracleDatabaseMetaData$DataTypeSource;Ljava/lang/String;)Ljava/lang/String;  t.data_type AS type_name, DECODE (t.data_precision, null, DECODE(t.data_type, 'NUMBER', DECODE(t.data_scale, null, %oracle/jdbc/driver/PhysicalConnectionj2ee13CompliantZ 380* , 38), - ), t.data_precision) AS column_size, 0 AS buffer_length, DECODE (t.data_type, 'NUMBER', DECODE(t.data_precision, null, DECODE(t.data_scale, null, -127 , t.data_scale), t.data_scale), t.data_scale) AS decimal_digits, 10 AS num_prec_radix, DECODE (t.nullable, 'N', 0, 1) AS nullable, toString 7  c.comments AS remarks,  NULL AS remarks,  t.data_default AS column_def, 0 AS sql_data_type, 0 AS sql_datetime_sub, t.data_length AS char_octet_length, t.column_id AS ordinal_position, DECODE (t.nullable, 'N', 'NO', 'YES') AS is_nullable,  null as SCOPE_CATALOG, null as SCOPE_SCHEMA, null as SCOPE_TABLE, null as SOURCE_DATA_TYPE, 'NO' as IS_AUTOINCREMENT, . t.virtual_column as IS_GENERATEDCOLUMN " null as IS_GENERATEDCOLUMN FROM all_tab_cols tFROM all_tab_columns t, all_col_comments c_WHERE t.owner = out_owner AND t.table_name = out_name AND t.column_name LIKE ? ESCAPE '/'  AND t.user_generated = 'YES' j AND t.owner = c.owner (+) AND t.table_name = c.table_name (+) AND t.column_name = c.column_name (+) 3ORDER BY table_schem, table_name, ordinal_position getRemarksReporting / - ; ? := xxx; end;declare in_owner varchar2(256) := null; in_name varchar2(256) := null; in_column varchar2(256) := null; xyzzy SYS_REFCURSOR; begin in_owner := ?; in_name := ?; in_column := ?;  UNION ALL SELECT NULL AS table_cat,  /*+ CHOOSE */B t.owner AS table_schem, t.table_name AS table_name, D s.owner AS table_schem, s.synonym_name AS table_name,  DECODE (t.data_type, 'CHAR', t.char_length, 'VARCHAR', t.char_length, 'VARCHAR2', t.char_length, 'NVARCHAR2', t.char_length, 'NCHAR', t.char_length, 'NUMBER', 0, t.data_length), all_synonyms sWHERE t.owner LIKE in_owner ESCAPE '/' AND t.table_name LIKE in_name ESCAPE '/' AND t.column_name LIKE in_column ESCAPE '/' WHERE s.owner LIKE in_owner ESCAPE '/' AND s.synonym_name LIKE in_name ESCAPE '/' AND t.owner = s.table_owner AND t.table_name = s.table_name AND t.column_name LIKE in_column ESCAPE '/' AND s.db_link is NULL open xyzzy for ; ? := xyzzy; end; getTypeInfo()Ljava/sql/ResultSet;createStatement()Ljava/sql/Statement; -getVarTypeMaxLenCompat n -3union select 'CHAR' as type_name, 1 as data_type, (I)Ljava/lang/StringBuilder; h as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'CHAR' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 6union select 'NCHAR' as type_name, -15 as data_type, i as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'NCHAR' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 8union select 'VARCHAR2' as type_name, 12 as data_type, l as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'VARCHAR2' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 9union select 'NVARCHAR2' as type_name, -9 as data_type, m as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'nVARCHAR2' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual #union select 'DATE' as type_name, mapDateToTimestamp   93 91 |as data_type, 7 as precision, 'DATE ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'DATE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 3union select 'RAW' as type_name, -3 as data_type, g as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'RAW' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual -16union select 'BLOB' as type_name, 2004 as data_type, h as precision, null as literal_prefix, null as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'BLOB' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 6union select 'CLOB' as type_name, 2005 as data_type, h as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'CLOB' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 7union select 'NCLOB' as type_name, 2011 as data_type, i as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'NCLOB' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual !select 'NUMBER' as type_name, 2 as data_type, 38 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual #union select 'DATE' as type_name, 92 as data_type, 7 as precision, 'DATE ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'DATE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual %union select 'TIMESTAMP' as type_name, 93 as data_type, 11 as precision, 'TIMESTAMP ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 'union select 'TIMESTAMP WITH TIME ZONE' as type_name, -101 as data_type, 13 as precision, 'TIMESTAMP ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP WITH TIME ZONE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual )union select 'TIMESTAMP WITH LOCAL TIME ZONE' as type_name, -102 as data_type, 11 as precision, 'TIMESTAMP ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP WITH LOCAL TIME ZONE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual +union select 'INTERVALYM' as type_name, -103 as data_type, 5 as precision, 'INTERVAL ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'INTERVALYM' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual -union select 'INTERVALDS' as type_name, -104 as data_type, 4 as precision, 'INTERVAL ''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'INTERVALDS' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual /union select 'LONG' as type_name, -1 as data_type, 2147483647 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'LONG' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 1union select 'LONG RAW' as type_name, -4 as data_type, 2147483647 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'LONG RAW' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 3union select 'NUMBER' as type_name, -7 as data_type, 1 as precision, NULL as literal_prefix, NULL as literal_suffix, '(1)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 5union select 'NUMBER' as type_name, -6 as data_type, 3 as precision, NULL as literal_prefix, NULL as literal_suffix, '(3)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 7union select 'NUMBER' as type_name, 5 as data_type, 5 as precision, NULL as literal_prefix, NULL as literal_suffix, '(5)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual 9union select 'NUMBER' as type_name, 4 as data_type, 10 as precision, NULL as literal_prefix, NULL as literal_suffix, '(10)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ;union select 'NUMBER' as type_name, -5 as data_type, 38 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual =union select 'FLOAT' as type_name, 6 as data_type, 63 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'FLOAT' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ?union select 'REAL' as type_name, 7 as data_type, 63 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'REAL' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Aunion select 'REF' as type_name, 2006 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'REF' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Cunion select 'ARRAY' as type_name, 2003 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'ARRAY' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Eunion select 'STRUCT' as type_name, 2002 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'STRUCT' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Gorder by data_type Ijava/sql/StatementK L` executeQuery((Ljava/lang/String;)Ljava/sql/ResultSet; NO LP$oracle/jdbc/internal/OracleResultSetRgetAuditBanner T7 Ujava/lang/ThrowableWgetAccessBanner Y7 ZisServerBigSCN \/ ]isCompatible122OrGreater _/ `getMaxLogicalLobSize()J:select value from v$parameter where name = 'db_block_size'dnext f/ lggetLong(I)J ij lkclose mF ln addSuppressed(Ljava/lang/Throwable;)V pq Xr Ln getErrorCode un 'v oracle/jdbc/driver/DatabaseErrorxcreateSqlException(I)Ljava/sql/SQLException; z{ y|fillInStackTrace()Ljava/lang/Throwable; ~ 'java/lang/ObjectsupportsRefCursors ConstantValueCodeLineNumberTable StackMapTable Exceptions InnerClasses SourceFileRuntimeVisibleAnnotations  - *+* 0 1!"*+# 56!$% *+16@,<*,54-0*-5(*9:*,=:*-=:?: 1*C:,?,:-?-:?: EYH:  JLPW*+ T:  Z Z  Z ^ a dW fj:  p  t Y F vvvvvvvAvv@v v@v vAvv|EVlby "(.5<MUam{'67 xL*+|=~N::Y**+*+:::: Y.: .: : Y.§Ķ: ::-:Y:Y:*+Y:Y:Y   :*+Y :YͶ :*+Y:YͶ::Y+:QGvvvvvvvvvcvvvvv0 vvvvvvvv vvvvvvvvvvAv vvvvvvvvvvv vvvvvvvvvvvvcvvvvvvvvvvvvvvvA<  *|  "')05;=?A#B<ERHrJ~KNPQTVX Y'@A*+|=N::::'ء+\~~::: : Y**+ *+: : : :Y.:.:::Y.§Ķ:Y.§Ķ::::Y:Y :*+Y :Y :Y:*+Y:YͶ:*+Y:*+1$Y:Y :Y :*+Y :Y :Y:Y:*+Y:YͶ:*+Y:Y::Y-:(vvvvv@Jvvvvv : vvvvvvvv vvvvvvvvvc vvvvvvvvv0vvvvvvvvvvvvvvvvvvvvvvvvvvAv!vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvsvvvvvvvvvvvvvvvvvvvvvvA<W<2_ a lmnvw;x?{CGK]9=AEj:Fk*E g }'2)5*+L*+|=*+>6666666666Y:Y:Y:Y:Y*+  :Y::Y: Y:!Y ":"Y$&(*,.02468:<>@B !"DFHJ:'+M+'QS:((oU LLvvvvLvvvvvvC DEF#G(H-J2L7O<QARFSKUPWUp024<QFnq%(2'T7a*+YL*+V+ðM+,-X'Y7a*+YL*+[+ðM+,-X'\/# *+^'_/# *+a'bc *  *+LM+eQN:-h*-li * -X-oJ:s>-o5:::-#-o:s -o+N,+tAN,-s8+t/N-M-:+!,+t: , s +t%L* +w'}''+* MSVX$DkX$DtXkvtXXX '?LlQX HXLlXXLlXXX LlPXLXLXX LXXX L''Z !$-?Dkt'/' @s [e e