Advertisement
Guest User

Untitled

a guest
Oct 1st, 2015
911
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AIMMS 305.69 KB | None | 0 0
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package oracle.jdbc.driver;
  7.  
  8. import java.io.BufferedInputStream;
  9. import java.io.BufferedReader;
  10. import java.io.ByteArrayInputStream;
  11. import java.io.IOException;
  12. import java.io.InputStream;
  13. import java.io.Reader;
  14. import java.io.StringReader;
  15. import java.math.BigDecimal;
  16. import java.net.URL;
  17. import java.sql.Array;
  18. import java.sql.BatchUpdateException;
  19. import java.sql.Blob;
  20. import java.sql.Clob;
  21. import java.sql.Date;
  22. import java.sql.NClob;
  23. import java.sql.ParameterMetaData;
  24. import java.sql.Ref;
  25. import java.sql.ResultSet;
  26. import java.sql.ResultSetMetaData;
  27. import java.sql.RowId;
  28. import java.sql.SQLData;
  29. import java.sql.SQLException;
  30. import java.sql.SQLXML;
  31. import java.sql.Statement;
  32. import java.sql.Time;
  33. import java.sql.Timestamp;
  34. import java.util.Calendar;
  35. import java.util.Locale;
  36. import java.util.TimeZone;
  37. import oracle.jdbc.driver.Accessor;
  38. import oracle.jdbc.driver.Binder;
  39. import oracle.jdbc.driver.CopiedByteBinder;
  40. import oracle.jdbc.driver.CopiedCharBinder;
  41. import oracle.jdbc.driver.CopiedNullBinder;
  42. import oracle.jdbc.driver.DBConversion;
  43. import oracle.jdbc.driver.DatabaseError;
  44. import oracle.jdbc.driver.OracleBlobOutputStream;
  45. import oracle.jdbc.driver.OracleClobWriter;
  46. import oracle.jdbc.driver.OracleParameterMetaData;
  47. import oracle.jdbc.driver.OraclePreparedStatementReadOnly;
  48. import oracle.jdbc.driver.OracleResultSetImpl;
  49. import oracle.jdbc.driver.OracleResultSetMetaData;
  50. import oracle.jdbc.driver.OracleReturnResultSet;
  51. import oracle.jdbc.driver.OracleStatement;
  52. import oracle.jdbc.driver.PhysicalConnection;
  53. import oracle.jdbc.driver.PlsqlIbtBindInfo;
  54. import oracle.jdbc.driver.PlsqlIndexTableAccessor;
  55. import oracle.jdbc.driver.ResultSetUtil;
  56. import oracle.jdbc.driver.ScrollRsetStatement;
  57. import oracle.jdbc.driver.T4CRowidAccessor;
  58. import oracle.jdbc.internal.ObjectData;
  59. import oracle.jdbc.internal.OracleStatement.SqlKind;
  60. import oracle.jdbc.oracore.OracleTypeADT;
  61. import oracle.jdbc.oracore.OracleTypeCOLLECTION;
  62. import oracle.jdbc.oracore.OracleTypeNUMBER;
  63. import oracle.sql.ARRAY;
  64. import oracle.sql.ArrayDescriptor;
  65. import oracle.sql.BFILE;
  66. import oracle.sql.BINARY_DOUBLE;
  67. import oracle.sql.BINARY_FLOAT;
  68. import oracle.sql.BLOB;
  69. import oracle.sql.CHAR;
  70. import oracle.sql.CLOB;
  71. import oracle.sql.CharacterSet;
  72. import oracle.sql.CustomDatum;
  73. import oracle.sql.DATE;
  74. import oracle.sql.Datum;
  75. import oracle.sql.INTERVALDS;
  76. import oracle.sql.INTERVALYM;
  77. import oracle.sql.NUMBER;
  78. import oracle.sql.OPAQUE;
  79. import oracle.sql.ORAData;
  80. import oracle.sql.OpaqueDescriptor;
  81. import oracle.sql.RAW;
  82. import oracle.sql.REF;
  83. import oracle.sql.ROWID;
  84. import oracle.sql.STRUCT;
  85. import oracle.sql.StructDescriptor;
  86. import oracle.sql.TIMESTAMP;
  87. import oracle.sql.TIMESTAMPLTZ;
  88. import oracle.sql.TIMESTAMPTZ;
  89.  
  90. abstract class OraclePreparedStatement extends OracleStatement implements oracle.jdbc.internal.OraclePreparedStatement, ScrollRsetStatement {
  91.     int numberOfBindRowsAllocated;
  92.     static Binder theStaticVarnumCopyingBinder;
  93.     static Binder theStaticVarnumNullBinder;
  94.     Binder theVarnumNullBinder;
  95.     static Binder theStaticBooleanBinder;
  96.     Binder theBooleanBinder;
  97.     static Binder theStaticByteBinder;
  98.     Binder theByteBinder;
  99.     static Binder theStaticShortBinder;
  100.     Binder theShortBinder;
  101.     static Binder theStaticIntBinder;
  102.     Binder theIntBinder;
  103.     static Binder theStaticLongBinder;
  104.     Binder theLongBinder;
  105.     static Binder theStaticFloatBinder;
  106.     Binder theFloatBinder;
  107.     static Binder theStaticDoubleBinder;
  108.     Binder theDoubleBinder;
  109.     static Binder theStaticBigDecimalBinder;
  110.     Binder theBigDecimalBinder;
  111.     static Binder theStaticVarcharCopyingBinder;
  112.     static Binder theStaticVarcharNullBinder;
  113.     Binder theVarcharNullBinder;
  114.     static Binder theStaticStringBinder;
  115.     Binder theStringBinder;
  116.     static Binder theStaticSetCHARCopyingBinder;
  117.     static Binder theStaticSetCHARBinder;
  118.     static Binder theStaticLittleEndianSetCHARBinder;
  119.     static Binder theStaticSetCHARNullBinder;
  120.     Binder theSetCHARBinder;
  121.     Binder theSetCHARNullBinder;
  122.     static Binder theStaticFixedCHARCopyingBinder;
  123.     static Binder theStaticFixedCHARBinder;
  124.     static Binder theStaticFixedCHARNullBinder;
  125.     Binder theFixedCHARBinder;
  126.     Binder theFixedCHARNullBinder;
  127.     static Binder theStaticDateCopyingBinder;
  128.     static Binder theStaticDateBinder;
  129.     static Binder theStaticDateNullBinder;
  130.     Binder theDateBinder;
  131.     Binder theDateNullBinder;
  132.     static Binder theStaticTimeCopyingBinder;
  133.     static Binder theStaticTimeBinder;
  134.     Binder theTimeBinder;
  135.     static Binder theStaticTimestampCopyingBinder;
  136.     static Binder theStaticTimestampBinder;
  137.     static Binder theStaticTimestampNullBinder;
  138.     Binder theTimestampBinder;
  139.     Binder theTimestampNullBinder;
  140.     static Binder theStaticOracleNumberBinder;
  141.     Binder theOracleNumberBinder;
  142.     static Binder theStaticOracleDateBinder;
  143.     Binder theOracleDateBinder;
  144.     static Binder theStaticOracleTimestampBinder;
  145.     Binder theOracleTimestampBinder;
  146.     static Binder theStaticTSTZCopyingBinder;
  147.     static Binder theStaticTSTZBinder;
  148.     static Binder theStaticTSTZNullBinder;
  149.     Binder theTSTZBinder;
  150.     Binder theTSTZNullBinder;
  151.     static Binder theStaticTSLTZCopyingBinder;
  152.     static Binder theStaticTSLTZBinder;
  153.     static Binder theStaticTSLTZNullBinder;
  154.     Binder theTSLTZBinder;
  155.     Binder theTSLTZNullBinder;
  156.     static Binder theStaticRowidCopyingBinder;
  157.     static Binder theStaticRowidBinder;
  158.     static Binder theStaticLittleEndianRowidBinder;
  159.     static Binder theStaticRowidNullBinder;
  160.     static Binder theStaticURowidNullBinder;
  161.     Binder theRowidBinder;
  162.     Binder theRowidNullBinder;
  163.     Binder theURowidBinder;
  164.     Binder theURowidNullBinder;
  165.     static Binder theStaticIntervalDSCopyingBinder;
  166.     static Binder theStaticIntervalDSBinder;
  167.     static Binder theStaticIntervalDSNullBinder;
  168.     Binder theIntervalDSBinder;
  169.     Binder theIntervalDSNullBinder;
  170.     static Binder theStaticIntervalYMCopyingBinder;
  171.     static Binder theStaticIntervalYMBinder;
  172.     static Binder theStaticIntervalYMNullBinder;
  173.     Binder theIntervalYMBinder;
  174.     Binder theIntervalYMNullBinder;
  175.     static Binder theStaticBfileCopyingBinder;
  176.     static Binder theStaticBfileBinder;
  177.     static Binder theStaticBfileNullBinder;
  178.     Binder theBfileBinder;
  179.     Binder theBfileNullBinder;
  180.     static Binder theStaticBlobCopyingBinder;
  181.     static Binder theStaticBlobBinder;
  182.     static Binder theStaticBlobNullBinder;
  183.     Binder theBlobBinder;
  184.     Binder theBlobNullBinder;
  185.     static Binder theStaticClobCopyingBinder;
  186.     static Binder theStaticClobBinder;
  187.     static Binder theStaticClobNullBinder;
  188.     Binder theClobBinder;
  189.     Binder theClobNullBinder;
  190.     static Binder theStaticRawCopyingBinder;
  191.     static Binder theStaticRawBinder;
  192.     static Binder theStaticRawNullBinder;
  193.     Binder theRawBinder;
  194.     Binder theRawNullBinder;
  195.     static Binder theStaticPlsqlRawCopyingBinder;
  196.     static Binder theStaticPlsqlRawBinder;
  197.     Binder thePlsqlRawBinder;
  198.     static Binder theStaticBinaryFloatCopyingBinder;
  199.     static Binder theStaticBinaryFloatBinder;
  200.     static Binder theStaticBinaryFloatNullBinder;
  201.     Binder theBinaryFloatBinder;
  202.     Binder theBinaryFloatNullBinder;
  203.     static Binder theStaticBINARY_FLOATCopyingBinder;
  204.     static Binder theStaticBINARY_FLOATBinder;
  205.     static Binder theStaticBINARY_FLOATNullBinder;
  206.     Binder theBINARY_FLOATBinder;
  207.     Binder theBINARY_FLOATNullBinder;
  208.     static Binder theStaticBinaryDoubleCopyingBinder;
  209.     static Binder theStaticBinaryDoubleBinder;
  210.     static Binder theStaticBinaryDoubleNullBinder;
  211.     Binder theBinaryDoubleBinder;
  212.     Binder theBinaryDoubleNullBinder;
  213.     static Binder theStaticBINARY_DOUBLECopyingBinder;
  214.     static Binder theStaticBINARY_DOUBLEBinder;
  215.     static Binder theStaticBINARY_DOUBLENullBinder;
  216.     Binder theBINARY_DOUBLEBinder;
  217.     Binder theBINARY_DOUBLENullBinder;
  218.     static Binder theStaticLongStreamBinder;
  219.     Binder theLongStreamBinder;
  220.     static Binder theStaticLongStreamForStringBinder;
  221.     Binder theLongStreamForStringBinder;
  222.     static Binder theStaticLongStreamForStringCopyingBinder;
  223.     static Binder theStaticLongRawStreamBinder;
  224.     Binder theLongRawStreamBinder;
  225.     static Binder theStaticLongRawStreamForBytesBinder;
  226.     Binder theLongRawStreamForBytesBinder;
  227.     static Binder theStaticLongRawStreamForBytesCopyingBinder;
  228.     static Binder theStaticNamedTypeCopyingBinder;
  229.     static Binder theStaticNamedTypeBinder;
  230.     static Binder theStaticNamedTypeNullBinder;
  231.     Binder theNamedTypeBinder;
  232.     Binder theNamedTypeNullBinder;
  233.     static Binder theStaticRefTypeCopyingBinder;
  234.     static Binder theStaticRefTypeBinder;
  235.     static Binder theStaticRefTypeNullBinder;
  236.     Binder theRefTypeBinder;
  237.     Binder theRefTypeNullBinder;
  238.     static Binder theStaticPlsqlIbtCopyingBinder;
  239.     static Binder theStaticPlsqlIbtBinder;
  240.     static Binder theStaticPlsqlIbtNullBinder;
  241.     Binder thePlsqlIbtBinder;
  242.     Binder thePlsqlNullBinder;
  243.     static Binder theStaticOutBinder;
  244.     Binder theOutBinder;
  245.     static Binder theStaticReturnParamBinder;
  246.     Binder theReturnParamBinder;
  247.     static Binder theStaticT4CRowidBinder;
  248.     static Binder theStaticT4CURowidBinder;
  249.     static Binder theStaticT4CRowidNullBinder;
  250.     static Binder theStaticT4CURowidNullBinder;
  251.     private static final TimeZone UTC_TIME_ZONE;
  252.     private static final Calendar UTC_US_CALENDAR;
  253.     protected Calendar cachedUTCUSCalendar;
  254.     public static final int TypeBinder_BYTELEN = 24;
  255.     char[] digits;
  256.     Binder[][] binders;
  257.     int[][] parameterInt;
  258.     long[][] parameterLong;
  259.     float[][] parameterFloat;
  260.     double[][] parameterDouble;
  261.     BigDecimal[][] parameterBigDecimal;
  262.     String[][] parameterString;
  263.     Date[][] parameterDate;
  264.     Time[][] parameterTime;
  265.     Timestamp[][] parameterTimestamp;
  266.     byte[][][] parameterDatum;
  267.     OracleTypeADT[][] parameterOtype;
  268.     CLOB[] lastBoundClobs;
  269.     BLOB[] lastBoundBlobs;
  270.     PlsqlIbtBindInfo[][] parameterPlsqlIbt;
  271.     Binder[] currentRowBinders;
  272.     int[] currentRowCharLens;
  273.     Accessor[] currentRowBindAccessors;
  274.     short[] currentRowFormOfUse;
  275.     boolean currentRowNeedToPrepareBinds;
  276.     int[] currentBatchCharLens;
  277.     Accessor[] currentBatchBindAccessors;
  278.     short[] currentBatchFormOfUse;
  279.     boolean currentBatchNeedToPrepareBinds;
  280.     OraclePreparedStatement.PushedBatch pushedBatches;
  281.     OraclePreparedStatement.PushedBatch pushedBatchesTail;
  282.     int cachedBindByteSize;
  283.     int cachedBindCharSize;
  284.     int cachedBindIndicatorSize;
  285.     int totalBindByteLength;
  286.     int totalBindCharLength;
  287.     int totalBindIndicatorLength;
  288.     static final int BIND_METADATA_NUMBER_OF_BIND_POSITIONS_OFFSET = 0;
  289.     static final int BIND_METADATA_BIND_BUFFER_CAPACITY_OFFSET_HI = 1;
  290.     static final int BIND_METADATA_BIND_BUFFER_CAPACITY_OFFSET_LO = 2;
  291.     static final int BIND_METADATA_NUMBER_OF_BOUND_ROWS_OFFSET_HI = 3;
  292.     static final int BIND_METADATA_NUMBER_OF_BOUND_ROWS_OFFSET_LO = 4;
  293.     static final int BIND_METADATA_PER_POSITION_DATA_OFFSET = 5;
  294.     static final int BIND_METADATA_TYPE_OFFSET = 0;
  295.     static final int BIND_METADATA_BYTE_PITCH_OFFSET = 1;
  296.     static final int BIND_METADATA_CHAR_PITCH_OFFSET = 2;
  297.     static final int BIND_METADATA_VALUE_DATA_OFFSET_HI = 3;
  298.     static final int BIND_METADATA_VALUE_DATA_OFFSET_LO = 4;
  299.     static final int BIND_METADATA_NULL_INDICATORS_OFFSET_HI = 5;
  300.     static final int BIND_METADATA_NULL_INDICATORS_OFFSET_LO = 6;
  301.     static final int BIND_METADATA_VALUE_LENGTHS_OFFSET_HI = 7;
  302.     static final int BIND_METADATA_VALUE_LENGTHS_OFFSET_LO = 8;
  303.     static final int BIND_METADATA_FORM_OF_USE_OFFSET = 9;
  304.     static final int BIND_METADATA_PER_POSITION_SIZE = 10;
  305.     static final int SETLOB_NO_LENGTH = -1;
  306.     int bindBufferCapacity;
  307.     int numberOfBoundRows;
  308.     int indicatorsOffset;
  309.     int valueLengthsOffset;
  310.     boolean preparedAllBinds;
  311.     boolean preparedCharBinds;
  312.     Binder[] lastBinders;
  313.     byte[] lastBoundBytes;
  314.     int lastBoundByteOffset;
  315.     char[] lastBoundChars;
  316.     int lastBoundCharOffset;
  317.     int[] lastBoundByteOffsets;
  318.     int[] lastBoundCharOffsets;
  319.     int[] lastBoundByteLens;
  320.     int[] lastBoundCharLens;
  321.     short[] lastBoundInds;
  322.     short[] lastBoundLens;
  323.     boolean lastBoundNeeded;
  324.     byte[][] lastBoundTypeBytes;
  325.     OracleTypeADT[] lastBoundTypeOtypes;
  326.     InputStream[] lastBoundStream;
  327.     private static final int STREAM_MAX_BYTES_SQL = 2147483647;
  328.     int maxRawBytesSql;
  329.     int maxRawBytesPlsql;
  330.     int maxVcsCharsSql;
  331.     int maxVcsNCharsSql;
  332.     int maxVcsBytesPlsql;
  333.     private int maxCharSize;
  334.     private int maxNCharSize;
  335.     private int charMaxCharsSql;
  336.     private int charMaxNCharsSql;
  337.     private int maxVcsCharsPlsql;
  338.     private int maxVcsNCharsPlsql;
  339.     int maxIbtVarcharElementLength;
  340.     private int maxStreamCharsSql;
  341.     private int maxStreamNCharsSql;
  342.     protected boolean isServerCharSetFixedWidth;
  343.     private boolean isServerNCharSetFixedWidth;
  344.     int minVcsBindSize;
  345.     int prematureBatchCount;
  346.     boolean checkBindTypes;
  347.     boolean scrollRsetTypeSolved;
  348.     int SetBigStringTryClob;
  349.     static final int BSTYLE_UNKNOWN = 0;
  350.     static final int BSTYLE_ORACLE = 1;
  351.     static final int BSTYLE_JDBC = 2;
  352.     int m_batchStyle;
  353.     private static final String _Copyright_2007_Oracle_All_Rights_Reserved_;
  354.     public static final String BUILD_DATE = "Fri_Aug_26_08:19:15_PDT_2011";
  355.     public static final boolean TRACE = false;
  356.  
  357.     OraclePreparedStatement(PhysicalConnection var1, String var2, int var3, int var4) throws SQLException {
  358.         this(var1, var2, var3, var4, 1003, 1007);
  359.         this.cacheState = 1;
  360.     }
  361.  
  362.     OraclePreparedStatement(PhysicalConnection var1, String var2, int var3, int var4, int var5, int var6) throws SQLException {
  363.         super(var1, var3, var4, var5, var6);
  364.         this.theVarnumNullBinder = theStaticVarnumNullBinder;
  365.         this.theBooleanBinder = theStaticBooleanBinder;
  366.         this.theByteBinder = theStaticByteBinder;
  367.         this.theShortBinder = theStaticShortBinder;
  368.         this.theIntBinder = theStaticIntBinder;
  369.         this.theLongBinder = theStaticLongBinder;
  370.         this.theFloatBinder = null;
  371.         this.theDoubleBinder = null;
  372.         this.theBigDecimalBinder = theStaticBigDecimalBinder;
  373.         this.theVarcharNullBinder = theStaticVarcharNullBinder;
  374.         this.theStringBinder = theStaticStringBinder;
  375.         this.theSetCHARNullBinder = theStaticSetCHARNullBinder;
  376.         this.theFixedCHARBinder = theStaticFixedCHARBinder;
  377.         this.theFixedCHARNullBinder = theStaticFixedCHARNullBinder;
  378.         this.theDateBinder = theStaticDateBinder;
  379.         this.theDateNullBinder = theStaticDateNullBinder;
  380.         this.theTimeBinder = theStaticTimeBinder;
  381.         this.theTimestampBinder = theStaticTimestampBinder;
  382.         this.theTimestampNullBinder = theStaticTimestampNullBinder;
  383.         this.theOracleNumberBinder = theStaticOracleNumberBinder;
  384.         this.theOracleDateBinder = theStaticOracleDateBinder;
  385.         this.theOracleTimestampBinder = theStaticOracleTimestampBinder;
  386.         this.theTSTZBinder = theStaticTSTZBinder;
  387.         this.theTSTZNullBinder = theStaticTSTZNullBinder;
  388.         this.theTSLTZBinder = theStaticTSLTZBinder;
  389.         this.theTSLTZNullBinder = theStaticTSLTZNullBinder;
  390.         this.theRowidNullBinder = theStaticRowidNullBinder;
  391.         this.theURowidNullBinder = theStaticURowidNullBinder;
  392.         this.theIntervalDSBinder = theStaticIntervalDSBinder;
  393.         this.theIntervalDSNullBinder = theStaticIntervalDSNullBinder;
  394.         this.theIntervalYMBinder = theStaticIntervalYMBinder;
  395.         this.theIntervalYMNullBinder = theStaticIntervalYMNullBinder;
  396.         this.theBfileBinder = theStaticBfileBinder;
  397.         this.theBfileNullBinder = theStaticBfileNullBinder;
  398.         this.theBlobBinder = theStaticBlobBinder;
  399.         this.theBlobNullBinder = theStaticBlobNullBinder;
  400.         this.theClobBinder = theStaticClobBinder;
  401.         this.theClobNullBinder = theStaticClobNullBinder;
  402.         this.theRawBinder = theStaticRawBinder;
  403.         this.theRawNullBinder = theStaticRawNullBinder;
  404.         this.thePlsqlRawBinder = theStaticPlsqlRawBinder;
  405.         this.theBinaryFloatBinder = theStaticBinaryFloatBinder;
  406.         this.theBinaryFloatNullBinder = theStaticBinaryFloatNullBinder;
  407.         this.theBINARY_FLOATBinder = theStaticBINARY_FLOATBinder;
  408.         this.theBINARY_FLOATNullBinder = theStaticBINARY_FLOATNullBinder;
  409.         this.theBinaryDoubleBinder = theStaticBinaryDoubleBinder;
  410.         this.theBinaryDoubleNullBinder = theStaticBinaryDoubleNullBinder;
  411.         this.theBINARY_DOUBLEBinder = theStaticBINARY_DOUBLEBinder;
  412.         this.theBINARY_DOUBLENullBinder = theStaticBINARY_DOUBLENullBinder;
  413.         this.theLongStreamBinder = theStaticLongStreamBinder;
  414.         this.theLongStreamForStringBinder = theStaticLongStreamForStringBinder;
  415.         this.theLongRawStreamBinder = theStaticLongRawStreamBinder;
  416.         this.theLongRawStreamForBytesBinder = theStaticLongRawStreamForBytesBinder;
  417.         this.theNamedTypeBinder = theStaticNamedTypeBinder;
  418.         this.theNamedTypeNullBinder = theStaticNamedTypeNullBinder;
  419.         this.theRefTypeBinder = theStaticRefTypeBinder;
  420.         this.theRefTypeNullBinder = theStaticRefTypeNullBinder;
  421.         this.thePlsqlIbtBinder = theStaticPlsqlIbtBinder;
  422.         this.thePlsqlNullBinder = theStaticPlsqlIbtNullBinder;
  423.         this.theOutBinder = theStaticOutBinder;
  424.         this.theReturnParamBinder = theStaticReturnParamBinder;
  425.         this.cachedUTCUSCalendar = (Calendar)UTC_US_CALENDAR.clone();
  426.         this.digits = new char[20];
  427.         this.currentRowNeedToPrepareBinds = true;
  428.         this.cachedBindByteSize = 0;
  429.         this.cachedBindCharSize = 0;
  430.         this.cachedBindIndicatorSize = 0;
  431.         this.lastBoundNeeded = false;
  432.         this.maxCharSize = 0;
  433.         this.maxNCharSize = 0;
  434.         this.charMaxCharsSql = 0;
  435.         this.charMaxNCharsSql = 0;
  436.         this.maxVcsCharsPlsql = 0;
  437.         this.maxVcsNCharsPlsql = 0;
  438.         this.maxIbtVarcharElementLength = 0;
  439.         this.maxStreamCharsSql = 0;
  440.         this.maxStreamNCharsSql = 0;
  441.         this.isServerCharSetFixedWidth = false;
  442.         this.isServerNCharSetFixedWidth = false;
  443.         this.checkBindTypes = true;
  444.         this.SetBigStringTryClob = 0;
  445.         this.m_batchStyle = 0;
  446.         this.cacheState = 1;
  447.         if(var3 > 1) {
  448.             this.setOracleBatchStyle();
  449.         }
  450.  
  451.         this.theSetCHARBinder = var1.useLittleEndianSetCHARBinder()?theStaticLittleEndianSetCHARBinder:theStaticSetCHARBinder;
  452.         this.theURowidBinder = this.theRowidBinder = var1.useLittleEndianSetCHARBinder()?theStaticLittleEndianRowidBinder:theStaticRowidBinder;
  453.         this.statementType = 1;
  454.         this.currentRow = -1;
  455.         this.needToParse = true;
  456.         this.processEscapes = var1.processEscapes;
  457.         this.sqlObject.initialize(var2);
  458.         this.sqlKind = this.sqlObject.getSqlKind();
  459.         this.clearParameters = true;
  460.         this.scrollRsetTypeSolved = false;
  461.         this.prematureBatchCount = 0;
  462.         this.initializeBinds();
  463.         this.minVcsBindSize = var1.minVcsBindSize;
  464.         this.maxRawBytesSql = var1.maxRawBytesSql;
  465.         this.maxRawBytesPlsql = var1.maxRawBytesPlsql;
  466.         this.maxVcsCharsSql = var1.maxVcsCharsSql;
  467.         this.maxVcsNCharsSql = var1.maxVcsNCharsSql;
  468.         this.maxVcsBytesPlsql = var1.maxVcsBytesPlsql;
  469.         this.maxIbtVarcharElementLength = var1.maxIbtVarcharElementLength;
  470.         this.maxCharSize = this.connection.conversion.sMaxCharSize;
  471.         this.maxNCharSize = this.connection.conversion.maxNCharSize;
  472.         this.maxVcsCharsPlsql = this.maxVcsBytesPlsql / this.maxCharSize;
  473.         this.maxVcsNCharsPlsql = this.maxVcsBytesPlsql / this.maxNCharSize;
  474.         this.maxStreamCharsSql = 2147483647 / this.maxCharSize;
  475.         this.maxStreamNCharsSql = this.maxRawBytesSql / this.maxNCharSize;
  476.         this.isServerCharSetFixedWidth = this.connection.conversion.isServerCharSetFixedWidth;
  477.         this.isServerNCharSetFixedWidth = this.connection.conversion.isServerNCharSetFixedWidth;
  478.     }
  479.  
  480.     void allocBinds(int var1) throws SQLException {
  481.         boolean var2 = var1 > this.numberOfBindRowsAllocated;
  482.         this.initializeIndicatorSubRange();
  483.         int var3 = this.bindIndicatorSubRange + 5 + this.numberOfBindPositions * 10;
  484.         int var4 = var1 * this.numberOfBindPositions;
  485.         int var5 = var3 + 2 * var4;
  486.         int var7;
  487.         if(var5 > this.totalBindIndicatorLength) {
  488.             short[] var6 = this.bindIndicators;
  489.             var7 = this.bindIndicatorOffset;
  490.             this.bindIndicatorOffset = 0;
  491.             this.bindIndicators = new short[var5];
  492.             this.totalBindIndicatorLength = var5;
  493.             if(var6 != null && var2) {
  494.                 System.arraycopy(var6, var7, this.bindIndicators, this.bindIndicatorOffset, var3);
  495.             }
  496.         }
  497.  
  498.         this.bindIndicatorSubRange += this.bindIndicatorOffset;
  499.         this.bindIndicators[this.bindIndicatorSubRange + 0] = (short)this.numberOfBindPositions;
  500.         this.indicatorsOffset = this.bindIndicatorOffset + var3;
  501.         this.valueLengthsOffset = this.indicatorsOffset + var4;
  502.         int var10 = this.indicatorsOffset;
  503.         var7 = this.valueLengthsOffset;
  504.         int var8 = this.bindIndicatorSubRange + 5;
  505.  
  506.         for(int var9 = 0; var9 < this.numberOfBindPositions; ++var9) {
  507.             this.bindIndicators[var8 + 5] = (short)(var10 >> 16);
  508.             this.bindIndicators[var8 + 6] = (short)(var10 & '\uffff');
  509.             this.bindIndicators[var8 + 7] = (short)(var7 >> 16);
  510.             this.bindIndicators[var8 + 8] = (short)(var7 & '\uffff');
  511.             var10 += var1;
  512.             var7 += var1;
  513.             var8 += 10;
  514.         }
  515.  
  516.     }
  517.  
  518.     void initializeBinds() throws SQLException {
  519.         this.numberOfBindPositions = this.sqlObject.getParameterCount();
  520.         this.numReturnParams = this.sqlObject.getReturnParameterCount();
  521.         if(this.numberOfBindPositions == 0) {
  522.             this.currentRowNeedToPrepareBinds = false;
  523.         } else {
  524.             this.numberOfBindRowsAllocated = this.batch;
  525.             this.binders = new Binder[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  526.             this.currentRowBinders = this.binders[0];
  527.             this.currentRowCharLens = new int[this.numberOfBindPositions];
  528.             this.currentBatchCharLens = new int[this.numberOfBindPositions];
  529.             this.currentRowFormOfUse = new short[this.numberOfBindPositions];
  530.             this.currentBatchFormOfUse = new short[this.numberOfBindPositions];
  531.             this.lastBoundClobs = new CLOB[this.numberOfBindPositions];
  532.             this.lastBoundBlobs = new BLOB[this.numberOfBindPositions];
  533.             byte var1 = 1;
  534.             if(this.connection.defaultnchar) {
  535.                 var1 = 2;
  536.             }
  537.  
  538.             for(int var2 = 0; var2 < this.numberOfBindPositions; ++var2) {
  539.                 this.currentRowFormOfUse[var2] = var1;
  540.                 this.currentBatchFormOfUse[var2] = var1;
  541.             }
  542.  
  543.             this.lastBinders = new Binder[this.numberOfBindPositions];
  544.             this.lastBoundCharLens = new int[this.numberOfBindPositions];
  545.             this.lastBoundByteOffsets = new int[this.numberOfBindPositions];
  546.             this.lastBoundCharOffsets = new int[this.numberOfBindPositions];
  547.             this.lastBoundByteLens = new int[this.numberOfBindPositions];
  548.             this.lastBoundInds = new short[this.numberOfBindPositions];
  549.             this.lastBoundLens = new short[this.numberOfBindPositions];
  550.             this.lastBoundTypeBytes = new byte[this.numberOfBindPositions][];
  551.             this.lastBoundTypeOtypes = new OracleTypeADT[this.numberOfBindPositions];
  552.             this.allocBinds(this.numberOfBindRowsAllocated);
  553.         }
  554.     }
  555.  
  556.     void growBinds(int var1) throws SQLException {
  557.         Binder[][] var3 = this.binders;
  558.         this.binders = new Binder[var1][];
  559.         if(var3 != null) {
  560.             System.arraycopy(var3, 0, this.binders, 0, this.numberOfBindRowsAllocated);
  561.         }
  562.  
  563.         int var2;
  564.         for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  565.             this.binders[var2] = new Binder[this.numberOfBindPositions];
  566.         }
  567.  
  568.         this.allocBinds(var1);
  569.         if(this.parameterInt != null) {
  570.             int[][] var4 = this.parameterInt;
  571.             this.parameterInt = new int[var1][];
  572.             System.arraycopy(var4, 0, this.parameterInt, 0, this.numberOfBindRowsAllocated);
  573.  
  574.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  575.                 this.parameterInt[var2] = new int[this.numberOfBindPositions];
  576.             }
  577.         }
  578.  
  579.         if(this.parameterLong != null) {
  580.             long[][] var5 = this.parameterLong;
  581.             this.parameterLong = new long[var1][];
  582.             System.arraycopy(var5, 0, this.parameterLong, 0, this.numberOfBindRowsAllocated);
  583.  
  584.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  585.                 this.parameterLong[var2] = new long[this.numberOfBindPositions];
  586.             }
  587.         }
  588.  
  589.         if(this.parameterFloat != null) {
  590.             float[][] var6 = this.parameterFloat;
  591.             this.parameterFloat = new float[var1][];
  592.             System.arraycopy(var6, 0, this.parameterFloat, 0, this.numberOfBindRowsAllocated);
  593.  
  594.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  595.                 this.parameterFloat[var2] = new float[this.numberOfBindPositions];
  596.             }
  597.         }
  598.  
  599.         if(this.parameterDouble != null) {
  600.             double[][] var7 = this.parameterDouble;
  601.             this.parameterDouble = new double[var1][];
  602.             System.arraycopy(var7, 0, this.parameterDouble, 0, this.numberOfBindRowsAllocated);
  603.  
  604.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  605.                 this.parameterDouble[var2] = new double[this.numberOfBindPositions];
  606.             }
  607.         }
  608.  
  609.         if(this.parameterBigDecimal != null) {
  610.             BigDecimal[][] var8 = this.parameterBigDecimal;
  611.             this.parameterBigDecimal = new BigDecimal[var1][];
  612.             System.arraycopy(var8, 0, this.parameterBigDecimal, 0, this.numberOfBindRowsAllocated);
  613.  
  614.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  615.                 this.parameterBigDecimal[var2] = new BigDecimal[this.numberOfBindPositions];
  616.             }
  617.         }
  618.  
  619.         if(this.parameterString != null) {
  620.             String[][] var9 = this.parameterString;
  621.             this.parameterString = new String[var1][];
  622.             System.arraycopy(var9, 0, this.parameterString, 0, this.numberOfBindRowsAllocated);
  623.  
  624.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  625.                 this.parameterString[var2] = new String[this.numberOfBindPositions];
  626.             }
  627.         }
  628.  
  629.         if(this.parameterDate != null) {
  630.             Date[][] var10 = this.parameterDate;
  631.             this.parameterDate = new Date[var1][];
  632.             System.arraycopy(var10, 0, this.parameterDate, 0, this.numberOfBindRowsAllocated);
  633.  
  634.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  635.                 this.parameterDate[var2] = new Date[this.numberOfBindPositions];
  636.             }
  637.         }
  638.  
  639.         if(this.parameterTime != null) {
  640.             Time[][] var11 = this.parameterTime;
  641.             this.parameterTime = new Time[var1][];
  642.             System.arraycopy(var11, 0, this.parameterTime, 0, this.numberOfBindRowsAllocated);
  643.  
  644.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  645.                 this.parameterTime[var2] = new Time[this.numberOfBindPositions];
  646.             }
  647.         }
  648.  
  649.         if(this.parameterTimestamp != null) {
  650.             Timestamp[][] var12 = this.parameterTimestamp;
  651.             this.parameterTimestamp = new Timestamp[var1][];
  652.             System.arraycopy(var12, 0, this.parameterTimestamp, 0, this.numberOfBindRowsAllocated);
  653.  
  654.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  655.                 this.parameterTimestamp[var2] = new Timestamp[this.numberOfBindPositions];
  656.             }
  657.         }
  658.  
  659.         if(this.parameterDatum != null) {
  660.             byte[][][] var13 = this.parameterDatum;
  661.             this.parameterDatum = new byte[var1][][];
  662.             System.arraycopy(var13, 0, this.parameterDatum, 0, this.numberOfBindRowsAllocated);
  663.  
  664.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  665.                 this.parameterDatum[var2] = new byte[this.numberOfBindPositions][];
  666.             }
  667.         }
  668.  
  669.         if(this.parameterOtype != null) {
  670.             OracleTypeADT[][] var14 = this.parameterOtype;
  671.             this.parameterOtype = new OracleTypeADT[var1][];
  672.             System.arraycopy(var14, 0, this.parameterOtype, 0, this.numberOfBindRowsAllocated);
  673.  
  674.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  675.                 this.parameterOtype[var2] = new OracleTypeADT[this.numberOfBindPositions];
  676.             }
  677.         }
  678.  
  679.         if(this.parameterStream != null) {
  680.             InputStream[][] var15 = this.parameterStream;
  681.             this.parameterStream = new InputStream[var1][];
  682.             System.arraycopy(var15, 0, this.parameterStream, 0, this.numberOfBindRowsAllocated);
  683.  
  684.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  685.                 this.parameterStream[var2] = new InputStream[this.numberOfBindPositions];
  686.             }
  687.         }
  688.  
  689.         if(this.userStream != null) {
  690.             Object[][] var16 = this.userStream;
  691.             this.userStream = new Object[var1][];
  692.             System.arraycopy(var16, 0, this.userStream, 0, this.numberOfBindRowsAllocated);
  693.  
  694.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  695.                 this.userStream[var2] = new Object[this.numberOfBindPositions];
  696.             }
  697.         }
  698.  
  699.         if(this.parameterPlsqlIbt != null) {
  700.             PlsqlIbtBindInfo[][] var17 = this.parameterPlsqlIbt;
  701.             this.parameterPlsqlIbt = new PlsqlIbtBindInfo[var1][];
  702.             System.arraycopy(var17, 0, this.parameterPlsqlIbt, 0, this.numberOfBindRowsAllocated);
  703.  
  704.             for(var2 = this.numberOfBindRowsAllocated; var2 < var1; ++var2) {
  705.                 this.parameterPlsqlIbt[var2] = new PlsqlIbtBindInfo[this.numberOfBindPositions];
  706.             }
  707.         }
  708.  
  709.         this.numberOfBindRowsAllocated = var1;
  710.         this.currentRowNeedToPrepareBinds = true;
  711.     }
  712.  
  713.     void processCompletedBindRow(int var1, boolean var2) throws SQLException {
  714.         if(this.numberOfBindPositions != 0) {
  715.             boolean var4 = false;
  716.             boolean var5 = false;
  717.             boolean var6 = false;
  718.             boolean var7 = this.currentRank == this.firstRowInBatch;
  719.             Binder[] var8 = this.currentRank == 0?(this.lastBinders[0] == null?null:this.lastBinders):this.binders[this.currentRank - 1];
  720.             int var3;
  721.             short var12;
  722.             Binder var15;
  723.             SQLException var16;
  724.             SQLException var17;
  725.             SQLException var21;
  726.             if(this.currentRowBindAccessors == null) {
  727.                 boolean var9 = this.isAutoGeneratedKey && this.clearParameters;
  728.                 if(var8 == null) {
  729.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  730.                         if(this.currentRowBinders[var3] == null) {
  731.                             if(!var9) {
  732.                                 var16 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  733.                                 var16.fillInStackTrace();
  734.                                 throw var16;
  735.                             }
  736.  
  737.                             this.registerReturnParamsForAutoKey();
  738.                             var9 = false;
  739.                         }
  740.                     }
  741.                 } else if(!this.checkBindTypes) {
  742.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  743.                         var15 = this.currentRowBinders[var3];
  744.                         if(var15 == null) {
  745.                             if(this.clearParameters) {
  746.                                 var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  747.                                 var17.fillInStackTrace();
  748.                                 throw var17;
  749.                             }
  750.  
  751.                             this.currentRowBinders[var3] = var8[var3].copyingBinder();
  752.                             if(this.currentRank == 0) {
  753.                                 this.currentRowBinders[var3].lastBoundValueCleanup(this, var3);
  754.                             }
  755.  
  756.                             this.currentRowCharLens[var3] = -1;
  757.                             var5 = true;
  758.                         }
  759.                     }
  760.                 } else {
  761.                     OracleTypeADT[] var10 = this.currentRank == 0?this.lastBoundTypeOtypes:(this.parameterOtype == null?null:this.parameterOtype[this.currentRank - 1]);
  762.  
  763.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  764.                         if(this.currentRowBinders[var3] == null && var9) {
  765.                             this.registerReturnParamsForAutoKey();
  766.                             var9 = false;
  767.                         }
  768.  
  769.                         Binder var11 = this.currentRowBinders[var3];
  770.                         if(var11 == null) {
  771.                             if(this.clearParameters) {
  772.                                 var21 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  773.                                 var21.fillInStackTrace();
  774.                                 throw var21;
  775.                             }
  776.  
  777.                             this.currentRowBinders[var3] = var8[var3].copyingBinder();
  778.                             if(this.currentRank == 0) {
  779.                                 this.currentRowBinders[var3].lastBoundValueCleanup(this, var3);
  780.                             }
  781.  
  782.                             this.currentRowCharLens[var3] = -1;
  783.                             var5 = true;
  784.                         } else {
  785.                             var12 = var11.type;
  786.                             if(var12 != var8[var3].type || (var12 == 109 || var12 == 111) && !this.parameterOtype[this.currentRank][var3].isInHierarchyOf(var10[var3]) || var12 == 9 && var11.bytelen == 0 != (var8[var3].bytelen == 0)) {
  787.                                 var4 = true;
  788.                             }
  789.                         }
  790.  
  791.                         if(this.currentBatchFormOfUse[var3] != this.currentRowFormOfUse[var3]) {
  792.                             var4 = true;
  793.                         }
  794.                     }
  795.                 }
  796.  
  797.                 if(var5 && (var7 || this.m_batchStyle == 2)) {
  798.                     this.lastBoundNeeded = true;
  799.                 }
  800.             } else {
  801.                 Binder var14;
  802.                 if(var8 == null) {
  803.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  804.                         var14 = this.currentRowBinders[var3];
  805.                         Accessor var20 = this.currentRowBindAccessors[var3];
  806.                         if(var14 == null) {
  807.                             if(var20 == null) {
  808.                                 var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  809.                                 var17.fillInStackTrace();
  810.                                 throw var17;
  811.                             }
  812.  
  813.                             this.currentRowBinders[var3] = this.theOutBinder;
  814.                         } else if(var20 != null && var20.defineType != var14.type && (!this.connection.permitTimestampDateMismatch || var14.type != 180 || var20.defineType != 12)) {
  815.                             var6 = true;
  816.                         }
  817.                     }
  818.                 } else if(!this.checkBindTypes) {
  819.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  820.                         var14 = this.currentRowBinders[var3];
  821.                         if(var14 == null) {
  822.                             if(this.clearParameters && var8[var3] != this.theOutBinder) {
  823.                                 var16 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  824.                                 var16.fillInStackTrace();
  825.                                 throw var16;
  826.                             }
  827.  
  828.                             var14 = var8[var3];
  829.                             this.currentRowBinders[var3] = var14;
  830.                             this.currentRowCharLens[var3] = -1;
  831.                             if(var14 != this.theOutBinder) {
  832.                                 var5 = true;
  833.                             }
  834.                         }
  835.  
  836.                         if(this.currentRowBindAccessors[var3] == null) {
  837.                             this.currentRowBindAccessors[var3] = this.currentBatchBindAccessors[var3];
  838.                         }
  839.                     }
  840.                 } else {
  841.                     OracleTypeADT[] var13 = this.currentRank == 0?this.lastBoundTypeOtypes:(this.parameterOtype == null?null:this.parameterOtype[this.currentRank - 1]);
  842.  
  843.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  844.                         var15 = this.currentRowBinders[var3];
  845.                         Accessor var19 = this.currentRowBindAccessors[var3];
  846.                         if(var15 == null) {
  847.                             if(this.clearParameters && var8[var3] != this.theOutBinder) {
  848.                                 var21 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 41, Integer.valueOf(var3 + 1));
  849.                                 var21.fillInStackTrace();
  850.                                 throw var21;
  851.                             }
  852.  
  853.                             var15 = var8[var3];
  854.                             this.currentRowBinders[var3] = var15;
  855.                             this.currentRowCharLens[var3] = -1;
  856.                             if(var15 != this.theOutBinder) {
  857.                                 var5 = true;
  858.                             }
  859.                         } else {
  860.                             var12 = var15.type;
  861.                             if(var12 != var8[var3].type || (var12 == 109 || var12 == 111) && !this.parameterOtype[this.currentRank][var3].isInHierarchyOf(var13[var3]) || var12 == 9 && var15.bytelen == 0 != (var8[var3].bytelen == 0)) {
  862.                                 var4 = true;
  863.                             }
  864.                         }
  865.  
  866.                         if(this.currentBatchFormOfUse[var3] != this.currentRowFormOfUse[var3]) {
  867.                             var4 = true;
  868.                         }
  869.  
  870.                         Accessor var24 = this.currentBatchBindAccessors[var3];
  871.                         if(var19 == null) {
  872.                             var19 = var24;
  873.                             this.currentRowBindAccessors[var3] = var24;
  874.                         } else if(var24 != null && var19.defineType != var24.defineType) {
  875.                             var4 = true;
  876.                         }
  877.  
  878.                         if(var19 != null && var15 != this.theOutBinder && var19.defineType != var15.type && (!this.connection.permitTimestampDateMismatch || var15.type != 180 || var19.defineType != 12)) {
  879.                             var6 = true;
  880.                         }
  881.                     }
  882.                 }
  883.  
  884.                 if(var5 && var7) {
  885.                     this.lastBoundNeeded = true;
  886.                 }
  887.             }
  888.  
  889.             int var18;
  890.             if(var4) {
  891.                 if(!var7) {
  892.                     if(this.m_batchStyle == 2) {
  893.                         this.pushBatch(false);
  894.                     } else {
  895.                         var18 = this.validRows;
  896.                         this.prematureBatchCount = this.sendBatch();
  897.                         this.validRows = var18;
  898.  
  899.                         for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  900.                             this.currentRowBinders[var3].lastBoundValueCleanup(this, var3);
  901.                         }
  902.  
  903.                         if(var5) {
  904.                             this.lastBoundNeeded = true;
  905.                         }
  906.                     }
  907.                 }
  908.  
  909.                 this.needToParse = true;
  910.                 this.currentRowNeedToPrepareBinds = true;
  911.                 this.needToPrepareDefineBuffer = true;
  912.             } else if(var2) {
  913.                 this.pushBatch(false);
  914.                 this.needToParse = false;
  915.                 this.currentBatchNeedToPrepareBinds = false;
  916.             }
  917.  
  918.             if(var6) {
  919.                 SQLException var25 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 12);
  920.                 var25.fillInStackTrace();
  921.                 throw var25;
  922.             } else {
  923.                 for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  924.                     var18 = this.currentRowCharLens[var3];
  925.                     if(var18 == -1 && this.currentRank == this.firstRowInBatch) {
  926.                         var18 = this.lastBoundCharLens[var3];
  927.                     }
  928.  
  929.                     if(this.currentBatchCharLens[var3] < var18) {
  930.                         this.currentBatchCharLens[var3] = var18;
  931.                     }
  932.  
  933.                     this.currentRowCharLens[var3] = 0;
  934.                     this.currentBatchFormOfUse[var3] = this.currentRowFormOfUse[var3];
  935.                 }
  936.  
  937.                 if(this.currentRowNeedToPrepareBinds) {
  938.                     this.currentBatchNeedToPrepareBinds = true;
  939.                 }
  940.  
  941.                 if(this.currentRowBindAccessors != null) {
  942.                     Accessor[] var22 = this.currentBatchBindAccessors;
  943.                     this.currentBatchBindAccessors = this.currentRowBindAccessors;
  944.                     if(var22 == null) {
  945.                         var22 = new Accessor[this.numberOfBindPositions];
  946.                     } else {
  947.                         for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  948.                             var22[var3] = null;
  949.                         }
  950.                     }
  951.  
  952.                     this.currentRowBindAccessors = var22;
  953.                 }
  954.  
  955.                 var18 = this.currentRank + 1;
  956.                 if(var18 < var1) {
  957.                     if(var18 >= this.numberOfBindRowsAllocated) {
  958.                         int var23 = this.numberOfBindRowsAllocated << 1;
  959.                         if(var23 <= var18) {
  960.                             var23 = var18 + 1;
  961.                         }
  962.  
  963.                         this.growBinds(var23);
  964.                         this.currentBatchNeedToPrepareBinds = true;
  965.                         if(this.pushedBatches != null) {
  966.                             this.pushedBatches.current_batch_need_to_prepare_binds = true;
  967.                         }
  968.                     }
  969.  
  970.                     this.currentRowBinders = this.binders[var18];
  971.                 } else {
  972.                     this.setupBindBuffers(0, var1);
  973.                     this.currentRowBinders = this.binders[0];
  974.                 }
  975.  
  976.                 this.currentRowNeedToPrepareBinds = false;
  977.                 this.clearParameters = false;
  978.             }
  979.         }
  980.     }
  981.  
  982.     void processPlsqlIndexTabBinds(int var1) throws SQLException {
  983.         int var2 = 0;
  984.         int var3 = 0;
  985.         int var4 = 0;
  986.         int var5 = 0;
  987.         Binder[] var6 = this.binders[var1];
  988.         PlsqlIbtBindInfo[] var7 = this.parameterPlsqlIbt == null?null:this.parameterPlsqlIbt[var1];
  989.  
  990.         int var8;
  991.         for(var8 = 0; var8 < this.numberOfBindPositions; ++var8) {
  992.             Binder var9 = var6[var8];
  993.             Accessor var10 = this.currentBatchBindAccessors == null?null:this.currentBatchBindAccessors[var8];
  994.             PlsqlIndexTableAccessor var11 = var10 != null && var10.defineType == 998?(PlsqlIndexTableAccessor)var10:null;
  995.             if(var9.type == 998) {
  996.                 PlsqlIbtBindInfo var12 = var7[var8];
  997.                 if(var11 != null) {
  998.                     if(var12.element_internal_type != var11.elementInternalType) {
  999.                         SQLException var13 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 12);
  1000.                         var13.fillInStackTrace();
  1001.                         throw var13;
  1002.                     }
  1003.  
  1004.                     if(var12.maxLen < var11.maxNumberOfElements) {
  1005.                         var12.maxLen = var11.maxNumberOfElements;
  1006.                     }
  1007.  
  1008.                     if(var12.elemMaxLen < var11.elementMaxLen) {
  1009.                         var12.elemMaxLen = var11.elementMaxLen;
  1010.                     }
  1011.  
  1012.                     if(var12.ibtByteLength > 0) {
  1013.                         var12.ibtByteLength = var12.elemMaxLen * var12.maxLen;
  1014.                     } else {
  1015.                         var12.ibtCharLength = var12.elemMaxLen * var12.maxLen;
  1016.                     }
  1017.                 }
  1018.  
  1019.                 ++var2;
  1020.                 var4 += var12.ibtByteLength;
  1021.                 var5 += var12.ibtCharLength;
  1022.                 var3 += var12.maxLen;
  1023.             } else if(var11 != null) {
  1024.                 ++var2;
  1025.                 var4 += var11.ibtByteLength;
  1026.                 var5 += var11.ibtCharLength;
  1027.                 var3 += var11.maxNumberOfElements;
  1028.             }
  1029.         }
  1030.  
  1031.         if(var2 != 0) {
  1032.             this.ibtBindIndicatorSize = 6 + var2 * 8 + var3 * 2;
  1033.             this.ibtBindIndicators = new short[this.ibtBindIndicatorSize];
  1034.             this.ibtBindIndicatorOffset = 0;
  1035.             if(var4 > 0) {
  1036.                 this.ibtBindBytes = new byte[var4];
  1037.             }
  1038.  
  1039.             this.ibtBindByteOffset = 0;
  1040.             if(var5 > 0) {
  1041.                 this.ibtBindChars = new char[var5];
  1042.             }
  1043.  
  1044.             this.ibtBindCharOffset = 0;
  1045.             var8 = this.ibtBindByteOffset;
  1046.             int var19 = this.ibtBindCharOffset;
  1047.             int var21 = this.ibtBindIndicatorOffset;
  1048.             int var22 = var21 + 6 + var2 * 8;
  1049.             this.ibtBindIndicators[var21++] = (short)(var2 >> 16);
  1050.             this.ibtBindIndicators[var21++] = (short)(var2 & '\uffff');
  1051.             this.ibtBindIndicators[var21++] = (short)(var4 >> 16);
  1052.             this.ibtBindIndicators[var21++] = (short)(var4 & '\uffff');
  1053.             this.ibtBindIndicators[var21++] = (short)(var5 >> 16);
  1054.             this.ibtBindIndicators[var21++] = (short)(var5 & '\uffff');
  1055.  
  1056.             for(int var23 = 0; var23 < this.numberOfBindPositions; ++var23) {
  1057.                 Binder var14 = var6[var23];
  1058.                 Accessor var15 = this.currentBatchBindAccessors == null?null:this.currentBatchBindAccessors[var23];
  1059.                 PlsqlIndexTableAccessor var16 = var15 != null && var15.defineType == 998?(PlsqlIndexTableAccessor)var15:null;
  1060.                 int var20;
  1061.                 if(var14.type == 998) {
  1062.                     PlsqlIbtBindInfo var17 = var7[var23];
  1063.                     int var18 = var17.maxLen;
  1064.                     this.ibtBindIndicators[var21++] = (short)var17.element_internal_type;
  1065.                     this.ibtBindIndicators[var21++] = (short)var17.elemMaxLen;
  1066.                     this.ibtBindIndicators[var21++] = (short)(var18 >> 16);
  1067.                     this.ibtBindIndicators[var21++] = (short)(var18 & '\uffff');
  1068.                     this.ibtBindIndicators[var21++] = (short)(var17.curLen >> 16);
  1069.                     this.ibtBindIndicators[var21++] = (short)(var17.curLen & '\uffff');
  1070.                     if(var17.ibtByteLength > 0) {
  1071.                         var20 = var8;
  1072.                         var8 += var17.ibtByteLength;
  1073.                     } else {
  1074.                         var20 = var19;
  1075.                         var19 += var17.ibtCharLength;
  1076.                     }
  1077.  
  1078.                     this.ibtBindIndicators[var21++] = (short)(var20 >> 16);
  1079.                     this.ibtBindIndicators[var21++] = (short)(var20 & '\uffff');
  1080.                     var17.ibtValueIndex = var20;
  1081.                     var17.ibtIndicatorIndex = var22;
  1082.                     var17.ibtLengthIndex = var22 + var18;
  1083.                     if(var16 != null) {
  1084.                         var16.ibtIndicatorIndex = var17.ibtIndicatorIndex;
  1085.                         var16.ibtLengthIndex = var17.ibtLengthIndex;
  1086.                         var16.ibtMetaIndex = var21 - 8;
  1087.                         var16.ibtValueIndex = var20;
  1088.                     }
  1089.  
  1090.                     var22 += 2 * var18;
  1091.                 } else if(var16 != null) {
  1092.                     int var24 = var16.maxNumberOfElements;
  1093.                     this.ibtBindIndicators[var21++] = (short)var16.elementInternalType;
  1094.                     this.ibtBindIndicators[var21++] = (short)var16.elementMaxLen;
  1095.                     this.ibtBindIndicators[var21++] = (short)(var24 >> 16);
  1096.                     this.ibtBindIndicators[var21++] = (short)(var24 & '\uffff');
  1097.                     this.ibtBindIndicators[var21++] = 0;
  1098.                     this.ibtBindIndicators[var21++] = 0;
  1099.                     if(var16.ibtByteLength > 0) {
  1100.                         var20 = var8;
  1101.                         var8 += var16.ibtByteLength;
  1102.                     } else {
  1103.                         var20 = var19;
  1104.                         var19 += var16.ibtCharLength;
  1105.                     }
  1106.  
  1107.                     this.ibtBindIndicators[var21++] = (short)(var20 >> 16);
  1108.                     this.ibtBindIndicators[var21++] = (short)(var20 & '\uffff');
  1109.                     var16.ibtValueIndex = var20;
  1110.                     var16.ibtIndicatorIndex = var22;
  1111.                     var16.ibtLengthIndex = var22 + var24;
  1112.                     var16.ibtMetaIndex = var21 - 8;
  1113.                     var22 += 2 * var24;
  1114.                 }
  1115.             }
  1116.  
  1117.         }
  1118.     }
  1119.  
  1120.     void initializeBindSubRanges(int var1, int var2) {
  1121.         this.bindByteSubRange = 0;
  1122.         this.bindCharSubRange = 0;
  1123.     }
  1124.  
  1125.     int calculateIndicatorSubRangeSize() {
  1126.         return 0;
  1127.     }
  1128.  
  1129.     short getInoutIndicator(int var1) {
  1130.         return (short)0;
  1131.     }
  1132.  
  1133.     void initializeIndicatorSubRange() {
  1134.         this.bindIndicatorSubRange = this.calculateIndicatorSubRangeSize();
  1135.     }
  1136.  
  1137.     void prepareBindPreambles(int var1, int var2) {
  1138.     }
  1139.  
  1140.     void setupBindBuffers(int var1, int var2) throws SQLException {
  1141.         try {
  1142.             if(this.numberOfBindPositions == 0) {
  1143.                 if(var2 != 0) {
  1144.                     if(this.bindIndicators == null) {
  1145.                         this.allocBinds(var2);
  1146.                     }
  1147.  
  1148.                     this.numberOfBoundRows = var2;
  1149.                     this.bindIndicators[this.bindIndicatorSubRange + 3] = (short)((this.numberOfBoundRows & -65536) >> 16);
  1150.                     this.bindIndicators[this.bindIndicatorSubRange + 4] = (short)(this.numberOfBoundRows & '\uffff');
  1151.                 }
  1152.  
  1153.             } else {
  1154.                 this.preparedAllBinds = this.currentBatchNeedToPrepareBinds;
  1155.                 this.preparedCharBinds = false;
  1156.                 this.currentBatchNeedToPrepareBinds = false;
  1157.                 this.numberOfBoundRows = var2;
  1158.                 this.bindIndicators[this.bindIndicatorSubRange + 3] = (short)((this.numberOfBoundRows & -65536) >> 16);
  1159.                 this.bindIndicators[this.bindIndicatorSubRange + 4] = (short)(this.numberOfBoundRows & '\uffff');
  1160.                 int var23 = this.bindBufferCapacity;
  1161.                 if(this.numberOfBoundRows > this.bindBufferCapacity) {
  1162.                     var23 = this.numberOfBoundRows;
  1163.                     this.preparedAllBinds = true;
  1164.                 }
  1165.  
  1166.                 int var3;
  1167.                 int var6;
  1168.                 if(this.currentBatchBindAccessors != null) {
  1169.                     if(this.outBindAccessors == null) {
  1170.                         this.outBindAccessors = new Accessor[this.numberOfBindPositions];
  1171.                     }
  1172.  
  1173.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1174.                         Accessor var5 = this.currentBatchBindAccessors[var3];
  1175.                         this.outBindAccessors[var3] = var5;
  1176.                         if(var5 != null) {
  1177.                             var6 = var5.charLength;
  1178.                             if(var6 == 0 || this.currentBatchCharLens[var3] < var6) {
  1179.                                 this.currentBatchCharLens[var3] = var6;
  1180.                             }
  1181.                         }
  1182.                     }
  1183.                 }
  1184.  
  1185.                 int var24 = 0;
  1186.                 var6 = 0;
  1187.                 int var7 = this.bindIndicatorSubRange + 5;
  1188.                 int var8 = var7;
  1189.                 short var11;
  1190.                 int var12;
  1191.                 int var13;
  1192.                 int var25;
  1193.                 int var26;
  1194.                 if(this.preparedAllBinds) {
  1195.                     this.preparedCharBinds = true;
  1196.                     Binder[] var9 = this.binders[var1];
  1197.  
  1198.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1199.                         Binder var10 = var9[var3];
  1200.                         var13 = this.currentBatchCharLens[var3];
  1201.                         if(var10 == this.theOutBinder) {
  1202.                             Accessor var14 = this.currentBatchBindAccessors[var3];
  1203.                             var12 = var14.byteLength;
  1204.                             var11 = (short)var14.defineType;
  1205.                         } else {
  1206.                             var12 = var10.bytelen;
  1207.                             var11 = var10.type;
  1208.                         }
  1209.  
  1210.                         var6 += var12;
  1211.                         var24 += var13;
  1212.                         this.bindIndicators[var8 + 0] = var11;
  1213.                         this.bindIndicators[var8 + 1] = (short)var12;
  1214.                         this.bindIndicators[var8 + 2] = (short)var13;
  1215.                         this.bindIndicators[var8 + 9] = this.currentBatchFormOfUse[var3];
  1216.                         var8 += 10;
  1217.                     }
  1218.                 } else if(this.preparedCharBinds) {
  1219.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1220.                         var25 = this.currentBatchCharLens[var3];
  1221.                         var24 += var25;
  1222.                         this.bindIndicators[var8 + 2] = (short)var25;
  1223.                         var8 += 10;
  1224.                     }
  1225.                 } else {
  1226.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1227.                         var25 = var8 + 2;
  1228.                         var26 = this.currentBatchCharLens[var3];
  1229.                         var11 = this.bindIndicators[var25];
  1230.                         var12 = (this.bindIndicators[var8 + 5] << 16) + (this.bindIndicators[var8 + 6] & '\uffff');
  1231.                         boolean var28 = this.bindIndicators[var12] == -1;
  1232.                         if(var28 && var26 > 1) {
  1233.                             this.preparedCharBinds = true;
  1234.                         }
  1235.  
  1236.                         if(var11 >= var26 && !this.preparedCharBinds) {
  1237.                             this.currentBatchCharLens[var3] = var11;
  1238.                             var24 += var11;
  1239.                         } else {
  1240.                             this.bindIndicators[var25] = (short)var26;
  1241.                             var24 += var26;
  1242.                             this.preparedCharBinds = true;
  1243.                         }
  1244.  
  1245.                         var8 += 10;
  1246.                     }
  1247.                 }
  1248.  
  1249.                 if(this.preparedCharBinds) {
  1250.                     this.initializeBindSubRanges(this.numberOfBoundRows, var23);
  1251.                 }
  1252.  
  1253.                 if(this.preparedAllBinds) {
  1254.                     var25 = this.bindByteSubRange + var6 * var23;
  1255.                     if(this.lastBoundNeeded || var25 > this.totalBindByteLength) {
  1256.                         this.bindByteOffset = 0;
  1257.                         this.bindBytes = this.connection.getByteBuffer(var25);
  1258.                         this.totalBindByteLength = var25;
  1259.                     }
  1260.  
  1261.                     this.bindBufferCapacity = var23;
  1262.                     this.bindIndicators[this.bindIndicatorSubRange + 1] = (short)((this.bindBufferCapacity & -65536) >> 16);
  1263.                     this.bindIndicators[this.bindIndicatorSubRange + 2] = (short)(this.bindBufferCapacity & '\uffff');
  1264.                 }
  1265.  
  1266.                 if(this.preparedCharBinds) {
  1267.                     var25 = this.bindCharSubRange + var24 * this.bindBufferCapacity;
  1268.                     if(this.lastBoundNeeded || var25 > this.totalBindCharLength) {
  1269.                         this.bindCharOffset = 0;
  1270.                         this.bindChars = this.connection.getCharBuffer(var25);
  1271.                         this.totalBindCharLength = var25;
  1272.                     }
  1273.  
  1274.                     this.bindByteSubRange += this.bindByteOffset;
  1275.                     this.bindCharSubRange += this.bindCharOffset;
  1276.                 }
  1277.  
  1278.                 var25 = this.bindByteSubRange;
  1279.                 var26 = this.bindCharSubRange;
  1280.                 int var27 = this.indicatorsOffset;
  1281.                 var12 = this.valueLengthsOffset;
  1282.                 var8 = var7;
  1283.                 int var15;
  1284.                 int var30;
  1285.                 if(this.preparedCharBinds) {
  1286.                     short var29;
  1287.                     if(this.currentBatchBindAccessors == null) {
  1288.                         for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1289.                             var29 = this.bindIndicators[var8 + 1];
  1290.                             var30 = this.currentBatchCharLens[var3];
  1291.                             var15 = var30 == 0?var25:var26;
  1292.                             this.bindIndicators[var8 + 3] = (short)(var15 >> 16);
  1293.                             this.bindIndicators[var8 + 4] = (short)(var15 & '\uffff');
  1294.                             var25 += var29 * this.bindBufferCapacity;
  1295.                             var26 += var30 * this.bindBufferCapacity;
  1296.                             var8 += 10;
  1297.                         }
  1298.                     } else {
  1299.                         for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1300.                             var29 = this.bindIndicators[var8 + 1];
  1301.                             var30 = this.currentBatchCharLens[var3];
  1302.                             var15 = var30 == 0?var25:var26;
  1303.                             this.bindIndicators[var8 + 3] = (short)(var15 >> 16);
  1304.                             this.bindIndicators[var8 + 4] = (short)(var15 & '\uffff');
  1305.                             Accessor var16 = this.currentBatchBindAccessors[var3];
  1306.                             if(var16 != null) {
  1307.                                 if(var30 > 0) {
  1308.                                     var16.columnIndex = var26;
  1309.                                     var16.charLength = var30;
  1310.                                 } else {
  1311.                                     var16.columnIndex = var25;
  1312.                                     var16.byteLength = var29;
  1313.                                 }
  1314.  
  1315.                                 var16.lengthIndex = var12;
  1316.                                 var16.indicatorIndex = var27;
  1317.                                 var16.rowSpaceByte = this.bindBytes;
  1318.                                 var16.rowSpaceChar = this.bindChars;
  1319.                                 var16.rowSpaceIndicator = this.bindIndicators;
  1320.                                 if(var16.defineType == 109 || var16.defineType == 111) {
  1321.                                     var16.setOffsets(this.bindBufferCapacity);
  1322.                                 }
  1323.                             }
  1324.  
  1325.                             var25 += var29 * this.bindBufferCapacity;
  1326.                             var26 += var30 * this.bindBufferCapacity;
  1327.                             var27 += this.numberOfBindRowsAllocated;
  1328.                             var12 += this.numberOfBindRowsAllocated;
  1329.                             var8 += 10;
  1330.                         }
  1331.                     }
  1332.  
  1333.                     var25 = this.bindByteSubRange;
  1334.                     var26 = this.bindCharSubRange;
  1335.                     var27 = this.indicatorsOffset;
  1336.                     var12 = this.valueLengthsOffset;
  1337.                     var8 = var7;
  1338.                 }
  1339.  
  1340.                 var13 = this.bindBufferCapacity - this.numberOfBoundRows;
  1341.                 var30 = this.numberOfBoundRows - 1;
  1342.                 var15 = var30 + var1;
  1343.                 Binder[] var31 = this.binders[var15];
  1344.                 if(this.parameterOtype != null) {
  1345.                     System.arraycopy(this.parameterDatum[var15], 0, this.lastBoundTypeBytes, 0, this.numberOfBindPositions);
  1346.                     System.arraycopy(this.parameterOtype[var15], 0, this.lastBoundTypeOtypes, 0, this.numberOfBindPositions);
  1347.                 }
  1348.  
  1349.                 if(this.hasIbtBind) {
  1350.                     this.processPlsqlIndexTabBinds(var1);
  1351.                 }
  1352.  
  1353.                 if(this.numReturnParams <= 0 || this.returnParamAccessors != null && this.returnParamAccessors.length >= this.numReturnParams) {
  1354.                     if(this.returnParamAccessors != null) {
  1355.                         this.processDmlReturningBind();
  1356.                     }
  1357.  
  1358.                     boolean var32 = !this.sqlKind.isPlsqlOrCall() || this.currentRowBindAccessors == null;
  1359.  
  1360.                     for(var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  1361.                         short var18 = this.bindIndicators[var8 + 1];
  1362.                         int var19 = this.currentBatchCharLens[var3];
  1363.                         this.lastBinders[var3] = var31[var3];
  1364.                         this.lastBoundByteLens[var3] = var18;
  1365.  
  1366.                         for(int var20 = 0; var20 < this.numberOfBoundRows; ++var20) {
  1367.                             int var21 = var1 + var20;
  1368.                             this.binders[var21][var3].bind(this, var3, var20, var21, this.bindBytes, this.bindChars, this.bindIndicators, var18, var19, var25, var26, var12 + var20, var27 + var20, var32);
  1369.                             this.binders[var21][var3] = null;
  1370.                             if(this.userStream != null) {
  1371.                                 this.userStream[var20][var3] = null;
  1372.                             }
  1373.  
  1374.                             var25 += var18;
  1375.                             var26 += var19;
  1376.                         }
  1377.  
  1378.                         this.lastBoundByteOffsets[var3] = var25 - var18;
  1379.                         this.lastBoundCharOffsets[var3] = var26 - var19;
  1380.                         this.lastBoundInds[var3] = this.bindIndicators[var27 + var30];
  1381.                         this.lastBoundLens[var3] = this.bindIndicators[var12 + var30];
  1382.                         this.lastBoundCharLens[var3] = 0;
  1383.                         var25 += var13 * var18;
  1384.                         var26 += var13 * var19;
  1385.                         var27 += this.numberOfBindRowsAllocated;
  1386.                         var12 += this.numberOfBindRowsAllocated;
  1387.                         var8 += 10;
  1388.                     }
  1389.  
  1390.                     this.lastBoundBytes = this.bindBytes;
  1391.                     this.lastBoundByteOffset = this.bindByteOffset;
  1392.                     this.lastBoundChars = this.bindChars;
  1393.                     this.lastBoundCharOffset = this.bindCharOffset;
  1394.                     if(this.parameterStream != null) {
  1395.                         this.lastBoundStream = this.parameterStream[var1 + this.numberOfBoundRows - 1];
  1396.                     }
  1397.  
  1398.                     int[] var33 = this.currentBatchCharLens;
  1399.                     this.currentBatchCharLens = this.lastBoundCharLens;
  1400.                     this.lastBoundCharLens = var33;
  1401.                     this.lastBoundNeeded = false;
  1402.                     this.prepareBindPreambles(this.numberOfBoundRows, this.bindBufferCapacity);
  1403.                 } else {
  1404.                     SQLException var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 173);
  1405.                     var17.fillInStackTrace();
  1406.                     throw var17;
  1407.                 }
  1408.             }
  1409.         } catch (NullPointerException var22) {
  1410.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 89);
  1411.             var4.fillInStackTrace();
  1412.             throw var4;
  1413.         }
  1414.     }
  1415.  
  1416.     void releaseBuffers() {
  1417.         this.cachedBindCharSize = this.bindChars != null?this.bindChars.length:0;
  1418.         if(this.bindChars != this.lastBoundChars) {
  1419.             this.connection.cacheBuffer(this.lastBoundChars);
  1420.         }
  1421.  
  1422.         this.lastBoundChars = null;
  1423.         this.connection.cacheBuffer(this.bindChars);
  1424.         this.bindChars = null;
  1425.         this.cachedBindByteSize = this.bindBytes != null?this.bindBytes.length:0;
  1426.         if(this.bindBytes != this.lastBoundBytes) {
  1427.             this.connection.cacheBuffer(this.lastBoundBytes);
  1428.         }
  1429.  
  1430.         this.lastBoundBytes = null;
  1431.         this.connection.cacheBuffer(this.bindBytes);
  1432.         this.bindBytes = null;
  1433.         super.releaseBuffers();
  1434.     }
  1435.  
  1436.     public void enterImplicitCache() throws SQLException {
  1437.         this.alwaysOnClose();
  1438.         if(!this.connection.isClosed()) {
  1439.             this.cleanAllTempLobs();
  1440.         }
  1441.  
  1442.         if(this.connection.clearStatementMetaData) {
  1443.             this.lastBoundBytes = null;
  1444.             this.lastBoundChars = null;
  1445.         }
  1446.  
  1447.         this.clearParameters();
  1448.         this.cacheState = 2;
  1449.         this.creationState = 1;
  1450.         this.currentResultSet = null;
  1451.         this.lastIndex = 0;
  1452.         this.queryTimeout = 0;
  1453.         this.autoRollback = 2;
  1454.         this.rowPrefetchChanged = false;
  1455.         this.currentRank = 0;
  1456.         this.currentRow = -1;
  1457.         this.validRows = 0;
  1458.         this.maxRows = 0;
  1459.         this.totalRowsVisited = 0;
  1460.         this.maxFieldSize = 0;
  1461.         this.gotLastBatch = false;
  1462.         this.clearParameters = true;
  1463.         this.scrollRset = null;
  1464.         this.defaultFetchDirection = 1000;
  1465.         this.defaultTimeZone = null;
  1466.         this.defaultCalendar = null;
  1467.         this.checkSum = 0L;
  1468.         this.checkSumComputationFailure = false;
  1469.         if(this.sqlKind.isOTHER()) {
  1470.             this.needToParse = true;
  1471.             this.needToPrepareDefineBuffer = true;
  1472.             this.columnsDefinedByUser = false;
  1473.         }
  1474.  
  1475.         this.releaseBuffers();
  1476.         this.definedColumnType = null;
  1477.         this.definedColumnSize = null;
  1478.         this.definedColumnFormOfUse = null;
  1479.         if(this.accessors != null) {
  1480.             int var1 = this.accessors.length;
  1481.  
  1482.             for(int var2 = 0; var2 < var1; ++var2) {
  1483.                 if(this.accessors[var2] != null) {
  1484.                     this.accessors[var2].rowSpaceByte = null;
  1485.                     this.accessors[var2].rowSpaceChar = null;
  1486.                     this.accessors[var2].rowSpaceIndicator = null;
  1487.                     if(this.columnsDefinedByUser) {
  1488.                         this.accessors[var2].externalType = 0;
  1489.                     }
  1490.                 }
  1491.             }
  1492.         }
  1493.  
  1494.         this.fixedString = this.connection.getDefaultFixedString();
  1495.         this.defaultRowPrefetch = this.rowPrefetch;
  1496.         this.rowPrefetchInLastFetch = -1;
  1497.         if(this.connection.clearStatementMetaData) {
  1498.             this.sqlStringChanged = true;
  1499.             this.needToParse = true;
  1500.             this.needToPrepareDefineBuffer = true;
  1501.             this.columnsDefinedByUser = false;
  1502.             if(this.userRsetType == 0) {
  1503.                 this.userRsetType = 1;
  1504.                 this.realRsetType = 1;
  1505.             }
  1506.  
  1507.             this.currentRowNeedToPrepareBinds = true;
  1508.         }
  1509.  
  1510.     }
  1511.  
  1512.     public void enterExplicitCache() throws SQLException {
  1513.         this.cacheState = 2;
  1514.         this.creationState = 2;
  1515.         this.defaultTimeZone = null;
  1516.         this.alwaysOnClose();
  1517.     }
  1518.  
  1519.     public void exitImplicitCacheToActive() throws SQLException {
  1520.         this.cacheState = 1;
  1521.         this.closed = false;
  1522.         if(this.rowPrefetch != this.connection.getDefaultRowPrefetch() && this.streamList == null) {
  1523.             this.rowPrefetch = this.connection.getDefaultRowPrefetch();
  1524.             this.defaultRowPrefetch = this.rowPrefetch;
  1525.             this.rowPrefetchChanged = true;
  1526.         }
  1527.  
  1528.         if(this.batch != this.connection.getDefaultExecuteBatch()) {
  1529.             this.resetBatch();
  1530.         }
  1531.  
  1532.         this.processEscapes = this.connection.processEscapes;
  1533.         if(this.cachedDefineIndicatorSize != 0) {
  1534.             this.defineBytes = this.connection.getByteBuffer(this.cachedDefineByteSize);
  1535.             this.defineChars = this.connection.getCharBuffer(this.cachedDefineCharSize);
  1536.             this.defineIndicators = new short[this.cachedDefineIndicatorSize];
  1537.             if(this.accessors != null) {
  1538.                 int var1 = this.accessors.length;
  1539.  
  1540.                 for(int var2 = 0; var2 < var1; ++var2) {
  1541.                     if(this.accessors[var2] != null) {
  1542.                         this.accessors[var2].rowSpaceByte = this.defineBytes;
  1543.                         this.accessors[var2].rowSpaceChar = this.defineChars;
  1544.                         this.accessors[var2].rowSpaceIndicator = this.defineIndicators;
  1545.                     }
  1546.                 }
  1547.  
  1548.                 this.doInitializationAfterDefineBufferRestore();
  1549.             }
  1550.         }
  1551.  
  1552.         if(this.cachedBindCharSize != 0 || this.cachedBindByteSize != 0) {
  1553.             if(this.cachedBindByteSize > 0) {
  1554.                 this.bindBytes = this.connection.getByteBuffer(this.cachedBindByteSize);
  1555.             }
  1556.  
  1557.             if(this.cachedBindCharSize > 0) {
  1558.                 this.bindChars = this.connection.getCharBuffer(this.cachedBindCharSize);
  1559.             }
  1560.  
  1561.             this.doLocalInitialization();
  1562.         }
  1563.  
  1564.     }
  1565.  
  1566.     void doLocalInitialization() {
  1567.     }
  1568.  
  1569.     void doInitializationAfterDefineBufferRestore() {
  1570.     }
  1571.  
  1572.     public void exitExplicitCacheToActive() throws SQLException {
  1573.         this.cacheState = 1;
  1574.         this.closed = false;
  1575.     }
  1576.  
  1577.     public void exitImplicitCacheToClose() throws SQLException {
  1578.         this.cacheState = 0;
  1579.         this.closed = false;
  1580.         PhysicalConnection var1 = this.connection;
  1581.         synchronized(this.connection) {
  1582.             this.hardClose();
  1583.         }
  1584.     }
  1585.  
  1586.     public void exitExplicitCacheToClose() throws SQLException {
  1587.         this.cacheState = 0;
  1588.         this.closed = false;
  1589.         PhysicalConnection var1 = this.connection;
  1590.         synchronized(this.connection) {
  1591.             this.hardClose();
  1592.         }
  1593.     }
  1594.  
  1595.     public void closeWithKey(String var1) throws SQLException {
  1596.         PhysicalConnection var2 = this.connection;
  1597.         synchronized(this.connection) {
  1598.             this.closeOrCache(var1);
  1599.         }
  1600.     }
  1601.  
  1602.     int executeInternal() throws SQLException {
  1603.         this.noMoreUpdateCounts = false;
  1604.         this.checkSum = 0L;
  1605.         this.checkSumComputationFailure = false;
  1606.         this.ensureOpen();
  1607.         if(this.currentRank > 0 && this.m_batchStyle == 2) {
  1608.             SQLException var3 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 81, "batch must be either executed or cleared");
  1609.             var3.fillInStackTrace();
  1610.             throw var3;
  1611.         } else {
  1612.             boolean var1 = this.userRsetType == 1;
  1613.             this.prepareForNewResults(true, false);
  1614.             this.processCompletedBindRow(this.sqlKind.isSELECT()?1:this.batch, false);
  1615.             if(!var1 && !this.scrollRsetTypeSolved) {
  1616.                 return this.doScrollPstmtExecuteUpdate() + this.prematureBatchCount;
  1617.             } else {
  1618.                 this.doExecuteWithTimeout();
  1619.                 boolean var2 = this.prematureBatchCount != 0 && this.validRows > 0;
  1620.                 if(!var1) {
  1621.                     this.currentResultSet = new OracleResultSetImpl(this.connection, this);
  1622.                     this.scrollRset = ResultSetUtil.createScrollResultSet(this, this.currentResultSet, this.realRsetType);
  1623.                     if(!this.connection.accumulateBatchResult) {
  1624.                         var2 = false;
  1625.                     }
  1626.                 }
  1627.  
  1628.                 if(var2) {
  1629.                     this.validRows += this.prematureBatchCount;
  1630.                     this.prematureBatchCount = 0;
  1631.                 }
  1632.  
  1633.                 if(this.sqlKind.isOTHER()) {
  1634.                     this.needToParse = true;
  1635.                 }
  1636.  
  1637.                 return this.validRows;
  1638.             }
  1639.         }
  1640.     }
  1641.  
  1642.     public ResultSet executeQuery() throws SQLException {
  1643.         PhysicalConnection var1 = this.connection;
  1644.         synchronized(this.connection) {
  1645.             this.executionType = 1;
  1646.             this.executeInternal();
  1647.             if(this.userRsetType == 1) {
  1648.                 this.currentResultSet = new OracleResultSetImpl(this.connection, this);
  1649.                 return this.currentResultSet;
  1650.             } else {
  1651.                 if(this.scrollRset == null) {
  1652.                     this.currentResultSet = new OracleResultSetImpl(this.connection, this);
  1653.                     this.scrollRset = this.currentResultSet;
  1654.                 }
  1655.  
  1656.                 return this.scrollRset;
  1657.             }
  1658.         }
  1659.     }
  1660.  
  1661.     public int executeUpdate() throws SQLException {
  1662.         PhysicalConnection var1 = this.connection;
  1663.         synchronized(this.connection) {
  1664.             this.executionType = 2;
  1665.             return this.executeInternal();
  1666.         }
  1667.     }
  1668.  
  1669.     public boolean execute() throws SQLException {
  1670.         PhysicalConnection var1 = this.connection;
  1671.         synchronized(this.connection) {
  1672.             this.executionType = 3;
  1673.             this.executeInternal();
  1674.             return this.sqlKind.isSELECT();
  1675.         }
  1676.     }
  1677.  
  1678.     void slideDownCurrentRow(int var1) {
  1679.         if(this.binders != null) {
  1680.             this.binders[var1] = this.binders[0];
  1681.             this.binders[0] = this.currentRowBinders;
  1682.         }
  1683.  
  1684.         if(this.parameterInt != null) {
  1685.             int[] var2 = this.parameterInt[0];
  1686.             this.parameterInt[0] = this.parameterInt[var1];
  1687.             this.parameterInt[var1] = var2;
  1688.         }
  1689.  
  1690.         if(this.parameterLong != null) {
  1691.             long[] var3 = this.parameterLong[0];
  1692.             this.parameterLong[0] = this.parameterLong[var1];
  1693.             this.parameterLong[var1] = var3;
  1694.         }
  1695.  
  1696.         if(this.parameterFloat != null) {
  1697.             float[] var4 = this.parameterFloat[0];
  1698.             this.parameterFloat[0] = this.parameterFloat[var1];
  1699.             this.parameterFloat[var1] = var4;
  1700.         }
  1701.  
  1702.         if(this.parameterDouble != null) {
  1703.             double[] var5 = this.parameterDouble[0];
  1704.             this.parameterDouble[0] = this.parameterDouble[var1];
  1705.             this.parameterDouble[var1] = var5;
  1706.         }
  1707.  
  1708.         if(this.parameterBigDecimal != null) {
  1709.             BigDecimal[] var6 = this.parameterBigDecimal[0];
  1710.             this.parameterBigDecimal[0] = this.parameterBigDecimal[var1];
  1711.             this.parameterBigDecimal[var1] = var6;
  1712.         }
  1713.  
  1714.         if(this.parameterString != null) {
  1715.             String[] var7 = this.parameterString[0];
  1716.             this.parameterString[0] = this.parameterString[var1];
  1717.             this.parameterString[var1] = var7;
  1718.         }
  1719.  
  1720.         if(this.parameterDate != null) {
  1721.             Date[] var8 = this.parameterDate[0];
  1722.             this.parameterDate[0] = this.parameterDate[var1];
  1723.             this.parameterDate[var1] = var8;
  1724.         }
  1725.  
  1726.         if(this.parameterTime != null) {
  1727.             Time[] var9 = this.parameterTime[0];
  1728.             this.parameterTime[0] = this.parameterTime[var1];
  1729.             this.parameterTime[var1] = var9;
  1730.         }
  1731.  
  1732.         if(this.parameterTimestamp != null) {
  1733.             Timestamp[] var10 = this.parameterTimestamp[0];
  1734.             this.parameterTimestamp[0] = this.parameterTimestamp[var1];
  1735.             this.parameterTimestamp[var1] = var10;
  1736.         }
  1737.  
  1738.         if(this.parameterDatum != null) {
  1739.             byte[][] var11 = this.parameterDatum[0];
  1740.             this.parameterDatum[0] = this.parameterDatum[var1];
  1741.             this.parameterDatum[var1] = var11;
  1742.         }
  1743.  
  1744.         if(this.parameterOtype != null) {
  1745.             OracleTypeADT[] var12 = this.parameterOtype[0];
  1746.             this.parameterOtype[0] = this.parameterOtype[var1];
  1747.             this.parameterOtype[var1] = var12;
  1748.         }
  1749.  
  1750.         if(this.parameterStream != null) {
  1751.             InputStream[] var13 = this.parameterStream[0];
  1752.             this.parameterStream[0] = this.parameterStream[var1];
  1753.             this.parameterStream[var1] = var13;
  1754.         }
  1755.  
  1756.         if(this.userStream != null) {
  1757.             Object[] var14 = this.userStream[0];
  1758.             this.userStream[0] = this.userStream[var1];
  1759.             this.userStream[var1] = var14;
  1760.         }
  1761.  
  1762.     }
  1763.  
  1764.     void resetBatch() {
  1765.         this.batch = this.connection.getDefaultExecuteBatch();
  1766.     }
  1767.  
  1768.     public int sendBatch() throws SQLException {
  1769.         if(this.isJdbcBatchStyle()) {
  1770.             return 0;
  1771.         } else {
  1772.             PhysicalConnection var1 = this.connection;
  1773.             synchronized(this.connection) {
  1774.                 int var2;
  1775.                 try {
  1776.                     this.ensureOpen();
  1777.                     if(this.currentRank > 0) {
  1778.                         var2 = this.batch;
  1779.  
  1780.                         int var3;
  1781.                         try {
  1782.                             var3 = this.currentRank;
  1783.                             if(this.batch != this.currentRank) {
  1784.                                 this.batch = this.currentRank;
  1785.                             }
  1786.  
  1787.                             this.setupBindBuffers(0, this.currentRank);
  1788.                             --this.currentRank;
  1789.                             this.doExecuteWithTimeout();
  1790.                             this.slideDownCurrentRow(var3);
  1791.                         } finally {
  1792.                             if(this.batch != var2) {
  1793.                                 this.batch = var2;
  1794.                             }
  1795.  
  1796.                         }
  1797.  
  1798.                         if(this.connection.accumulateBatchResult) {
  1799.                             this.validRows += this.prematureBatchCount;
  1800.                             this.prematureBatchCount = 0;
  1801.                         }
  1802.  
  1803.                         var3 = this.validRows;
  1804.                         return var3;
  1805.                     }
  1806.  
  1807.                     var2 = this.connection.accumulateBatchResult?0:this.validRows;
  1808.                 } finally {
  1809.                     this.currentRank = 0;
  1810.                 }
  1811.  
  1812.                 return var2;
  1813.             }
  1814.         }
  1815.     }
  1816.  
  1817.     public void setExecuteBatch(int var1) throws SQLException {
  1818.         PhysicalConnection var2 = this.connection;
  1819.         synchronized(this.connection) {
  1820.             this.setOracleBatchStyle();
  1821.             this.set_execute_batch(var1);
  1822.         }
  1823.     }
  1824.  
  1825.     void set_execute_batch(int var1) throws SQLException {
  1826.         PhysicalConnection var2 = this.connection;
  1827.         synchronized(this.connection) {
  1828.             if(var1 <= 0) {
  1829.                 SQLException var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 42);
  1830.                 var6.fillInStackTrace();
  1831.                 throw var6;
  1832.             } else if(var1 != this.batch) {
  1833.                 int var3;
  1834.                 if(this.currentRank > 0) {
  1835.                     var3 = this.validRows;
  1836.                     this.prematureBatchCount = this.sendBatch();
  1837.                     this.validRows = var3;
  1838.                 }
  1839.  
  1840.                 var3 = this.batch;
  1841.                 this.batch = var1;
  1842.                 if(this.numberOfBindRowsAllocated < this.batch) {
  1843.                     this.growBinds(this.batch);
  1844.                 }
  1845.  
  1846.             }
  1847.         }
  1848.     }
  1849.  
  1850.     public final int getExecuteBatch() {
  1851.         return this.batch;
  1852.     }
  1853.  
  1854.     public void defineParameterTypeBytes(int var1, int var2, int var3) throws SQLException {
  1855.         PhysicalConnection var4 = this.connection;
  1856.         synchronized(this.connection) {
  1857.             SQLException var5;
  1858.             if(var3 < 0) {
  1859.                 var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 53);
  1860.                 var5.fillInStackTrace();
  1861.                 throw var5;
  1862.             } else if(var1 < 1) {
  1863.                 var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  1864.                 var5.fillInStackTrace();
  1865.                 throw var5;
  1866.             } else {
  1867.                 boolean var8;
  1868.                 switch(var2) {
  1869.                 case -104:
  1870.                     var8 = true;
  1871.                     break;
  1872.                 case -103:
  1873.                     var8 = true;
  1874.                     break;
  1875.                 case -102:
  1876.                     var8 = true;
  1877.                     break;
  1878.                 case -101:
  1879.                     var8 = true;
  1880.                     break;
  1881.                 case -100:
  1882.                 case 93:
  1883.                     var8 = true;
  1884.                     break;
  1885.                 case -13:
  1886.                     var8 = true;
  1887.                     break;
  1888.                 case -10:
  1889.                     var8 = true;
  1890.                     break;
  1891.                 case -8:
  1892.                     var8 = true;
  1893.                     break;
  1894.                 case -7:
  1895.                 case -6:
  1896.                 case -5:
  1897.                 case 2:
  1898.                 case 3:
  1899.                 case 4:
  1900.                 case 5:
  1901.                 case 6:
  1902.                 case 7:
  1903.                 case 8:
  1904.                     var8 = true;
  1905.                     break;
  1906.                 case -3:
  1907.                 case -2:
  1908.                     var8 = true;
  1909.                     break;
  1910.                 case 0:
  1911.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 4);
  1912.                     var5.fillInStackTrace();
  1913.                     throw var5;
  1914.                 case 1:
  1915.                     var8 = true;
  1916.                     break;
  1917.                 case 12:
  1918.                     var8 = true;
  1919.                     break;
  1920.                 case 91:
  1921.                 case 92:
  1922.                     var8 = true;
  1923.                     break;
  1924.                 case 100:
  1925.                     var8 = true;
  1926.                     break;
  1927.                 case 101:
  1928.                     var8 = true;
  1929.                     break;
  1930.                 case 2004:
  1931.                     var8 = true;
  1932.                     break;
  1933.                 case 2005:
  1934.                     var8 = true;
  1935.                     break;
  1936.                 default:
  1937.                     var5 = DatabaseError.createUnsupportedFeatureSqlException();
  1938.                     var5.fillInStackTrace();
  1939.                     throw var5;
  1940.                 }
  1941.  
  1942.             }
  1943.         }
  1944.     }
  1945.  
  1946.     public void defineParameterTypeChars(int var1, int var2, int var3) throws SQLException {
  1947.         PhysicalConnection var4 = this.connection;
  1948.         synchronized(this.connection) {
  1949.             int var5 = this.connection.getNlsRatio();
  1950.             if(var2 != 1 && var2 != 12) {
  1951.                 this.defineParameterTypeBytes(var1, var2, var3);
  1952.             } else {
  1953.                 this.defineParameterTypeBytes(var1, var2, var3 * var5);
  1954.             }
  1955.  
  1956.         }
  1957.     }
  1958.  
  1959.     public void defineParameterType(int var1, int var2, int var3) throws SQLException {
  1960.         PhysicalConnection var4 = this.connection;
  1961.         synchronized(this.connection) {
  1962.             this.defineParameterTypeBytes(var1, var2, var3);
  1963.         }
  1964.     }
  1965.  
  1966.     public ResultSetMetaData getMetaData() throws SQLException {
  1967.         return this.sqlObject.getSqlKind().isSELECT()?new OracleResultSetMetaData(this.connection, this):null;
  1968.     }
  1969.  
  1970.     public void setNull(int var1, int var2, String var3) throws SQLException {
  1971.         this.setNullInternal(var1, var2, var3);
  1972.     }
  1973.  
  1974.     void setNullInternal(int var1, int var2, String var3) throws SQLException {
  1975.         int var4 = var1 - 1;
  1976.         if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  1977.             if(var2 != 2002 && var2 != 2008 && var2 != 2003 && var2 != 2007 && var2 != 2009 && var2 != 2006) {
  1978.                 this.setNullInternal(var1, var2);
  1979.             } else {
  1980.                 PhysicalConnection var8 = this.connection;
  1981.                 synchronized(this.connection) {
  1982.                     this.setNullCritical(var4, var2, var3);
  1983.                     this.currentRowCharLens[var4] = 0;
  1984.                 }
  1985.             }
  1986.         } else {
  1987.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  1988.             var5.fillInStackTrace();
  1989.             throw var5;
  1990.         }
  1991.     }
  1992.  
  1993.     void setNullInternal(int var1, int var2) throws SQLException {
  1994.         PhysicalConnection var3 = this.connection;
  1995.         synchronized(this.connection) {
  1996.             this.setNullCritical(var1, var2);
  1997.         }
  1998.     }
  1999.  
  2000.     void setNullCritical(int var1, int var2, String var3) throws SQLException {
  2001.         Object var4 = null;
  2002.         Binder var5 = this.theNamedTypeNullBinder;
  2003.         switch(var2) {
  2004.         case 2003:
  2005.             ArrayDescriptor var7 = ArrayDescriptor.createDescriptor(var3, this.connection);
  2006.             var4 = var7.getOracleTypeCOLLECTION();
  2007.         case 2004:
  2008.         case 2005:
  2009.         default:
  2010.             break;
  2011.         case 2006:
  2012.             var5 = this.theRefTypeNullBinder;
  2013.         case 2002:
  2014.         case 2008:
  2015.             StructDescriptor var8 = StructDescriptor.createDescriptor(var3, this.connection);
  2016.             var4 = var8.getOracleTypeADT();
  2017.             break;
  2018.         case 2007:
  2019.         case 2009:
  2020.             OpaqueDescriptor var6 = OpaqueDescriptor.createDescriptor(var3, this.connection);
  2021.             var4 = (OracleTypeADT)var6.getPickler();
  2022.         }
  2023.  
  2024.         this.currentRowBinders[var1] = var5;
  2025.         if(this.parameterDatum == null) {
  2026.             this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2027.         }
  2028.  
  2029.         this.parameterDatum[this.currentRank][var1] = null;
  2030.         if(var4 != null) {
  2031.             ((OracleTypeADT)var4).getTOID();
  2032.         }
  2033.  
  2034.         if(this.parameterOtype == null) {
  2035.             this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2036.         }
  2037.  
  2038.         this.parameterOtype[this.currentRank][var1] = (OracleTypeADT)var4;
  2039.     }
  2040.  
  2041.     public void setNullAtName(String var1, int var2, String var3) throws SQLException {
  2042.         String var4 = var1.intern();
  2043.         String[] var5 = this.sqlObject.getParameterList();
  2044.         boolean var6 = false;
  2045.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  2046.  
  2047.         for(int var8 = 0; var8 < var7; ++var8) {
  2048.             if(var5[var8] == var4) {
  2049.                 this.setNullInternal(var8 + 1, var2, var3);
  2050.                 var6 = true;
  2051.             }
  2052.         }
  2053.  
  2054.         if(!var6) {
  2055.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  2056.             var9.fillInStackTrace();
  2057.             throw var9;
  2058.         }
  2059.     }
  2060.  
  2061.     public void setNull(int var1, int var2) throws SQLException {
  2062.         PhysicalConnection var3 = this.connection;
  2063.         synchronized(this.connection) {
  2064.             this.setNullCritical(var1, var2);
  2065.         }
  2066.     }
  2067.  
  2068.     void setNullCritical(int var1, int var2) throws SQLException {
  2069.         int var3 = var1 - 1;
  2070.         SQLException var4;
  2071.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2072.             var4 = null;
  2073.             int var5 = this.getInternalType(var2);
  2074.             SQLException var6;
  2075.             Binder var7;
  2076.             switch(var5) {
  2077.             case 1:
  2078.             case 8:
  2079.             case 96:
  2080.             case 995:
  2081.                 var7 = this.theVarcharNullBinder;
  2082.                 this.currentRowCharLens[var3] = 1;
  2083.                 break;
  2084.             case 6:
  2085.                 var7 = this.theVarnumNullBinder;
  2086.                 break;
  2087.             case 12:
  2088.                 var7 = this.theDateNullBinder;
  2089.                 break;
  2090.             case 23:
  2091.             case 24:
  2092.                 var7 = this.theRawNullBinder;
  2093.                 break;
  2094.             case 100:
  2095.                 var7 = this.theBinaryFloatNullBinder;
  2096.                 break;
  2097.             case 101:
  2098.                 var7 = this.theBinaryDoubleNullBinder;
  2099.                 break;
  2100.             case 102:
  2101.             case 998:
  2102.             default:
  2103.                 var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 23, "sqlType=" + var2);
  2104.                 var6.fillInStackTrace();
  2105.                 throw var6;
  2106.             case 104:
  2107.                 var7 = this.getRowidNullBinder(var3);
  2108.                 break;
  2109.             case 109:
  2110.             case 111:
  2111.                 var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 4, "sqlType=" + var2);
  2112.                 var6.fillInStackTrace();
  2113.                 throw var6;
  2114.             case 112:
  2115.                 var7 = this.theClobNullBinder;
  2116.                 break;
  2117.             case 113:
  2118.                 var7 = this.theBlobNullBinder;
  2119.                 break;
  2120.             case 114:
  2121.                 var7 = this.theBfileNullBinder;
  2122.                 break;
  2123.             case 180:
  2124.                 var7 = this.theTimestampNullBinder;
  2125.                 break;
  2126.             case 181:
  2127.                 var7 = this.theTSTZNullBinder;
  2128.                 break;
  2129.             case 182:
  2130.                 var7 = this.theIntervalYMNullBinder;
  2131.                 break;
  2132.             case 183:
  2133.                 var7 = this.theIntervalDSNullBinder;
  2134.                 break;
  2135.             case 231:
  2136.                 var7 = this.theTSLTZNullBinder;
  2137.                 break;
  2138.             case 999:
  2139.                 var7 = this.theFixedCHARNullBinder;
  2140.             }
  2141.  
  2142.             this.currentRowBinders[var3] = var7;
  2143.         } else {
  2144.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2145.             var4.fillInStackTrace();
  2146.             throw var4;
  2147.         }
  2148.     }
  2149.  
  2150.     Binder getRowidNullBinder(int var1) {
  2151.         return this.theRowidNullBinder;
  2152.     }
  2153.  
  2154.     public void setNullAtName(String var1, int var2) throws SQLException {
  2155.         String var3 = var1.intern();
  2156.         String[] var4 = this.sqlObject.getParameterList();
  2157.         boolean var5 = false;
  2158.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  2159.  
  2160.         for(int var7 = 0; var7 < var6; ++var7) {
  2161.             if(var4[var7] == var3) {
  2162.                 this.setNull(var7 + 1, var2);
  2163.                 var5 = true;
  2164.             }
  2165.         }
  2166.  
  2167.         if(!var5) {
  2168.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  2169.             var8.fillInStackTrace();
  2170.             throw var8;
  2171.         }
  2172.     }
  2173.  
  2174.     public void setBoolean(int var1, boolean var2) throws SQLException {
  2175.         PhysicalConnection var3 = this.connection;
  2176.         synchronized(this.connection) {
  2177.             this.setBooleanInternal(var1, var2);
  2178.         }
  2179.     }
  2180.  
  2181.     void setBooleanInternal(int var1, boolean var2) throws SQLException {
  2182.         int var3 = var1 - 1;
  2183.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2184.             this.currentRowCharLens[var3] = 0;
  2185.             this.currentRowBinders[var3] = this.theBooleanBinder;
  2186.             if(this.parameterInt == null) {
  2187.                 this.parameterInt = new int[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2188.             }
  2189.  
  2190.             this.parameterInt[this.currentRank][var3] = var2?1:0;
  2191.         } else {
  2192.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2193.             var4.fillInStackTrace();
  2194.             throw var4;
  2195.         }
  2196.     }
  2197.  
  2198.     public void setByte(int var1, byte var2) throws SQLException {
  2199.         PhysicalConnection var3 = this.connection;
  2200.         synchronized(this.connection) {
  2201.             this.setByteInternal(var1, var2);
  2202.         }
  2203.     }
  2204.  
  2205.     void setByteInternal(int var1, byte var2) throws SQLException {
  2206.         int var3 = var1 - 1;
  2207.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2208.             this.currentRowCharLens[var3] = 0;
  2209.             this.currentRowBinders[var3] = this.theByteBinder;
  2210.             if(this.parameterInt == null) {
  2211.                 this.parameterInt = new int[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2212.             }
  2213.  
  2214.             this.parameterInt[this.currentRank][var3] = var2;
  2215.         } else {
  2216.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2217.             var4.fillInStackTrace();
  2218.             throw var4;
  2219.         }
  2220.     }
  2221.  
  2222.     public void setShort(int var1, short var2) throws SQLException {
  2223.         PhysicalConnection var3 = this.connection;
  2224.         synchronized(this.connection) {
  2225.             this.setShortInternal(var1, var2);
  2226.         }
  2227.     }
  2228.  
  2229.     void setShortInternal(int var1, short var2) throws SQLException {
  2230.         int var3 = var1 - 1;
  2231.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2232.             this.currentRowCharLens[var3] = 0;
  2233.             this.currentRowBinders[var3] = this.theShortBinder;
  2234.             if(this.parameterInt == null) {
  2235.                 this.parameterInt = new int[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2236.             }
  2237.  
  2238.             this.parameterInt[this.currentRank][var3] = var2;
  2239.         } else {
  2240.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2241.             var4.fillInStackTrace();
  2242.             throw var4;
  2243.         }
  2244.     }
  2245.  
  2246.     public void setInt(int var1, int var2) throws SQLException {
  2247.         PhysicalConnection var3 = this.connection;
  2248.         synchronized(this.connection) {
  2249.             this.setIntInternal(var1, var2);
  2250.         }
  2251.     }
  2252.  
  2253.     void setIntInternal(int var1, int var2) throws SQLException {
  2254.         int var3 = var1 - 1;
  2255.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2256.             this.currentRowCharLens[var3] = 0;
  2257.             this.currentRowBinders[var3] = this.theIntBinder;
  2258.             if(this.parameterInt == null) {
  2259.                 this.parameterInt = new int[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2260.             }
  2261.  
  2262.             this.parameterInt[this.currentRank][var3] = var2;
  2263.         } else {
  2264.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2265.             var4.fillInStackTrace();
  2266.             throw var4;
  2267.         }
  2268.     }
  2269.  
  2270.     public void setLong(int var1, long var2) throws SQLException {
  2271.         PhysicalConnection var4 = this.connection;
  2272.         synchronized(this.connection) {
  2273.             this.setLongInternal(var1, var2);
  2274.         }
  2275.     }
  2276.  
  2277.     void setLongInternal(int var1, long var2) throws SQLException {
  2278.         int var4 = var1 - 1;
  2279.         if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  2280.             this.currentRowCharLens[var4] = 0;
  2281.             this.currentRowBinders[var4] = this.theLongBinder;
  2282.             if(this.parameterLong == null) {
  2283.                 this.parameterLong = new long[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2284.             }
  2285.  
  2286.             this.parameterLong[this.currentRank][var4] = var2;
  2287.         } else {
  2288.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2289.             var5.fillInStackTrace();
  2290.             throw var5;
  2291.         }
  2292.     }
  2293.  
  2294.     public void setFloat(int var1, float var2) throws SQLException {
  2295.         PhysicalConnection var3 = this.connection;
  2296.         synchronized(this.connection) {
  2297.             this.setFloatInternal(var1, var2);
  2298.         }
  2299.     }
  2300.  
  2301.     void setFloatInternal(int var1, float var2) throws SQLException {
  2302.         int var3 = var1 - 1;
  2303.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2304.             if(this.theFloatBinder == null) {
  2305.                 this.theFloatBinder = theStaticFloatBinder;
  2306.                 if(this.connection.setFloatAndDoubleUseBinary) {
  2307.                     this.theFloatBinder = theStaticBinaryFloatBinder;
  2308.                 }
  2309.             }
  2310.  
  2311.             this.currentRowCharLens[var3] = 0;
  2312.             this.currentRowBinders[var3] = this.theFloatBinder;
  2313.             if(this.theFloatBinder == theStaticFloatBinder) {
  2314.                 if(this.parameterDouble == null) {
  2315.                     this.parameterDouble = new double[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2316.                 }
  2317.  
  2318.                 this.parameterDouble[this.currentRank][var3] = (double)var2;
  2319.             } else {
  2320.                 if(this.parameterFloat == null) {
  2321.                     this.parameterFloat = new float[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2322.                 }
  2323.  
  2324.                 this.parameterFloat[this.currentRank][var3] = var2;
  2325.             }
  2326.  
  2327.         } else {
  2328.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2329.             var4.fillInStackTrace();
  2330.             throw var4;
  2331.         }
  2332.     }
  2333.  
  2334.     public void setBinaryFloat(int var1, float var2) throws SQLException {
  2335.         PhysicalConnection var3 = this.connection;
  2336.         synchronized(this.connection) {
  2337.             this.setBinaryFloatInternal(var1, var2);
  2338.         }
  2339.     }
  2340.  
  2341.     void setBinaryFloatInternal(int var1, float var2) throws SQLException {
  2342.         int var3 = var1 - 1;
  2343.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2344.             this.currentRowCharLens[var3] = 0;
  2345.             this.currentRowBinders[var3] = this.theBinaryFloatBinder;
  2346.             if(this.parameterFloat == null) {
  2347.                 this.parameterFloat = new float[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2348.             }
  2349.  
  2350.             this.parameterFloat[this.currentRank][var3] = var2;
  2351.         } else {
  2352.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2353.             var4.fillInStackTrace();
  2354.             throw var4;
  2355.         }
  2356.     }
  2357.  
  2358.     public void setBinaryFloat(int var1, BINARY_FLOAT var2) throws SQLException {
  2359.         PhysicalConnection var3 = this.connection;
  2360.         synchronized(this.connection) {
  2361.             this.setBinaryFloatInternal(var1, var2);
  2362.         }
  2363.     }
  2364.  
  2365.     void setBinaryFloatInternal(int var1, BINARY_FLOAT var2) throws SQLException {
  2366.         int var3 = var1 - 1;
  2367.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2368.             if(var2 == null) {
  2369.                 this.currentRowBinders[var3] = this.theBINARY_FLOATNullBinder;
  2370.             } else {
  2371.                 this.currentRowBinders[var3] = this.theBINARY_FLOATBinder;
  2372.                 if(this.parameterDatum == null) {
  2373.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2374.                 }
  2375.  
  2376.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  2377.             }
  2378.  
  2379.             this.currentRowCharLens[var3] = 0;
  2380.         } else {
  2381.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2382.             var4.fillInStackTrace();
  2383.             throw var4;
  2384.         }
  2385.     }
  2386.  
  2387.     public void setBinaryDouble(int var1, double var2) throws SQLException {
  2388.         PhysicalConnection var4 = this.connection;
  2389.         synchronized(this.connection) {
  2390.             this.setBinaryDoubleInternal(var1, var2);
  2391.         }
  2392.     }
  2393.  
  2394.     void setBinaryDoubleInternal(int var1, double var2) throws SQLException {
  2395.         int var4 = var1 - 1;
  2396.         if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  2397.             this.currentRowBinders[var4] = this.theBinaryDoubleBinder;
  2398.             if(this.parameterDouble == null) {
  2399.                 this.parameterDouble = new double[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2400.             }
  2401.  
  2402.             this.currentRowCharLens[var4] = 0;
  2403.             this.parameterDouble[this.currentRank][var4] = var2;
  2404.         } else {
  2405.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2406.             var5.fillInStackTrace();
  2407.             throw var5;
  2408.         }
  2409.     }
  2410.  
  2411.     public void setBinaryDouble(int var1, BINARY_DOUBLE var2) throws SQLException {
  2412.         PhysicalConnection var3 = this.connection;
  2413.         synchronized(this.connection) {
  2414.             this.setBinaryDoubleInternal(var1, var2);
  2415.         }
  2416.     }
  2417.  
  2418.     void setBinaryDoubleInternal(int var1, BINARY_DOUBLE var2) throws SQLException {
  2419.         int var3 = var1 - 1;
  2420.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2421.             if(var2 == null) {
  2422.                 this.currentRowBinders[var3] = this.theBINARY_DOUBLENullBinder;
  2423.             } else {
  2424.                 this.currentRowBinders[var3] = this.theBINARY_DOUBLEBinder;
  2425.                 if(this.parameterDatum == null) {
  2426.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2427.                 }
  2428.  
  2429.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  2430.             }
  2431.  
  2432.             this.currentRowCharLens[var3] = 0;
  2433.         } else {
  2434.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2435.             var4.fillInStackTrace();
  2436.             throw var4;
  2437.         }
  2438.     }
  2439.  
  2440.     public void setDouble(int var1, double var2) throws SQLException {
  2441.         PhysicalConnection var4 = this.connection;
  2442.         synchronized(this.connection) {
  2443.             this.setDoubleInternal(var1, var2);
  2444.         }
  2445.     }
  2446.  
  2447.     void setDoubleInternal(int var1, double var2) throws SQLException {
  2448.         int var4 = var1 - 1;
  2449.         if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  2450.             if(this.theDoubleBinder == null) {
  2451.                 this.theDoubleBinder = theStaticDoubleBinder;
  2452.                 if(this.connection.setFloatAndDoubleUseBinary) {
  2453.                     this.theDoubleBinder = theStaticBinaryDoubleBinder;
  2454.                 }
  2455.             }
  2456.  
  2457.             this.currentRowCharLens[var4] = 0;
  2458.             this.currentRowBinders[var4] = this.theDoubleBinder;
  2459.             if(this.parameterDouble == null) {
  2460.                 this.parameterDouble = new double[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2461.             }
  2462.  
  2463.             this.parameterDouble[this.currentRank][var4] = var2;
  2464.         } else {
  2465.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2466.             var5.fillInStackTrace();
  2467.             throw var5;
  2468.         }
  2469.     }
  2470.  
  2471.     public void setBigDecimal(int var1, BigDecimal var2) throws SQLException {
  2472.         PhysicalConnection var3 = this.connection;
  2473.         synchronized(this.connection) {
  2474.             this.setBigDecimalInternal(var1, var2);
  2475.         }
  2476.     }
  2477.  
  2478.     void setBigDecimalInternal(int var1, BigDecimal var2) throws SQLException {
  2479.         int var3 = var1 - 1;
  2480.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2481.             if(var2 == null) {
  2482.                 this.currentRowBinders[var3] = this.theVarnumNullBinder;
  2483.             } else {
  2484.                 this.currentRowBinders[var3] = this.theBigDecimalBinder;
  2485.                 if(this.parameterBigDecimal == null) {
  2486.                     this.parameterBigDecimal = new BigDecimal[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2487.                 }
  2488.  
  2489.                 this.parameterBigDecimal[this.currentRank][var3] = var2;
  2490.             }
  2491.  
  2492.             this.currentRowCharLens[var3] = 0;
  2493.         } else {
  2494.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2495.             var4.fillInStackTrace();
  2496.             throw var4;
  2497.         }
  2498.     }
  2499.  
  2500.     public void setString(int var1, String var2) throws SQLException {
  2501.         this.setStringInternal(var1, var2);
  2502.     }
  2503.  
  2504.     void setStringInternal(int var1, String var2) throws SQLException {
  2505.         int var3 = var1 - 1;
  2506.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2507.             int var6 = var2 != null?var2.length():0;
  2508.             if(var6 == 0) {
  2509.                 this.basicBindNullString(var1);
  2510.             } else {
  2511.                 int var5;
  2512.                 if(this.currentRowFormOfUse[var1 - 1] == 1) {
  2513.                     if(this.sqlKind.isPlsqlOrCall()) {
  2514.                         if(var6 > this.maxVcsBytesPlsql || var6 > this.maxVcsCharsPlsql && this.isServerCharSetFixedWidth) {
  2515.                             this.setStringForClobCritical(var1, var2);
  2516.                         } else if(var6 > this.maxVcsCharsPlsql) {
  2517.                             var5 = this.connection.conversion.encodedByteLength(var2, false);
  2518.                             if(var5 > this.maxVcsBytesPlsql) {
  2519.                                 this.setStringForClobCritical(var1, var2);
  2520.                             } else {
  2521.                                 this.basicBindString(var1, var2);
  2522.                             }
  2523.                         } else {
  2524.                             this.basicBindString(var1, var2);
  2525.                         }
  2526.                     } else if(var6 <= this.maxVcsCharsSql) {
  2527.                         this.basicBindString(var1, var2);
  2528.                     } else if(var6 <= this.maxStreamCharsSql) {
  2529.                         this.basicBindCharacterStream(var1, new StringReader(var2), var6, true);
  2530.                     } else {
  2531.                         this.setStringForClobCritical(var1, var2);
  2532.                     }
  2533.                 } else if(this.sqlKind.isPlsqlOrCall()) {
  2534.                     if(var6 > this.maxVcsBytesPlsql || var6 > this.maxVcsNCharsPlsql && this.isServerNCharSetFixedWidth) {
  2535.                         this.setStringForClobCritical(var1, var2);
  2536.                     } else if(var6 > this.maxVcsNCharsPlsql) {
  2537.                         var5 = this.connection.conversion.encodedByteLength(var2, true);
  2538.                         if(var5 > this.maxVcsBytesPlsql) {
  2539.                             this.setStringForClobCritical(var1, var2);
  2540.                         } else {
  2541.                             this.basicBindString(var1, var2);
  2542.                         }
  2543.                     } else {
  2544.                         this.basicBindString(var1, var2);
  2545.                     }
  2546.                 } else if(var6 <= this.maxVcsCharsSql) {
  2547.                     this.basicBindString(var1, var2);
  2548.                 } else if(var6 <= this.maxStreamNCharsSql) {
  2549.                     this.setStringForClobCritical(var1, var2);
  2550.                 } else {
  2551.                     this.setStringForClobCritical(var1, var2);
  2552.                 }
  2553.             }
  2554.  
  2555.         } else {
  2556.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2557.             var4.fillInStackTrace();
  2558.             throw var4;
  2559.         }
  2560.     }
  2561.  
  2562.     void basicBindNullString(int var1) throws SQLException {
  2563.         PhysicalConnection var2 = this.connection;
  2564.         synchronized(this.connection) {
  2565.             int var3 = var1 - 1;
  2566.             this.currentRowBinders[var3] = this.theVarcharNullBinder;
  2567.             if(this.sqlKind.isPlsqlOrCall()) {
  2568.                 this.currentRowCharLens[var3] = this.minVcsBindSize;
  2569.             } else {
  2570.                 this.currentRowCharLens[var3] = 1;
  2571.             }
  2572.  
  2573.         }
  2574.     }
  2575.  
  2576.     void basicBindString(int var1, String var2) throws SQLException {
  2577.         PhysicalConnection var3 = this.connection;
  2578.         synchronized(this.connection) {
  2579.             int var4 = var1 - 1;
  2580.             this.currentRowBinders[var4] = this.theStringBinder;
  2581.             int var5 = var2.length();
  2582.             if(this.sqlKind.isPlsqlOrCall()) {
  2583.                 int var6 = this.connection.minVcsBindSize;
  2584.                 int var7 = var5 + 1;
  2585.                 this.currentRowCharLens[var4] = var7 < var6?var6:var7;
  2586.             } else {
  2587.                 this.currentRowCharLens[var4] = var5 + 1;
  2588.             }
  2589.  
  2590.             if(this.parameterString == null) {
  2591.                 this.parameterString = new String[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2592.             }
  2593.  
  2594.             this.parameterString[this.currentRank][var4] = var2;
  2595.         }
  2596.     }
  2597.  
  2598.     public void setStringForClob(int var1, String var2) throws SQLException {
  2599.         if(var2 == null) {
  2600.             this.setNull(var1, 1);
  2601.         } else {
  2602.             int var3 = var2.length();
  2603.             if(var3 == 0) {
  2604.                 this.setNull(var1, 1);
  2605.             } else {
  2606.                 if(this.sqlKind.isPlsqlOrCall()) {
  2607.                     if(var3 <= this.maxVcsCharsPlsql) {
  2608.                         this.setStringInternal(var1, var2);
  2609.                     } else {
  2610.                         this.setStringForClobCritical(var1, var2);
  2611.                     }
  2612.                 } else if(var3 <= this.maxVcsCharsSql) {
  2613.                     this.setStringInternal(var1, var2);
  2614.                 } else {
  2615.                     this.setStringForClobCritical(var1, var2);
  2616.                 }
  2617.  
  2618.             }
  2619.         }
  2620.     }
  2621.  
  2622.     void setStringForClobCritical(int var1, String var2) throws SQLException {
  2623.         PhysicalConnection var3 = this.connection;
  2624.         synchronized(this.connection) {
  2625.             CLOB var4 = CLOB.createTemporary(this.connection, true, 10, this.currentRowFormOfUse[var1 - 1]);
  2626.             var4.setString(1L, var2);
  2627.             this.addToTempLobsToFree(var4);
  2628.             this.lastBoundClobs[var1 - 1] = var4;
  2629.             this.setCLOBInternal(var1, var4);
  2630.         }
  2631.     }
  2632.  
  2633.     void setReaderContentsForClobCritical(int var1, Reader var2, long var3, boolean var5) throws SQLException {
  2634.         PhysicalConnection var6 = this.connection;
  2635.         synchronized(this.connection) {
  2636.             label61: {
  2637.                 try {
  2638.                     if((var2 = this.isReaderEmpty(var2)) != null) {
  2639.                         break label61;
  2640.                     }
  2641.  
  2642.                     if(var5) {
  2643.                         throw new IOException(var3 + " char of CLOB data cannot be read");
  2644.                     }
  2645.  
  2646.                     this.setCLOBInternal(var1, (CLOB)null);
  2647.                 } catch (IOException var18) {
  2648.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var18);
  2649.                     var8.fillInStackTrace();
  2650.                     throw var8;
  2651.                 }
  2652.  
  2653.                 return;
  2654.             }
  2655.  
  2656.             CLOB var7 = CLOB.createTemporary(this.connection, true, 10, this.currentRowFormOfUse[var1 - 1]);
  2657.             OracleClobWriter var20 = (OracleClobWriter)((OracleClobWriter)var7.setCharacterStream(1L));
  2658.             int var9 = var7.getBufferSize();
  2659.             char[] var10 = new char[var9];
  2660.             long var11 = 0L;
  2661.             boolean var13 = false;
  2662.             var11 = var5?var3:9223372036854775807L;
  2663.  
  2664.             try {
  2665.                 while(var11 > 0L) {
  2666.                     int var21;
  2667.                     if(var11 >= (long)var9) {
  2668.                         var21 = var2.read(var10);
  2669.                     } else {
  2670.                         var21 = var2.read(var10, 0, (int)var11);
  2671.                     }
  2672.  
  2673.                     if(var21 == -1) {
  2674.                         if(var5) {
  2675.                             throw new IOException(var11 + " char of CLOB data cannot be read");
  2676.                         }
  2677.                         break;
  2678.                     }
  2679.  
  2680.                     var20.write(var10, 0, var21);
  2681.                     var11 -= (long)var21;
  2682.                 }
  2683.  
  2684.                 var20.flush();
  2685.             } catch (IOException var17) {
  2686.                 SQLException var15 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var17);
  2687.                 var15.fillInStackTrace();
  2688.                 throw var15;
  2689.             }
  2690.  
  2691.             this.addToTempLobsToFree(var7);
  2692.             this.lastBoundClobs[var1 - 1] = var7;
  2693.             this.setCLOBInternal(var1, var7);
  2694.         }
  2695.     }
  2696.  
  2697.     void setAsciiStreamContentsForClobCritical(int var1, InputStream var2, long var3, boolean var5) throws SQLException {
  2698.         PhysicalConnection var6 = this.connection;
  2699.         synchronized(this.connection) {
  2700.             label61: {
  2701.                 try {
  2702.                     if((var2 = this.isInputStreamEmpty(var2)) != null) {
  2703.                         break label61;
  2704.                     }
  2705.  
  2706.                     if(var5) {
  2707.                         throw new IOException(var3 + " byte of CLOB data cannot be read");
  2708.                     }
  2709.  
  2710.                     this.setCLOBInternal(var1, (CLOB)null);
  2711.                 } catch (IOException var19) {
  2712.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var19);
  2713.                     var8.fillInStackTrace();
  2714.                     throw var8;
  2715.                 }
  2716.  
  2717.                 return;
  2718.             }
  2719.  
  2720.             CLOB var7 = CLOB.createTemporary(this.connection, true, 10, this.currentRowFormOfUse[var1 - 1]);
  2721.             OracleClobWriter var21 = (OracleClobWriter)((OracleClobWriter)var7.setCharacterStream(1L));
  2722.             int var9 = var7.getBufferSize();
  2723.             byte[] var10 = new byte[var9];
  2724.             char[] var11 = new char[var9];
  2725.             boolean var12 = false;
  2726.             long var13 = var5?var3:9223372036854775807L;
  2727.  
  2728.             try {
  2729.                 while(var13 > 0L) {
  2730.                     int var22;
  2731.                     if(var13 >= (long)var9) {
  2732.                         var22 = var2.read(var10);
  2733.                     } else {
  2734.                         var22 = var2.read(var10, 0, (int)var13);
  2735.                     }
  2736.  
  2737.                     if(var22 == -1) {
  2738.                         if(var5) {
  2739.                             throw new IOException(var13 + " byte of CLOB data cannot be read");
  2740.                         }
  2741.                         break;
  2742.                     }
  2743.  
  2744.                     DBConversion var10000 = this.connection.conversion;
  2745.                     DBConversion.asciiBytesToJavaChars(var10, var22, var11);
  2746.                     var21.write(var11, 0, var22);
  2747.                     var13 -= (long)var22;
  2748.                 }
  2749.  
  2750.                 var21.flush();
  2751.             } catch (IOException var18) {
  2752.                 SQLException var16 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var18);
  2753.                 var16.fillInStackTrace();
  2754.                 throw var16;
  2755.             }
  2756.  
  2757.             this.addToTempLobsToFree(var7);
  2758.             this.lastBoundClobs[var1 - 1] = var7;
  2759.             this.setCLOBInternal(var1, var7);
  2760.         }
  2761.     }
  2762.  
  2763.     public void setStringForClobAtName(String var1, String var2) throws SQLException {
  2764.         String var3 = var1.intern();
  2765.         String[] var4 = this.sqlObject.getParameterList();
  2766.         boolean var5 = false;
  2767.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  2768.  
  2769.         for(int var7 = 0; var7 < var6; ++var7) {
  2770.             if(var4[var7] == var3) {
  2771.                 this.setStringForClob(var7 + 1, var2);
  2772.                 var5 = true;
  2773.             }
  2774.         }
  2775.  
  2776.         if(!var5) {
  2777.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  2778.             var8.fillInStackTrace();
  2779.             throw var8;
  2780.         }
  2781.     }
  2782.  
  2783.     public void setFixedCHAR(int var1, String var2) throws SQLException {
  2784.         PhysicalConnection var3 = this.connection;
  2785.         synchronized(this.connection) {
  2786.             this.setFixedCHARInternal(var1, var2);
  2787.         }
  2788.     }
  2789.  
  2790.     void setFixedCHARInternal(int var1, String var2) throws SQLException {
  2791.         int var3 = var1 - 1;
  2792.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2793.             int var6 = 0;
  2794.             if(var2 != null) {
  2795.                 var6 = var2.length();
  2796.             }
  2797.  
  2798.             if(var6 > 32766) {
  2799.                 SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 157);
  2800.                 var5.fillInStackTrace();
  2801.                 throw var5;
  2802.             } else {
  2803.                 if(var2 == null) {
  2804.                     this.currentRowBinders[var3] = this.theFixedCHARNullBinder;
  2805.                     this.currentRowCharLens[var3] = 1;
  2806.                 } else {
  2807.                     this.currentRowBinders[var3] = this.theFixedCHARBinder;
  2808.                     this.currentRowCharLens[var3] = var6 + 1;
  2809.                     if(this.parameterString == null) {
  2810.                         this.parameterString = new String[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2811.                     }
  2812.  
  2813.                     this.parameterString[this.currentRank][var3] = var2;
  2814.                 }
  2815.  
  2816.             }
  2817.         } else {
  2818.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2819.             var4.fillInStackTrace();
  2820.             throw var4;
  2821.         }
  2822.     }
  2823.  
  2824.     /** @deprecated */
  2825.     public void setCursor(int var1, ResultSet var2) throws SQLException {
  2826.         PhysicalConnection var3 = this.connection;
  2827.         synchronized(this.connection) {
  2828.             this.setCursorInternal(var1, var2);
  2829.         }
  2830.     }
  2831.  
  2832.     void setCursorInternal(int var1, ResultSet var2) throws SQLException {
  2833.         SQLException var3 = DatabaseError.createUnsupportedFeatureSqlException();
  2834.         var3.fillInStackTrace();
  2835.         throw var3;
  2836.     }
  2837.  
  2838.     public void setROWID(int var1, ROWID var2) throws SQLException {
  2839.         PhysicalConnection var3 = this.connection;
  2840.         synchronized(this.connection) {
  2841.             this.setROWIDInternal(var1, var2);
  2842.         }
  2843.     }
  2844.  
  2845.     void setROWIDInternal(int var1, ROWID var2) throws SQLException {
  2846.         if(this.sqlKind == SqlKind.CALL_BLOCK) {
  2847.             if(var2 == null) {
  2848.                 this.setNull(var1, 12);
  2849.             } else {
  2850.                 this.setStringInternal(var1, var2.stringValue());
  2851.             }
  2852.  
  2853.         } else {
  2854.             int var3 = var1 - 1;
  2855.             if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2856.                 if(var2 != null && var2.shareBytes() != null) {
  2857.                     this.currentRowBinders[var3] = T4CRowidAccessor.isUROWID(var2.shareBytes(), 0)?this.theURowidBinder:this.theRowidBinder;
  2858.                     if(this.parameterDatum == null) {
  2859.                         this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2860.                     }
  2861.  
  2862.                     this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  2863.                 } else {
  2864.                     this.currentRowBinders[var3] = this.theRowidNullBinder;
  2865.                 }
  2866.  
  2867.                 this.currentRowCharLens[var3] = 0;
  2868.             } else {
  2869.                 SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2870.                 var4.fillInStackTrace();
  2871.                 throw var4;
  2872.             }
  2873.         }
  2874.     }
  2875.  
  2876.     public void setArray(int var1, Array var2) throws SQLException {
  2877.         this.setARRAYInternal(var1, (ARRAY)var2);
  2878.     }
  2879.  
  2880.     void setArrayInternal(int var1, Array var2) throws SQLException {
  2881.         this.setARRAYInternal(var1, (ARRAY)var2);
  2882.     }
  2883.  
  2884.     public void setARRAY(int var1, ARRAY var2) throws SQLException {
  2885.         this.setARRAYInternal(var1, var2);
  2886.     }
  2887.  
  2888.     void setARRAYInternal(int var1, ARRAY var2) throws SQLException {
  2889.         int var3 = var1 - 1;
  2890.         SQLException var4;
  2891.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2892.             if(var2 == null) {
  2893.                 var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  2894.                 var4.fillInStackTrace();
  2895.                 throw var4;
  2896.             } else {
  2897.                 PhysicalConnection var7 = this.connection;
  2898.                 synchronized(this.connection) {
  2899.                     this.setArrayCritical(var3, var2);
  2900.                     this.currentRowCharLens[var3] = 0;
  2901.                 }
  2902.             }
  2903.         } else {
  2904.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2905.             var4.fillInStackTrace();
  2906.             throw var4;
  2907.         }
  2908.     }
  2909.  
  2910.     void setArrayCritical(int var1, ARRAY var2) throws SQLException {
  2911.         ArrayDescriptor var3 = var2.getDescriptor();
  2912.         if(var3 == null) {
  2913.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 61);
  2914.             var5.fillInStackTrace();
  2915.             throw var5;
  2916.         } else {
  2917.             this.currentRowBinders[var1] = this.theNamedTypeBinder;
  2918.             if(this.parameterDatum == null) {
  2919.                 this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2920.             }
  2921.  
  2922.             this.parameterDatum[this.currentRank][var1] = var2.toBytes();
  2923.             OracleTypeCOLLECTION var4 = var3.getOracleTypeCOLLECTION();
  2924.             var4.getTOID();
  2925.             if(this.parameterOtype == null) {
  2926.                 this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2927.             }
  2928.  
  2929.             this.parameterOtype[this.currentRank][var1] = var4;
  2930.         }
  2931.     }
  2932.  
  2933.     public void setOPAQUE(int var1, OPAQUE var2) throws SQLException {
  2934.         this.setOPAQUEInternal(var1, var2);
  2935.     }
  2936.  
  2937.     void setOPAQUEInternal(int var1, OPAQUE var2) throws SQLException {
  2938.         int var3 = var1 - 1;
  2939.         SQLException var4;
  2940.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  2941.             if(var2 == null) {
  2942.                 var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  2943.                 var4.fillInStackTrace();
  2944.                 throw var4;
  2945.             } else {
  2946.                 PhysicalConnection var7 = this.connection;
  2947.                 synchronized(this.connection) {
  2948.                     this.setOPAQUECritical(var3, var2);
  2949.                     this.currentRowCharLens[var3] = 0;
  2950.                 }
  2951.             }
  2952.         } else {
  2953.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  2954.             var4.fillInStackTrace();
  2955.             throw var4;
  2956.         }
  2957.     }
  2958.  
  2959.     void setOPAQUECritical(int var1, OPAQUE var2) throws SQLException {
  2960.         OpaqueDescriptor var3 = var2.getDescriptor();
  2961.         if(var3 == null) {
  2962.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 61);
  2963.             var5.fillInStackTrace();
  2964.             throw var5;
  2965.         } else {
  2966.             this.currentRowBinders[var1] = this.theNamedTypeBinder;
  2967.             if(this.parameterDatum == null) {
  2968.                 this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  2969.             }
  2970.  
  2971.             this.parameterDatum[this.currentRank][var1] = var2.toBytes();
  2972.             OracleTypeADT var4 = (OracleTypeADT)var3.getPickler();
  2973.             var4.getTOID();
  2974.             if(this.parameterOtype == null) {
  2975.                 this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  2976.             }
  2977.  
  2978.             this.parameterOtype[this.currentRank][var1] = var4;
  2979.         }
  2980.     }
  2981.  
  2982.     void setSQLXMLInternal(int var1, SQLXML var2) throws SQLException {
  2983.         if(var2 == null) {
  2984.             SQLException var3 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  2985.             var3.fillInStackTrace();
  2986.             throw var3;
  2987.         } else {
  2988.             this.setOPAQUEInternal(var1, (OPAQUE)var2);
  2989.         }
  2990.     }
  2991.  
  2992.     public void setStructDescriptor(int var1, StructDescriptor var2) throws SQLException {
  2993.         this.setStructDescriptorInternal(var1, var2);
  2994.     }
  2995.  
  2996.     void setStructDescriptorInternal(int var1, StructDescriptor var2) throws SQLException {
  2997.         int var3 = var1 - 1;
  2998.         SQLException var4;
  2999.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3000.             if(var2 == null) {
  3001.                 var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  3002.                 var4.fillInStackTrace();
  3003.                 throw var4;
  3004.             } else {
  3005.                 PhysicalConnection var7 = this.connection;
  3006.                 synchronized(this.connection) {
  3007.                     this.setStructDescriptorCritical(var3, var2);
  3008.                     this.currentRowCharLens[var3] = 0;
  3009.                 }
  3010.             }
  3011.         } else {
  3012.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3013.             var4.fillInStackTrace();
  3014.             throw var4;
  3015.         }
  3016.     }
  3017.  
  3018.     void setStructDescriptorCritical(int var1, StructDescriptor var2) throws SQLException {
  3019.         this.currentRowBinders[var1] = this.theNamedTypeBinder;
  3020.         if(this.parameterDatum == null) {
  3021.             this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3022.         }
  3023.  
  3024.         OracleTypeADT var3 = var2.getOracleTypeADT();
  3025.         var3.getTOID();
  3026.         if(this.parameterOtype == null) {
  3027.             this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3028.         }
  3029.  
  3030.         this.parameterOtype[this.currentRank][var1] = var3;
  3031.     }
  3032.  
  3033.     public void setStructDescriptorAtName(String var1, StructDescriptor var2) throws SQLException {
  3034.         String var3 = var1.intern();
  3035.         String[] var4 = this.sqlObject.getParameterList();
  3036.         boolean var5 = false;
  3037.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  3038.  
  3039.         for(int var7 = 0; var7 < var6; ++var7) {
  3040.             if(var4[var7] == var3) {
  3041.                 this.setStructDescriptorInternal(var7 + 1, var2);
  3042.                 var5 = true;
  3043.             }
  3044.         }
  3045.  
  3046.         if(!var5) {
  3047.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  3048.             var8.fillInStackTrace();
  3049.             throw var8;
  3050.         }
  3051.     }
  3052.  
  3053.     void setPreBindsCompelete() throws SQLException {
  3054.     }
  3055.  
  3056.     public void setSTRUCT(int var1, STRUCT var2) throws SQLException {
  3057.         this.setSTRUCTInternal(var1, var2);
  3058.     }
  3059.  
  3060.     void setSTRUCTInternal(int var1, STRUCT var2) throws SQLException {
  3061.         int var3 = var1 - 1;
  3062.         SQLException var4;
  3063.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3064.             if(var2 == null) {
  3065.                 var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  3066.                 var4.fillInStackTrace();
  3067.                 throw var4;
  3068.             } else {
  3069.                 PhysicalConnection var7 = this.connection;
  3070.                 synchronized(this.connection) {
  3071.                     this.setSTRUCTCritical(var3, var2);
  3072.                     this.currentRowCharLens[var3] = 0;
  3073.                 }
  3074.             }
  3075.         } else {
  3076.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3077.             var4.fillInStackTrace();
  3078.             throw var4;
  3079.         }
  3080.     }
  3081.  
  3082.     void setSTRUCTCritical(int var1, STRUCT var2) throws SQLException {
  3083.         StructDescriptor var3 = var2.getDescriptor();
  3084.         if(var3 == null) {
  3085.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 61);
  3086.             var5.fillInStackTrace();
  3087.             throw var5;
  3088.         } else {
  3089.             this.currentRowBinders[var1] = this.theNamedTypeBinder;
  3090.             if(this.parameterDatum == null) {
  3091.                 this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3092.             }
  3093.  
  3094.             this.parameterDatum[this.currentRank][var1] = var2.toBytes();
  3095.             OracleTypeADT var4 = var3.getOracleTypeADT();
  3096.             var4.getTOID();
  3097.             if(this.parameterOtype == null) {
  3098.                 this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3099.             }
  3100.  
  3101.             this.parameterOtype[this.currentRank][var1] = var4;
  3102.         }
  3103.     }
  3104.  
  3105.     public void setRAW(int var1, RAW var2) throws SQLException {
  3106.         this.setRAWInternal(var1, var2);
  3107.     }
  3108.  
  3109.     void setRAWInternal(int var1, RAW var2) throws SQLException {
  3110.         boolean var3 = false;
  3111.         PhysicalConnection var4 = this.connection;
  3112.         synchronized(this.connection) {
  3113.             int var5 = var1 - 1;
  3114.             if(var5 < 0 || var1 > this.numberOfBindPositions) {
  3115.                 SQLException var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3116.                 var6.fillInStackTrace();
  3117.                 throw var6;
  3118.             }
  3119.  
  3120.             this.currentRowCharLens[var5] = 0;
  3121.             if(var2 == null) {
  3122.                 this.currentRowBinders[var5] = this.theRawNullBinder;
  3123.             } else {
  3124.                 var3 = true;
  3125.             }
  3126.         }
  3127.  
  3128.         if(var3) {
  3129.             this.setBytesInternal(var1, var2.getBytes());
  3130.         }
  3131.  
  3132.     }
  3133.  
  3134.     public void setCHAR(int var1, CHAR var2) throws SQLException {
  3135.         PhysicalConnection var3 = this.connection;
  3136.         synchronized(this.connection) {
  3137.             this.setCHARInternal(var1, var2);
  3138.         }
  3139.     }
  3140.  
  3141.     void setCHARInternal(int var1, CHAR var2) throws SQLException {
  3142.         int var3 = var1 - 1;
  3143.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3144.             if(var2 != null && var2.getLength() != 0L) {
  3145.                 short var8 = (short)var2.oracleId();
  3146.                 this.currentRowBinders[var3] = this.theSetCHARBinder;
  3147.                 if(this.parameterDatum == null) {
  3148.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3149.                 }
  3150.  
  3151.                 CharacterSet var5 = this.currentRowFormOfUse[var3] == 2?this.connection.setCHARNCharSetObj:this.connection.setCHARCharSetObj;
  3152.                 byte[] var6;
  3153.                 if(var5 != null && var5.getOracleId() != var8) {
  3154.                     byte[] var7 = var2.shareBytes();
  3155.                     var6 = var5.convert(var2.getCharacterSet(), var7, 0, var7.length);
  3156.                 } else {
  3157.                     var6 = var2.getBytes();
  3158.                 }
  3159.  
  3160.                 this.parameterDatum[this.currentRank][var3] = var6;
  3161.                 this.currentRowCharLens[var3] = (var6.length + 1 >> 1) + 1;
  3162.             } else {
  3163.                 this.currentRowBinders[var3] = this.theSetCHARNullBinder;
  3164.                 this.currentRowCharLens[var3] = 1;
  3165.             }
  3166.  
  3167.             if(this.sqlKind.isPlsqlOrCall() && this.currentRowCharLens[var3] < this.minVcsBindSize) {
  3168.                 this.currentRowCharLens[var3] = this.minVcsBindSize;
  3169.             }
  3170.  
  3171.         } else {
  3172.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3173.             var4.fillInStackTrace();
  3174.             throw var4;
  3175.         }
  3176.     }
  3177.  
  3178.     public void setDATE(int var1, DATE var2) throws SQLException {
  3179.         PhysicalConnection var3 = this.connection;
  3180.         synchronized(this.connection) {
  3181.             this.setDATEInternal(var1, var2);
  3182.         }
  3183.     }
  3184.  
  3185.     void setDATEInternal(int var1, DATE var2) throws SQLException {
  3186.         int var3 = var1 - 1;
  3187.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3188.             this.currentRowCharLens[var3] = 0;
  3189.             if(var2 == null) {
  3190.                 this.currentRowBinders[var3] = this.theDateNullBinder;
  3191.             } else {
  3192.                 this.currentRowBinders[var3] = this.theOracleDateBinder;
  3193.                 if(this.parameterDatum == null) {
  3194.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3195.                 }
  3196.  
  3197.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3198.             }
  3199.  
  3200.         } else {
  3201.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3202.             var4.fillInStackTrace();
  3203.             throw var4;
  3204.         }
  3205.     }
  3206.  
  3207.     public void setNUMBER(int var1, NUMBER var2) throws SQLException {
  3208.         PhysicalConnection var3 = this.connection;
  3209.         synchronized(this.connection) {
  3210.             this.setNUMBERInternal(var1, var2);
  3211.         }
  3212.     }
  3213.  
  3214.     void setNUMBERInternal(int var1, NUMBER var2) throws SQLException {
  3215.         int var3 = var1 - 1;
  3216.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3217.             this.currentRowCharLens[var3] = 0;
  3218.             if(var2 == null) {
  3219.                 this.currentRowBinders[var3] = this.theVarnumNullBinder;
  3220.             } else {
  3221.                 this.currentRowBinders[var3] = this.theOracleNumberBinder;
  3222.                 if(this.parameterDatum == null) {
  3223.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3224.                 }
  3225.  
  3226.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3227.             }
  3228.  
  3229.         } else {
  3230.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3231.             var4.fillInStackTrace();
  3232.             throw var4;
  3233.         }
  3234.     }
  3235.  
  3236.     public void setBLOB(int var1, BLOB var2) throws SQLException {
  3237.         PhysicalConnection var3 = this.connection;
  3238.         synchronized(this.connection) {
  3239.             this.setBLOBInternal(var1, var2);
  3240.         }
  3241.     }
  3242.  
  3243.     void setBLOBInternal(int var1, BLOB var2) throws SQLException {
  3244.         int var3 = var1 - 1;
  3245.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3246.             this.currentRowCharLens[var3] = 0;
  3247.             if(var2 == null) {
  3248.                 this.currentRowBinders[var3] = this.theBlobNullBinder;
  3249.             } else {
  3250.                 this.currentRowBinders[var3] = this.theBlobBinder;
  3251.                 if(this.parameterDatum == null) {
  3252.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3253.                 }
  3254.  
  3255.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3256.             }
  3257.  
  3258.         } else {
  3259.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3260.             var4.fillInStackTrace();
  3261.             throw var4;
  3262.         }
  3263.     }
  3264.  
  3265.     public void setBlob(int var1, Blob var2) throws SQLException {
  3266.         PhysicalConnection var3 = this.connection;
  3267.         synchronized(this.connection) {
  3268.             this.setBLOBInternal(var1, (BLOB)var2);
  3269.         }
  3270.     }
  3271.  
  3272.     void setBlobInternal(int var1, Blob var2) throws SQLException {
  3273.         this.setBLOBInternal(var1, (BLOB)var2);
  3274.     }
  3275.  
  3276.     public void setCLOB(int var1, CLOB var2) throws SQLException {
  3277.         PhysicalConnection var3 = this.connection;
  3278.         synchronized(this.connection) {
  3279.             this.setCLOBInternal(var1, var2);
  3280.         }
  3281.     }
  3282.  
  3283.     void setCLOBInternal(int var1, CLOB var2) throws SQLException {
  3284.         int var3 = var1 - 1;
  3285.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3286.             this.currentRowCharLens[var3] = 0;
  3287.             if(var2 == null) {
  3288.                 this.currentRowBinders[var3] = this.theClobNullBinder;
  3289.             } else {
  3290.                 this.currentRowBinders[var3] = this.theClobBinder;
  3291.                 if(this.parameterDatum == null) {
  3292.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3293.                 }
  3294.  
  3295.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3296.             }
  3297.  
  3298.         } else {
  3299.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3300.             var4.fillInStackTrace();
  3301.             throw var4;
  3302.         }
  3303.     }
  3304.  
  3305.     public void setClob(int var1, Clob var2) throws SQLException {
  3306.         PhysicalConnection var3 = this.connection;
  3307.         synchronized(this.connection) {
  3308.             this.setCLOBInternal(var1, (CLOB)var2);
  3309.         }
  3310.     }
  3311.  
  3312.     void setClobInternal(int var1, Clob var2) throws SQLException {
  3313.         this.setCLOBInternal(var1, (CLOB)var2);
  3314.     }
  3315.  
  3316.     public void setBFILE(int var1, BFILE var2) throws SQLException {
  3317.         PhysicalConnection var3 = this.connection;
  3318.         synchronized(this.connection) {
  3319.             this.setBFILEInternal(var1, var2);
  3320.         }
  3321.     }
  3322.  
  3323.     void setBFILEInternal(int var1, BFILE var2) throws SQLException {
  3324.         int var3 = var1 - 1;
  3325.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3326.             this.currentRowCharLens[var3] = 0;
  3327.             if(var2 == null) {
  3328.                 this.currentRowBinders[var3] = this.theBfileNullBinder;
  3329.             } else {
  3330.                 this.currentRowBinders[var3] = this.theBfileBinder;
  3331.                 if(this.parameterDatum == null) {
  3332.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3333.                 }
  3334.  
  3335.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3336.             }
  3337.  
  3338.         } else {
  3339.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3340.             var4.fillInStackTrace();
  3341.             throw var4;
  3342.         }
  3343.     }
  3344.  
  3345.     public void setBfile(int var1, BFILE var2) throws SQLException {
  3346.         PhysicalConnection var3 = this.connection;
  3347.         synchronized(this.connection) {
  3348.             this.setBFILEInternal(var1, var2);
  3349.         }
  3350.     }
  3351.  
  3352.     void setBfileInternal(int var1, BFILE var2) throws SQLException {
  3353.         this.setBFILEInternal(var1, var2);
  3354.     }
  3355.  
  3356.     public void setBytes(int var1, byte[] var2) throws SQLException {
  3357.         this.setBytesInternal(var1, var2);
  3358.     }
  3359.  
  3360.     void setBytesInternal(int var1, byte[] var2) throws SQLException {
  3361.         int var3 = var1 - 1;
  3362.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3363.             int var5 = var2 != null?var2.length:0;
  3364.             if(var5 == 0) {
  3365.                 this.setNullInternal(var1, -2);
  3366.             } else if(this.sqlKind == SqlKind.PLSQL_BLOCK) {
  3367.                 if(var5 > this.maxRawBytesPlsql) {
  3368.                     this.setBytesForBlobCritical(var1, var2);
  3369.                 } else {
  3370.                     this.basicBindBytes(var1, var2);
  3371.                 }
  3372.             } else if(this.sqlKind == SqlKind.CALL_BLOCK) {
  3373.                 if(var5 > this.maxRawBytesPlsql) {
  3374.                     this.setBytesForBlobCritical(var1, var2);
  3375.                 } else {
  3376.                     this.basicBindBytes(var1, var2);
  3377.                 }
  3378.             } else if(var5 > this.maxRawBytesSql) {
  3379.                 this.bindBytesAsStream(var1, var2);
  3380.             } else {
  3381.                 this.basicBindBytes(var1, var2);
  3382.             }
  3383.  
  3384.         } else {
  3385.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3386.             var4.fillInStackTrace();
  3387.             throw var4;
  3388.         }
  3389.     }
  3390.  
  3391.     void bindBytesAsStream(int var1, byte[] var2) throws SQLException {
  3392.         int var3 = var2.length;
  3393.         byte[] var4 = new byte[var3];
  3394.         System.arraycopy(var2, 0, var4, 0, var3);
  3395.         this.set_execute_batch(1);
  3396.         this.basicBindBinaryStream(var1, new ByteArrayInputStream(var4), var3, true);
  3397.     }
  3398.  
  3399.     void basicBindBytes(int var1, byte[] var2) throws SQLException {
  3400.         PhysicalConnection var3 = this.connection;
  3401.         synchronized(this.connection) {
  3402.             int var4 = var1 - 1;
  3403.             Binder var5 = this.sqlKind.isPlsqlOrCall()?this.thePlsqlRawBinder:this.theRawBinder;
  3404.             this.currentRowBinders[var4] = var5;
  3405.             if(this.parameterDatum == null) {
  3406.                 this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3407.             }
  3408.  
  3409.             this.parameterDatum[this.currentRank][var4] = var2;
  3410.             this.currentRowCharLens[var4] = 0;
  3411.         }
  3412.     }
  3413.  
  3414.     void basicBindBinaryStream(int var1, InputStream var2, int var3) throws SQLException {
  3415.         this.basicBindBinaryStream(var1, var2, var3, false);
  3416.     }
  3417.  
  3418.     void basicBindBinaryStream(int var1, InputStream var2, int var3, boolean var4) throws SQLException {
  3419.         PhysicalConnection var5 = this.connection;
  3420.         synchronized(this.connection) {
  3421.             int var6 = var1 - 1;
  3422.             if(var4) {
  3423.                 this.currentRowBinders[var6] = this.theLongRawStreamForBytesBinder;
  3424.             } else {
  3425.                 this.currentRowBinders[var6] = this.theLongRawStreamBinder;
  3426.             }
  3427.  
  3428.             if(this.parameterStream == null) {
  3429.                 this.parameterStream = new InputStream[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3430.             }
  3431.  
  3432.             InputStream[] var10000 = this.parameterStream[this.currentRank];
  3433.             InputStream var10002;
  3434.             PhysicalConnection var10004;
  3435.             if(var4) {
  3436.                 var10004 = this.connection;
  3437.                 var10002 = this.connection.conversion.ConvertStreamInternal(var2, 6, var3);
  3438.             } else {
  3439.                 var10004 = this.connection;
  3440.                 var10002 = this.connection.conversion.ConvertStream(var2, 6, var3);
  3441.             }
  3442.  
  3443.             var10000[var6] = var10002;
  3444.             this.currentRowCharLens[var6] = 0;
  3445.         }
  3446.     }
  3447.  
  3448.     public void setBytesForBlob(int var1, byte[] var2) throws SQLException {
  3449.         if(var2 == null) {
  3450.             this.setNull(var1, -2);
  3451.         } else {
  3452.             int var3 = var2.length;
  3453.             if(var3 == 0) {
  3454.                 this.setNull(var1, -2);
  3455.             } else {
  3456.                 if(this.sqlKind.isPlsqlOrCall()) {
  3457.                     if(var3 <= this.maxRawBytesPlsql) {
  3458.                         this.setBytes(var1, var2);
  3459.                     } else {
  3460.                         this.setBytesForBlobCritical(var1, var2);
  3461.                     }
  3462.                 } else if(var3 <= this.maxRawBytesSql) {
  3463.                     this.setBytes(var1, var2);
  3464.                 } else {
  3465.                     this.setBytesForBlobCritical(var1, var2);
  3466.                 }
  3467.  
  3468.             }
  3469.         }
  3470.     }
  3471.  
  3472.     void setBytesForBlobCritical(int var1, byte[] var2) throws SQLException {
  3473.         BLOB var3 = BLOB.createTemporary(this.connection, true, 10);
  3474.         var3.putBytes(1L, var2);
  3475.         this.addToTempLobsToFree(var3);
  3476.         this.lastBoundBlobs[var1 - 1] = var3;
  3477.         this.setBLOBInternal(var1, var3);
  3478.     }
  3479.  
  3480.     void setBinaryStreamContentsForBlobCritical(int var1, InputStream var2, long var3, boolean var5) throws SQLException {
  3481.         PhysicalConnection var6 = this.connection;
  3482.         synchronized(this.connection) {
  3483.             label61: {
  3484.                 try {
  3485.                     if((var2 = this.isInputStreamEmpty(var2)) != null) {
  3486.                         break label61;
  3487.                     }
  3488.  
  3489.                     if(var5) {
  3490.                         throw new IOException(var3 + " byte of BLOB data cannot be read");
  3491.                     }
  3492.  
  3493.                     this.setBLOBInternal(var1, (BLOB)null);
  3494.                 } catch (IOException var18) {
  3495.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var18);
  3496.                     var8.fillInStackTrace();
  3497.                     throw var8;
  3498.                 }
  3499.  
  3500.                 return;
  3501.             }
  3502.  
  3503.             BLOB var7 = BLOB.createTemporary(this.connection, true, 10);
  3504.             OracleBlobOutputStream var20 = (OracleBlobOutputStream)((OracleBlobOutputStream)var7.setBinaryStream(1L));
  3505.             int var9 = var7.getBufferSize();
  3506.             byte[] var10 = new byte[var9];
  3507.             long var11 = 0L;
  3508.             boolean var13 = false;
  3509.             var11 = var5?var3:9223372036854775807L;
  3510.  
  3511.             try {
  3512.                 while(var11 > 0L) {
  3513.                     int var21;
  3514.                     if(var11 >= (long)var9) {
  3515.                         var21 = var2.read(var10);
  3516.                     } else {
  3517.                         var21 = var2.read(var10, 0, (int)var11);
  3518.                     }
  3519.  
  3520.                     if(var21 == -1) {
  3521.                         if(var5) {
  3522.                             throw new IOException(var11 + " byte of BLOB data cannot be read");
  3523.                         }
  3524.                         break;
  3525.                     }
  3526.  
  3527.                     var20.write(var10, 0, var21);
  3528.                     var11 -= (long)var21;
  3529.                 }
  3530.  
  3531.                 var20.flush();
  3532.             } catch (IOException var17) {
  3533.                 SQLException var15 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var17);
  3534.                 var15.fillInStackTrace();
  3535.                 throw var15;
  3536.             }
  3537.  
  3538.             this.addToTempLobsToFree(var7);
  3539.             this.lastBoundBlobs[var1 - 1] = var7;
  3540.             this.setBLOBInternal(var1, var7);
  3541.         }
  3542.     }
  3543.  
  3544.     public void setBytesForBlobAtName(String var1, byte[] var2) throws SQLException {
  3545.         String var3 = var1.intern();
  3546.         String[] var4 = this.sqlObject.getParameterList();
  3547.         boolean var5 = false;
  3548.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  3549.  
  3550.         for(int var7 = 0; var7 < var6; ++var7) {
  3551.             if(var4[var7] == var3) {
  3552.                 this.setBytesForBlob(var7 + 1, var2);
  3553.                 var5 = true;
  3554.             }
  3555.         }
  3556.  
  3557.         if(!var5) {
  3558.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  3559.             var8.fillInStackTrace();
  3560.             throw var8;
  3561.         }
  3562.     }
  3563.  
  3564.     public void setInternalBytes(int var1, byte[] var2, int var3) throws SQLException {
  3565.         PhysicalConnection var4 = this.connection;
  3566.         synchronized(this.connection) {
  3567.             this.setInternalBytesInternal(var1, var2, var3);
  3568.         }
  3569.     }
  3570.  
  3571.     void setInternalBytesInternal(int var1, byte[] var2, int var3) throws SQLException {
  3572.         SQLException var4 = DatabaseError.createUnsupportedFeatureSqlException();
  3573.         var4.fillInStackTrace();
  3574.         throw var4;
  3575.     }
  3576.  
  3577.     public void setDate(int var1, Date var2) throws SQLException {
  3578.         PhysicalConnection var3 = this.connection;
  3579.         synchronized(this.connection) {
  3580.             this.setDATEInternal(var1, var2 == null?null:new DATE(var2, this.getDefaultCalendar()));
  3581.         }
  3582.     }
  3583.  
  3584.     void setDateInternal(int var1, Date var2) throws SQLException {
  3585.         this.setDATEInternal(var1, var2 == null?null:new DATE(var2, this.getDefaultCalendar()));
  3586.     }
  3587.  
  3588.     public void setTime(int var1, Time var2) throws SQLException {
  3589.         PhysicalConnection var3 = this.connection;
  3590.         synchronized(this.connection) {
  3591.             this.setTimeInternal(var1, var2);
  3592.         }
  3593.     }
  3594.  
  3595.     void setTimeInternal(int var1, Time var2) throws SQLException {
  3596.         int var3 = var1 - 1;
  3597.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3598.             if(var2 == null) {
  3599.                 this.currentRowBinders[var3] = this.theDateNullBinder;
  3600.             } else {
  3601.                 this.currentRowBinders[var3] = this.theTimeBinder;
  3602.                 if(this.parameterTime == null) {
  3603.                     this.parameterTime = new Time[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3604.                 }
  3605.  
  3606.                 this.parameterTime[this.currentRank][var3] = var2;
  3607.             }
  3608.  
  3609.             this.currentRowCharLens[var3] = 0;
  3610.         } else {
  3611.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3612.             var4.fillInStackTrace();
  3613.             throw var4;
  3614.         }
  3615.     }
  3616.  
  3617.     public void setTimestamp(int var1, Timestamp var2) throws SQLException {
  3618.         PhysicalConnection var3 = this.connection;
  3619.         synchronized(this.connection) {
  3620.             this.setTimestampInternal(var1, var2);
  3621.         }
  3622.     }
  3623.  
  3624.     void setTimestampInternal(int var1, Timestamp var2) throws SQLException {
  3625.         int var3 = var1 - 1;
  3626.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3627.             if(var2 == null) {
  3628.                 this.currentRowBinders[var3] = this.theTimestampNullBinder;
  3629.             } else {
  3630.                 this.currentRowBinders[var3] = this.theTimestampBinder;
  3631.                 if(this.parameterTimestamp == null) {
  3632.                     this.parameterTimestamp = new Timestamp[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3633.                 }
  3634.  
  3635.                 this.parameterTimestamp[this.currentRank][var3] = var2;
  3636.             }
  3637.  
  3638.             this.currentRowCharLens[var3] = 0;
  3639.         } else {
  3640.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3641.             var4.fillInStackTrace();
  3642.             throw var4;
  3643.         }
  3644.     }
  3645.  
  3646.     public void setINTERVALYM(int var1, INTERVALYM var2) throws SQLException {
  3647.         PhysicalConnection var3 = this.connection;
  3648.         synchronized(this.connection) {
  3649.             this.setINTERVALYMInternal(var1, var2);
  3650.         }
  3651.     }
  3652.  
  3653.     void setINTERVALYMInternal(int var1, INTERVALYM var2) throws SQLException {
  3654.         int var3 = var1 - 1;
  3655.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3656.             if(var2 == null) {
  3657.                 this.currentRowBinders[var3] = this.theIntervalYMNullBinder;
  3658.             } else {
  3659.                 this.currentRowBinders[var3] = this.theIntervalYMBinder;
  3660.                 if(this.parameterDatum == null) {
  3661.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3662.                 }
  3663.  
  3664.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3665.             }
  3666.  
  3667.             this.currentRowCharLens[var3] = 0;
  3668.         } else {
  3669.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3670.             var4.fillInStackTrace();
  3671.             throw var4;
  3672.         }
  3673.     }
  3674.  
  3675.     public void setINTERVALDS(int var1, INTERVALDS var2) throws SQLException {
  3676.         PhysicalConnection var3 = this.connection;
  3677.         synchronized(this.connection) {
  3678.             this.setINTERVALDSInternal(var1, var2);
  3679.         }
  3680.     }
  3681.  
  3682.     void setINTERVALDSInternal(int var1, INTERVALDS var2) throws SQLException {
  3683.         int var3 = var1 - 1;
  3684.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3685.             if(var2 == null) {
  3686.                 this.currentRowBinders[var3] = this.theIntervalDSNullBinder;
  3687.             } else {
  3688.                 this.currentRowBinders[var3] = this.theIntervalDSBinder;
  3689.                 if(this.parameterDatum == null) {
  3690.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3691.                 }
  3692.  
  3693.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3694.             }
  3695.  
  3696.             this.currentRowCharLens[var3] = 0;
  3697.         } else {
  3698.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3699.             var4.fillInStackTrace();
  3700.             throw var4;
  3701.         }
  3702.     }
  3703.  
  3704.     public void setTIMESTAMP(int var1, TIMESTAMP var2) throws SQLException {
  3705.         PhysicalConnection var3 = this.connection;
  3706.         synchronized(this.connection) {
  3707.             this.setTIMESTAMPInternal(var1, var2);
  3708.         }
  3709.     }
  3710.  
  3711.     void setTIMESTAMPInternal(int var1, TIMESTAMP var2) throws SQLException {
  3712.         int var3 = var1 - 1;
  3713.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3714.             if(var2 == null) {
  3715.                 this.currentRowBinders[var3] = this.theTimestampNullBinder;
  3716.             } else {
  3717.                 this.currentRowBinders[var3] = this.theOracleTimestampBinder;
  3718.                 if(this.parameterDatum == null) {
  3719.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3720.                 }
  3721.  
  3722.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3723.             }
  3724.  
  3725.             this.currentRowCharLens[var3] = 0;
  3726.         } else {
  3727.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3728.             var4.fillInStackTrace();
  3729.             throw var4;
  3730.         }
  3731.     }
  3732.  
  3733.     public void setTIMESTAMPTZ(int var1, TIMESTAMPTZ var2) throws SQLException {
  3734.         PhysicalConnection var3 = this.connection;
  3735.         synchronized(this.connection) {
  3736.             this.setTIMESTAMPTZInternal(var1, var2);
  3737.         }
  3738.     }
  3739.  
  3740.     void setTIMESTAMPTZInternal(int var1, TIMESTAMPTZ var2) throws SQLException {
  3741.         int var3 = var1 - 1;
  3742.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3743.             if(var2 == null) {
  3744.                 this.currentRowBinders[var3] = this.theTSTZNullBinder;
  3745.             } else {
  3746.                 this.currentRowBinders[var3] = this.theTSTZBinder;
  3747.                 if(this.parameterDatum == null) {
  3748.                     this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3749.                 }
  3750.  
  3751.                 this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3752.             }
  3753.  
  3754.             this.currentRowCharLens[var3] = 0;
  3755.         } else {
  3756.             SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3757.             var4.fillInStackTrace();
  3758.             throw var4;
  3759.         }
  3760.     }
  3761.  
  3762.     public void setTIMESTAMPLTZ(int var1, TIMESTAMPLTZ var2) throws SQLException {
  3763.         PhysicalConnection var3 = this.connection;
  3764.         synchronized(this.connection) {
  3765.             this.setTIMESTAMPLTZInternal(var1, var2);
  3766.         }
  3767.     }
  3768.  
  3769.     void setTIMESTAMPLTZInternal(int var1, TIMESTAMPLTZ var2) throws SQLException {
  3770.         if(this.connection.getSessionTimeZone() == null) {
  3771.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 105);
  3772.             var5.fillInStackTrace();
  3773.             throw var5;
  3774.         } else {
  3775.             int var3 = var1 - 1;
  3776.             if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  3777.                 if(var2 == null) {
  3778.                     this.currentRowBinders[var3] = this.theTSLTZNullBinder;
  3779.                 } else {
  3780.                     this.currentRowBinders[var3] = this.theTSLTZBinder;
  3781.                     if(this.parameterDatum == null) {
  3782.                         this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  3783.                     }
  3784.  
  3785.                     this.parameterDatum[this.currentRank][var3] = var2.getBytes();
  3786.                 }
  3787.  
  3788.                 this.currentRowCharLens[var3] = 0;
  3789.             } else {
  3790.                 SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3791.                 var4.fillInStackTrace();
  3792.                 throw var4;
  3793.             }
  3794.         }
  3795.     }
  3796.  
  3797.     private Reader isReaderEmpty(Reader var1) throws IOException {
  3798.         if(!((Reader)var1).markSupported()) {
  3799.             var1 = new BufferedReader((Reader)var1, 5);
  3800.         }
  3801.  
  3802.         ((Reader)var1).mark(100);
  3803.         if(((Reader)var1).read() == -1) {
  3804.             return null;
  3805.         } else {
  3806.             ((Reader)var1).reset();
  3807.             return (Reader)var1;
  3808.         }
  3809.     }
  3810.  
  3811.     private InputStream isInputStreamEmpty(InputStream var1) throws IOException {
  3812.         if(!((InputStream)var1).markSupported()) {
  3813.             var1 = new BufferedInputStream((InputStream)var1, 5);
  3814.         }
  3815.  
  3816.         ((InputStream)var1).mark(100);
  3817.         if(((InputStream)var1).read() == -1) {
  3818.             return null;
  3819.         } else {
  3820.             ((InputStream)var1).reset();
  3821.             return (InputStream)var1;
  3822.         }
  3823.     }
  3824.  
  3825.     public void setAsciiStream(int var1, InputStream var2, int var3) throws SQLException {
  3826.         PhysicalConnection var4 = this.connection;
  3827.         synchronized(this.connection) {
  3828.             this.setAsciiStreamInternal(var1, var2, var3);
  3829.         }
  3830.     }
  3831.  
  3832.     void setAsciiStreamInternal(int var1, InputStream var2, int var3) throws SQLException {
  3833.         this.setAsciiStreamInternal(var1, var2, (long)var3, true);
  3834.     }
  3835.  
  3836.     void setAsciiStreamInternal(int var1, InputStream var2, long var3, boolean var5) throws SQLException {
  3837.         int var6 = var1 - 1;
  3838.         SQLException var7;
  3839.         if(var6 >= 0 && var1 <= this.numberOfBindPositions) {
  3840.             this.set_execute_batch(1);
  3841.             this.checkUserStreamForDuplicates(var2, var6);
  3842.             if(var2 == null) {
  3843.                 this.basicBindNullString(var1);
  3844.             } else {
  3845.                 if(this.userRsetType != 1 && (var3 > (long)this.maxVcsCharsSql || !var5)) {
  3846.                     var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 169);
  3847.                     var7.fillInStackTrace();
  3848.                     throw var7;
  3849.                 }
  3850.  
  3851.                 if(!var5) {
  3852.                     this.setAsciiStreamContentsForClobCritical(var1, var2, var3, var5);
  3853.                 } else if(this.currentRowFormOfUse[var6] == 1) {
  3854.                     if(this.sqlKind.isPlsqlOrCall()) {
  3855.                         if(var3 <= (long)this.maxVcsCharsPlsql) {
  3856.                             this.setAsciiStreamContentsForStringInternal(var1, var2, (int)var3);
  3857.                         } else {
  3858.                             this.setAsciiStreamContentsForClobCritical(var1, var2, var3, var5);
  3859.                         }
  3860.                     } else if(var3 <= (long)this.maxVcsCharsSql) {
  3861.                         this.setAsciiStreamContentsForStringInternal(var1, var2, (int)var3);
  3862.                     } else if(var3 > 2147483647L) {
  3863.                         this.setAsciiStreamContentsForClobCritical(var1, var2, var3, var5);
  3864.                     } else {
  3865.                         this.basicBindAsciiStream(var1, var2, (int)var3);
  3866.                     }
  3867.                 } else if(this.sqlKind.isPlsqlOrCall()) {
  3868.                     if(var3 <= (long)this.maxVcsNCharsPlsql) {
  3869.                         this.setAsciiStreamContentsForStringInternal(var1, var2, (int)var3);
  3870.                     } else {
  3871.                         this.setAsciiStreamContentsForClobCritical(var1, var2, var3, var5);
  3872.                     }
  3873.                 } else if(var3 <= (long)this.maxVcsNCharsSql) {
  3874.                     this.setAsciiStreamContentsForStringInternal(var1, var2, (int)var3);
  3875.                 } else {
  3876.                     this.setAsciiStreamContentsForClobCritical(var1, var2, var3, var5);
  3877.                 }
  3878.             }
  3879.  
  3880.         } else {
  3881.             var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  3882.             var7.fillInStackTrace();
  3883.             throw var7;
  3884.         }
  3885.     }
  3886.  
  3887.     void basicBindAsciiStream(int var1, InputStream var2, int var3) throws SQLException {
  3888.         PhysicalConnection var4 = this.connection;
  3889.         synchronized(this.connection) {
  3890.             if(this.userRsetType != 1) {
  3891.                 SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 169);
  3892.                 var8.fillInStackTrace();
  3893.                 throw var8;
  3894.             } else {
  3895.                 int var5 = var1 - 1;
  3896.                 this.currentRowBinders[var5] = this.theLongStreamBinder;
  3897.                 if(this.parameterStream == null) {
  3898.                     this.parameterStream = new InputStream[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3899.                 }
  3900.  
  3901.                 InputStream[] var10000 = this.parameterStream[this.currentRank];
  3902.                 PhysicalConnection var10004 = this.connection;
  3903.                 var10000[var5] = this.connection.conversion.ConvertStream(var2, 5, var3);
  3904.                 this.currentRowCharLens[var5] = 0;
  3905.             }
  3906.         }
  3907.     }
  3908.  
  3909.     void setAsciiStreamContentsForStringInternal(int var1, InputStream var2, int var3) throws SQLException {
  3910.         byte[] var4 = new byte[var3];
  3911.         int var5 = 0;
  3912.         int var6 = var3;
  3913.  
  3914.         int var7;
  3915.         try {
  3916.             while(var6 > 0 && (var7 = var2.read(var4, var5, var6)) != -1) {
  3917.                 var5 += var7;
  3918.                 var6 -= var7;
  3919.             }
  3920.         } catch (IOException var10) {
  3921.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var10);
  3922.             var9.fillInStackTrace();
  3923.             throw var9;
  3924.         }
  3925.  
  3926.         if(var5 == 0) {
  3927.             this.basicBindNullString(var1);
  3928.         }
  3929.  
  3930.         char[] var8 = new char[var3];
  3931.         DBConversion var10000 = this.connection.conversion;
  3932.         DBConversion.asciiBytesToJavaChars(var4, var5, var8);
  3933.         this.basicBindString(var1, new String(var8));
  3934.     }
  3935.  
  3936.     public void setBinaryStream(int var1, InputStream var2, int var3) throws SQLException {
  3937.         this.setBinaryStreamInternal(var1, var2, var3);
  3938.     }
  3939.  
  3940.     void setBinaryStreamInternal(int var1, InputStream var2, int var3) throws SQLException {
  3941.         this.setBinaryStreamInternal(var1, var2, (long)var3, true);
  3942.     }
  3943.  
  3944.     void checkUserStreamForDuplicates(Object var1, int var2) throws SQLException {
  3945.         if(var1 != null) {
  3946.             if(this.userStream != null) {
  3947.                 Object[][] var3 = this.userStream;
  3948.                 int var4 = var3.length;
  3949.  
  3950.                 for(int var5 = 0; var5 < var4; ++var5) {
  3951.                     Object[] var6 = var3[var5];
  3952.                     Object[] var7 = var6;
  3953.                     int var8 = var6.length;
  3954.  
  3955.                     for(int var9 = 0; var9 < var8; ++var9) {
  3956.                         Object var10 = var7[var9];
  3957.                         if(var10 == var1) {
  3958.                             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 270, Integer.valueOf(var2 + 1));
  3959.                             var11.fillInStackTrace();
  3960.                             throw var11;
  3961.                         }
  3962.                     }
  3963.                 }
  3964.             } else {
  3965.                 this.userStream = new Object[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  3966.             }
  3967.  
  3968.             this.userStream[this.currentRank][var2] = var1;
  3969.         }
  3970.     }
  3971.  
  3972.     void setBinaryStreamInternal(int var1, InputStream var2, long var3, boolean var5) throws SQLException {
  3973.         PhysicalConnection var6 = this.connection;
  3974.         synchronized(this.connection) {
  3975.             int var7 = var1 - 1;
  3976.             SQLException var8;
  3977.             if(var7 >= 0 && var1 <= this.numberOfBindPositions) {
  3978.                 this.set_execute_batch(1);
  3979.                 this.checkUserStreamForDuplicates(var2, var7);
  3980.                 if(var2 == null) {
  3981.                     this.setRAWInternal(var1, (RAW)null);
  3982.                 } else {
  3983.                     if(this.userRsetType != 1 && (var3 > (long)this.maxRawBytesSql || !var5)) {
  3984.                         var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 169);
  3985.                         var8.fillInStackTrace();
  3986.                         throw var8;
  3987.                     }
  3988.  
  3989.                     if(!var5) {
  3990.                         this.setBinaryStreamContentsForBlobCritical(var1, var2, var3, var5);
  3991.                     } else if(this.sqlKind.isPlsqlOrCall()) {
  3992.                         if(var3 > (long)this.maxRawBytesPlsql) {
  3993.                             this.setBinaryStreamContentsForBlobCritical(var1, var2, var3, var5);
  3994.                         } else {
  3995.                             this.setBinaryStreamContentsForByteArrayInternal(var1, var2, (int)var3);
  3996.                         }
  3997.                     } else if(var3 > 2147483647L) {
  3998.                         this.setBinaryStreamContentsForBlobCritical(var1, var2, var3, var5);
  3999.                     } else if(var3 > (long)this.maxRawBytesSql) {
  4000.                         this.basicBindBinaryStream(var1, var2, (int)var3);
  4001.                     } else {
  4002.                         this.setBinaryStreamContentsForByteArrayInternal(var1, var2, (int)var3);
  4003.                     }
  4004.                 }
  4005.  
  4006.             } else {
  4007.                 var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  4008.                 var8.fillInStackTrace();
  4009.                 throw var8;
  4010.             }
  4011.         }
  4012.     }
  4013.  
  4014.     void setBinaryStreamContentsForByteArrayInternal(int var1, InputStream var2, int var3) throws SQLException {
  4015.         byte[] var4 = new byte[var3];
  4016.         int var5 = 0;
  4017.         int var6 = var3;
  4018.  
  4019.         int var7;
  4020.         try {
  4021.             while(var6 > 0 && (var7 = var2.read(var4, var5, var6)) != -1) {
  4022.                 var5 += var7;
  4023.                 var6 -= var7;
  4024.             }
  4025.         } catch (IOException var10) {
  4026.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var10);
  4027.             var9.fillInStackTrace();
  4028.             throw var9;
  4029.         }
  4030.  
  4031.         if(var5 != var3) {
  4032.             byte[] var8 = new byte[var5];
  4033.             System.arraycopy(var4, 0, var8, 0, var5);
  4034.             var4 = var8;
  4035.         }
  4036.  
  4037.         this.setBytesInternal(var1, var4);
  4038.     }
  4039.  
  4040.     /** @deprecated */
  4041.     public void setUnicodeStream(int var1, InputStream var2, int var3) throws SQLException {
  4042.         this.setUnicodeStreamInternal(var1, var2, var3);
  4043.     }
  4044.  
  4045.     void setUnicodeStreamInternal(int var1, InputStream var2, int var3) throws SQLException {
  4046.         PhysicalConnection var4 = this.connection;
  4047.         synchronized(this.connection) {
  4048.             int var5 = var1 - 1;
  4049.             SQLException var6;
  4050.             if(var5 >= 0 && var1 <= this.numberOfBindPositions) {
  4051.                 this.set_execute_batch(1);
  4052.                 this.checkUserStreamForDuplicates(var2, var5);
  4053.                 if(var2 == null) {
  4054.                     this.setStringInternal(var1, (String)null);
  4055.                 } else {
  4056.                     if(this.userRsetType != 1 && var3 > this.maxVcsCharsSql) {
  4057.                         var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 169);
  4058.                         var6.fillInStackTrace();
  4059.                         throw var6;
  4060.                     }
  4061.  
  4062.                     if(!this.sqlKind.isPlsqlOrCall() && var3 > this.maxVcsCharsSql) {
  4063.                         this.currentRowBinders[var5] = this.theLongStreamBinder;
  4064.                         if(this.parameterStream == null) {
  4065.                             this.parameterStream = new InputStream[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  4066.                         }
  4067.  
  4068.                         InputStream[] var16 = this.parameterStream[this.currentRank];
  4069.                         PhysicalConnection var10004 = this.connection;
  4070.                         var16[var5] = this.connection.conversion.ConvertStream(var2, 4, var3);
  4071.                         this.currentRowCharLens[var5] = 0;
  4072.                     } else {
  4073.                         byte[] var15 = new byte[var3];
  4074.                         int var7 = 0;
  4075.                         int var8 = var3;
  4076.  
  4077.                         int var9;
  4078.                         try {
  4079.                             while(var8 > 0 && (var9 = var2.read(var15, var7, var8)) != -1) {
  4080.                                 var7 += var9;
  4081.                                 var8 -= var9;
  4082.                             }
  4083.                         } catch (IOException var13) {
  4084.                             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var13);
  4085.                             var11.fillInStackTrace();
  4086.                             throw var11;
  4087.                         }
  4088.  
  4089.                         char[] var10 = new char[var7 >> 1];
  4090.                         DBConversion var10000 = this.connection.conversion;
  4091.                         DBConversion.ucs2BytesToJavaChars(var15, var7, var10);
  4092.                         this.setStringInternal(var1, new String(var10));
  4093.                     }
  4094.                 }
  4095.  
  4096.             } else {
  4097.                 var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  4098.                 var6.fillInStackTrace();
  4099.                 throw var6;
  4100.             }
  4101.         }
  4102.     }
  4103.  
  4104.     /** @deprecated */
  4105.     public void setCustomDatum(int var1, CustomDatum var2) throws SQLException {
  4106.         PhysicalConnection var3 = this.connection;
  4107.         synchronized(this.connection) {
  4108.             this.setObjectInternal(var1, this.connection.toDatum(var2));
  4109.         }
  4110.     }
  4111.  
  4112.     void setCustomDatumInternal(int var1, CustomDatum var2) throws SQLException {
  4113.         PhysicalConnection var3 = this.connection;
  4114.         synchronized(this.connection) {
  4115.             Datum var4 = this.connection.toDatum(var2);
  4116.             int var5 = this.sqlTypeForObject(var4);
  4117.             this.setObjectCritical(var1, var4, var5, 0);
  4118.         }
  4119.     }
  4120.  
  4121.     public void setORAData(int var1, ORAData var2) throws SQLException {
  4122.         this.setORADataInternal(var1, var2);
  4123.     }
  4124.  
  4125.     void setORADataInternal(int var1, ORAData var2) throws SQLException {
  4126.         PhysicalConnection var3 = this.connection;
  4127.         synchronized(this.connection) {
  4128.             Datum var4 = var2.toDatum(this.connection);
  4129.             int var5 = this.sqlTypeForObject(var4);
  4130.             this.setObjectCritical(var1, var4, var5, 0);
  4131.             if(var5 == 2002 || var5 == 2008 || var5 == 2003) {
  4132.                 this.currentRowCharLens[var1 - 1] = 0;
  4133.             }
  4134.  
  4135.         }
  4136.     }
  4137.  
  4138.     public void setObject(int var1, Object var2, int var3, int var4) throws SQLException {
  4139.         PhysicalConnection var5 = this.connection;
  4140.         synchronized(this.connection) {
  4141.             this.setObjectInternal(var1, var2, var3, var4);
  4142.         }
  4143.     }
  4144.  
  4145.     void setObjectInternal(int var1, Object var2, int var3, int var4) throws SQLException {
  4146.         if(var2 == null && var3 != 2002 && var3 != 2008 && var3 != 2003 && var3 != 2007 && var3 != 2006 && var3 != 2009) {
  4147.             this.setNullInternal(var1, var3);
  4148.         } else if(var3 != 2002 && var3 != 2008 && var3 != 2003 && var3 != 2009) {
  4149.             this.setObjectCritical(var1, var2, var3, var4);
  4150.         } else {
  4151.             this.setObjectCritical(var1, var2, var3, var4);
  4152.             this.currentRowCharLens[var1 - 1] = 0;
  4153.         }
  4154.  
  4155.     }
  4156.  
  4157.     void setObjectCritical(int var1, Object var2, int var3, int var4) throws SQLException {
  4158.         SQLException var5;
  4159.         switch(var3) {
  4160.         case -104:
  4161.             this.setINTERVALDSInternal(var1, (INTERVALDS)var2);
  4162.             break;
  4163.         case -103:
  4164.             this.setINTERVALYMInternal(var1, (INTERVALYM)var2);
  4165.             break;
  4166.         case -102:
  4167.             this.setTIMESTAMPLTZInternal(var1, (TIMESTAMPLTZ)var2);
  4168.             break;
  4169.         case -101:
  4170.             this.setTIMESTAMPTZInternal(var1, (TIMESTAMPTZ)var2);
  4171.             break;
  4172.         case -100:
  4173.             this.setTIMESTAMPInternal(var1, (TIMESTAMP)var2);
  4174.             break;
  4175.         case -16:
  4176.             this.setFormOfUse(var1, (short)2);
  4177.         case -1:
  4178.             if(var2 instanceof String) {
  4179.                 this.setStringInternal(var1, (String)var2);
  4180.             } else if(var2 instanceof Boolean) {
  4181.                 this.setStringInternal(var1, "" + (((Boolean)var2).booleanValue()?1:0));
  4182.             } else if(var2 instanceof Integer) {
  4183.                 this.setStringInternal(var1, "" + ((Integer)var2).intValue());
  4184.             } else if(var2 instanceof Long) {
  4185.                 this.setStringInternal(var1, "" + ((Long)var2).longValue());
  4186.             } else if(var2 instanceof Float) {
  4187.                 this.setStringInternal(var1, "" + ((Float)var2).floatValue());
  4188.             } else if(var2 instanceof Double) {
  4189.                 this.setStringInternal(var1, "" + ((Double)var2).doubleValue());
  4190.             } else if(var2 instanceof BigDecimal) {
  4191.                 this.setStringInternal(var1, ((BigDecimal)var2).toString());
  4192.             } else if(var2 instanceof Date) {
  4193.                 this.setStringInternal(var1, "" + ((Date)var2).toString());
  4194.             } else if(var2 instanceof Time) {
  4195.                 this.setStringInternal(var1, "" + ((Time)var2).toString());
  4196.             } else {
  4197.                 if(!(var2 instanceof Timestamp)) {
  4198.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4199.                     var5.fillInStackTrace();
  4200.                     throw var5;
  4201.                 }
  4202.  
  4203.                 this.setStringInternal(var1, "" + ((Timestamp)var2).toString());
  4204.             }
  4205.             break;
  4206.         case -15:
  4207.             this.setFormOfUse(var1, (short)2);
  4208.         case 1:
  4209.             if(var2 instanceof CHAR) {
  4210.                 this.setCHARInternal(var1, (CHAR)var2);
  4211.             } else if(var2 instanceof String) {
  4212.                 this.setStringInternal(var1, (String)var2);
  4213.             } else if(var2 instanceof Boolean) {
  4214.                 this.setStringInternal(var1, "" + (((Boolean)var2).booleanValue()?1:0));
  4215.             } else if(var2 instanceof Integer) {
  4216.                 this.setStringInternal(var1, "" + ((Integer)var2).intValue());
  4217.             } else if(var2 instanceof Long) {
  4218.                 this.setStringInternal(var1, "" + ((Long)var2).longValue());
  4219.             } else if(var2 instanceof Float) {
  4220.                 this.setStringInternal(var1, "" + ((Float)var2).floatValue());
  4221.             } else if(var2 instanceof Double) {
  4222.                 this.setStringInternal(var1, "" + ((Double)var2).doubleValue());
  4223.             } else if(var2 instanceof BigDecimal) {
  4224.                 this.setStringInternal(var1, ((BigDecimal)var2).toString());
  4225.             } else if(var2 instanceof Date) {
  4226.                 this.setStringInternal(var1, "" + ((Date)var2).toString());
  4227.             } else if(var2 instanceof Time) {
  4228.                 this.setStringInternal(var1, "" + ((Time)var2).toString());
  4229.             } else {
  4230.                 if(!(var2 instanceof Timestamp)) {
  4231.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4232.                     var5.fillInStackTrace();
  4233.                     throw var5;
  4234.                 }
  4235.  
  4236.                 this.setStringInternal(var1, "" + ((Timestamp)var2).toString());
  4237.             }
  4238.             break;
  4239.         case -13:
  4240.             this.setBFILEInternal(var1, (BFILE)var2);
  4241.             break;
  4242.         case -9:
  4243.             this.setFormOfUse(var1, (short)2);
  4244.         case 12:
  4245.             if(var2 instanceof String) {
  4246.                 this.setStringInternal(var1, (String)var2);
  4247.             } else if(var2 instanceof Boolean) {
  4248.                 this.setStringInternal(var1, "" + (((Boolean)var2).booleanValue()?1:0));
  4249.             } else if(var2 instanceof Integer) {
  4250.                 this.setStringInternal(var1, "" + ((Integer)var2).intValue());
  4251.             } else if(var2 instanceof Long) {
  4252.                 this.setStringInternal(var1, "" + ((Long)var2).longValue());
  4253.             } else if(var2 instanceof Float) {
  4254.                 this.setStringInternal(var1, "" + ((Float)var2).floatValue());
  4255.             } else if(var2 instanceof Double) {
  4256.                 this.setStringInternal(var1, "" + ((Double)var2).doubleValue());
  4257.             } else if(var2 instanceof BigDecimal) {
  4258.                 this.setStringInternal(var1, ((BigDecimal)var2).toString());
  4259.             } else if(var2 instanceof Date) {
  4260.                 this.setStringInternal(var1, "" + ((Date)var2).toString());
  4261.             } else if(var2 instanceof Time) {
  4262.                 this.setStringInternal(var1, "" + ((Time)var2).toString());
  4263.             } else {
  4264.                 if(!(var2 instanceof Timestamp)) {
  4265.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4266.                     var5.fillInStackTrace();
  4267.                     throw var5;
  4268.                 }
  4269.  
  4270.                 this.setStringInternal(var1, "" + ((Timestamp)var2).toString());
  4271.             }
  4272.             break;
  4273.         case -8:
  4274.             this.setROWIDInternal(var1, (ROWID)var2);
  4275.             break;
  4276.         case -7:
  4277.             if(var2 instanceof Boolean) {
  4278.                 this.setByteInternal(var1, (byte)(((Boolean)var2).booleanValue()?1:0));
  4279.             } else if(var2 instanceof String) {
  4280.                 this.setByteInternal(var1, (byte)(!"true".equalsIgnoreCase((String)var2) && !"1".equals(var2)?0:1));
  4281.             } else {
  4282.                 if(!(var2 instanceof Number)) {
  4283.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4284.                     var5.fillInStackTrace();
  4285.                     throw var5;
  4286.                 }
  4287.  
  4288.                 this.setIntInternal(var1, ((Number)var2).byteValue() != 0?1:0);
  4289.             }
  4290.             break;
  4291.         case -6:
  4292.             if(var2 instanceof Number) {
  4293.                 this.setByteInternal(var1, ((Number)var2).byteValue());
  4294.             } else if(var2 instanceof String) {
  4295.                 this.setByteInternal(var1, Byte.parseByte((String)var2));
  4296.             } else {
  4297.                 if(!(var2 instanceof Boolean)) {
  4298.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4299.                     var5.fillInStackTrace();
  4300.                     throw var5;
  4301.                 }
  4302.  
  4303.                 this.setByteInternal(var1, (byte)(((Boolean)var2).booleanValue()?1:0));
  4304.             }
  4305.             break;
  4306.         case -5:
  4307.             if(var2 instanceof Number) {
  4308.                 this.setLongInternal(var1, ((Number)var2).longValue());
  4309.             } else if(var2 instanceof String) {
  4310.                 this.setLongInternal(var1, Long.parseLong((String)var2));
  4311.             } else {
  4312.                 if(!(var2 instanceof Boolean)) {
  4313.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4314.                     var5.fillInStackTrace();
  4315.                     throw var5;
  4316.                 }
  4317.  
  4318.                 this.setLongInternal(var1, ((Boolean)var2).booleanValue()?1L:0L);
  4319.             }
  4320.             break;
  4321.         case -4:
  4322.             this.setBytesInternal(var1, (byte[])((byte[])var2));
  4323.             break;
  4324.         case -3:
  4325.             this.setBytesInternal(var1, (byte[])((byte[])var2));
  4326.             break;
  4327.         case -2:
  4328.             if(var2 instanceof RAW) {
  4329.                 this.setRAWInternal(var1, (RAW)var2);
  4330.             } else {
  4331.                 this.setBytesInternal(var1, (byte[])((byte[])var2));
  4332.             }
  4333.             break;
  4334.         case 2:
  4335.             if(var2 instanceof NUMBER) {
  4336.                 this.setNUMBERInternal(var1, (NUMBER)var2);
  4337.             } else if(var2 instanceof Integer) {
  4338.                 this.setIntInternal(var1, ((Integer)var2).intValue());
  4339.             } else if(var2 instanceof Long) {
  4340.                 this.setLongInternal(var1, ((Long)var2).longValue());
  4341.             } else if(var2 instanceof Float) {
  4342.                 this.setFloatInternal(var1, ((Float)var2).floatValue());
  4343.             } else if(var2 instanceof Double) {
  4344.                 this.setDoubleInternal(var1, ((Double)var2).doubleValue());
  4345.             } else if(var2 instanceof BigDecimal) {
  4346.                 this.setBigDecimalInternal(var1, (BigDecimal)var2);
  4347.             } else if(var2 instanceof String) {
  4348.                 this.setNUMBERInternal(var1, new NUMBER((String)var2, var4));
  4349.             } else if(var2 instanceof Boolean) {
  4350.                 this.setIntInternal(var1, ((Boolean)var2).booleanValue()?1:0);
  4351.             } else if(var2 instanceof Short) {
  4352.                 this.setShortInternal(var1, ((Short)var2).shortValue());
  4353.             } else {
  4354.                 if(!(var2 instanceof Byte)) {
  4355.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4356.                     var5.fillInStackTrace();
  4357.                     throw var5;
  4358.                 }
  4359.  
  4360.                 this.setByteInternal(var1, ((Byte)var2).byteValue());
  4361.             }
  4362.             break;
  4363.         case 3:
  4364.             if(var2 instanceof BigDecimal) {
  4365.                 this.setBigDecimalInternal(var1, (BigDecimal)var2);
  4366.             } else if(var2 instanceof Number) {
  4367.                 this.setBigDecimalInternal(var1, new BigDecimal(((Number)var2).doubleValue()));
  4368.             } else if(var2 instanceof NUMBER) {
  4369.                 this.setBigDecimalInternal(var1, ((NUMBER)var2).bigDecimalValue());
  4370.             } else if(var2 instanceof String) {
  4371.                 this.setBigDecimalInternal(var1, new BigDecimal((String)var2));
  4372.             } else {
  4373.                 if(!(var2 instanceof Boolean)) {
  4374.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4375.                     var5.fillInStackTrace();
  4376.                     throw var5;
  4377.                 }
  4378.  
  4379.                 this.setBigDecimalInternal(var1, new BigDecimal(((Boolean)var2).booleanValue()?1.0D:0.0D));
  4380.             }
  4381.             break;
  4382.         case 4:
  4383.             if(var2 instanceof Number) {
  4384.                 this.setIntInternal(var1, ((Number)var2).intValue());
  4385.             } else if(var2 instanceof String) {
  4386.                 this.setIntInternal(var1, Integer.parseInt((String)var2));
  4387.             } else {
  4388.                 if(!(var2 instanceof Boolean)) {
  4389.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4390.                     var5.fillInStackTrace();
  4391.                     throw var5;
  4392.                 }
  4393.  
  4394.                 this.setIntInternal(var1, ((Boolean)var2).booleanValue()?1:0);
  4395.             }
  4396.             break;
  4397.         case 5:
  4398.             if(var2 instanceof Number) {
  4399.                 this.setShortInternal(var1, ((Number)var2).shortValue());
  4400.             } else if(var2 instanceof String) {
  4401.                 this.setShortInternal(var1, Short.parseShort((String)var2));
  4402.             } else {
  4403.                 if(!(var2 instanceof Boolean)) {
  4404.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4405.                     var5.fillInStackTrace();
  4406.                     throw var5;
  4407.                 }
  4408.  
  4409.                 this.setShortInternal(var1, (short)(((Boolean)var2).booleanValue()?1:0));
  4410.             }
  4411.             break;
  4412.         case 6:
  4413.         case 8:
  4414.             if(var2 instanceof Number) {
  4415.                 this.setDoubleInternal(var1, ((Number)var2).doubleValue());
  4416.             } else if(var2 instanceof String) {
  4417.                 this.setDoubleInternal(var1, Double.valueOf((String)var2).doubleValue());
  4418.             } else {
  4419.                 if(!(var2 instanceof Boolean)) {
  4420.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4421.                     var5.fillInStackTrace();
  4422.                     throw var5;
  4423.                 }
  4424.  
  4425.                 this.setDoubleInternal(var1, ((Boolean)var2).booleanValue()?1.0D:0.0D);
  4426.             }
  4427.             break;
  4428.         case 7:
  4429.             if(var2 instanceof Number) {
  4430.                 this.setFloatInternal(var1, ((Number)var2).floatValue());
  4431.             } else if(var2 instanceof String) {
  4432.                 this.setFloatInternal(var1, Float.valueOf((String)var2).floatValue());
  4433.             } else {
  4434.                 if(!(var2 instanceof Boolean)) {
  4435.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4436.                     var5.fillInStackTrace();
  4437.                     throw var5;
  4438.                 }
  4439.  
  4440.                 this.setFloatInternal(var1, ((Boolean)var2).booleanValue()?1.0F:0.0F);
  4441.             }
  4442.             break;
  4443.         case 91:
  4444.             if(var2 instanceof DATE) {
  4445.                 this.setDATEInternal(var1, (DATE)var2);
  4446.             } else if(var2 instanceof Date) {
  4447.                 this.setDATEInternal(var1, new DATE(var2, this.getDefaultCalendar()));
  4448.             } else if(var2 instanceof Timestamp) {
  4449.                 this.setDATEInternal(var1, new DATE((Timestamp)var2));
  4450.             } else {
  4451.                 if(!(var2 instanceof String)) {
  4452.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4453.                     var5.fillInStackTrace();
  4454.                     throw var5;
  4455.                 }
  4456.  
  4457.                 this.setDateInternal(var1, Date.valueOf((String)var2));
  4458.             }
  4459.             break;
  4460.         case 92:
  4461.             if(var2 instanceof Time) {
  4462.                 this.setTimeInternal(var1, (Time)var2);
  4463.             } else if(var2 instanceof Timestamp) {
  4464.                 this.setTimeInternal(var1, new Time(((Timestamp)var2).getTime()));
  4465.             } else if(var2 instanceof Date) {
  4466.                 this.setTimeInternal(var1, new Time(((Date)var2).getTime()));
  4467.             } else {
  4468.                 if(!(var2 instanceof String)) {
  4469.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4470.                     var5.fillInStackTrace();
  4471.                     throw var5;
  4472.                 }
  4473.  
  4474.                 this.setTimeInternal(var1, Time.valueOf((String)var2));
  4475.             }
  4476.             break;
  4477.         case 93:
  4478.             if(var2 instanceof TIMESTAMP) {
  4479.                 this.setTIMESTAMPInternal(var1, (TIMESTAMP)var2);
  4480.             } else if(var2 instanceof Timestamp) {
  4481.                 this.setTimestampInternal(var1, (Timestamp)var2);
  4482.             } else if(var2 instanceof Date) {
  4483.                 this.setTIMESTAMPInternal(var1, new TIMESTAMP((Date)var2));
  4484.             } else if(var2 instanceof DATE) {
  4485.                 this.setTIMESTAMPInternal(var1, new TIMESTAMP(((DATE)var2).timestampValue()));
  4486.             } else {
  4487.                 if(!(var2 instanceof String)) {
  4488.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 132);
  4489.                     var5.fillInStackTrace();
  4490.                     throw var5;
  4491.                 }
  4492.  
  4493.                 this.setTimestampInternal(var1, Timestamp.valueOf((String)var2));
  4494.             }
  4495.             break;
  4496.         case 100:
  4497.             this.setBinaryFloatInternal(var1, (BINARY_FLOAT)var2);
  4498.             break;
  4499.         case 101:
  4500.             this.setBinaryDoubleInternal(var1, (BINARY_DOUBLE)var2);
  4501.             break;
  4502.         case 999:
  4503.             this.setFixedCHARInternal(var1, (String)var2);
  4504.             break;
  4505.         case 2002:
  4506.         case 2008:
  4507.             this.setSTRUCTInternal(var1, STRUCT.toSTRUCT(var2, this.connection));
  4508.             break;
  4509.         case 2003:
  4510.             this.setARRAYInternal(var1, ARRAY.toARRAY(var2, this.connection));
  4511.             break;
  4512.         case 2004:
  4513.             this.setBLOBInternal(var1, (BLOB)var2);
  4514.             break;
  4515.         case 2005:
  4516.         case 2011:
  4517.             this.setCLOBInternal(var1, (CLOB)var2);
  4518.             if(((CLOB)var2).isNCLOB()) {
  4519.                 this.setFormOfUse(var1, (short)2);
  4520.             }
  4521.             break;
  4522.         case 2006:
  4523.             this.setREFInternal(var1, (REF)var2);
  4524.             break;
  4525.         case 2007:
  4526.             this.setOPAQUEInternal(var1, (OPAQUE)var2);
  4527.             break;
  4528.         case 2009:
  4529.             this.setSQLXMLInternal(var1, (SQLXML)var2);
  4530.             break;
  4531.         default:
  4532.             var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 4);
  4533.             var5.fillInStackTrace();
  4534.             throw var5;
  4535.         }
  4536.  
  4537.     }
  4538.  
  4539.     public void setObjectAtName(String var1, Object var2, int var3, int var4) throws SQLException {
  4540.         String var5 = var1.intern();
  4541.         String[] var6 = this.sqlObject.getParameterList();
  4542.         boolean var7 = false;
  4543.         int var8 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  4544.  
  4545.         for(int var9 = 0; var9 < var8; ++var9) {
  4546.             if(var6[var9] == var5) {
  4547.                 this.setObjectInternal(var9 + 1, var2);
  4548.                 var7 = true;
  4549.             }
  4550.         }
  4551.  
  4552.         if(!var7) {
  4553.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  4554.             var10.fillInStackTrace();
  4555.             throw var10;
  4556.         }
  4557.     }
  4558.  
  4559.     public void setObject(int var1, Object var2, int var3) throws SQLException {
  4560.         this.setObjectInternal(var1, var2, var3, 0);
  4561.     }
  4562.  
  4563.     void setObjectInternal(int var1, Object var2, int var3) throws SQLException {
  4564.         this.setObjectInternal(var1, var2, var3, 0);
  4565.     }
  4566.  
  4567.     public void setRefType(int var1, REF var2) throws SQLException {
  4568.         this.setREFInternal(var1, var2);
  4569.     }
  4570.  
  4571.     void setRefTypeInternal(int var1, REF var2) throws SQLException {
  4572.         this.setREFInternal(var1, var2);
  4573.     }
  4574.  
  4575.     public void setRef(int var1, Ref var2) throws SQLException {
  4576.         this.setREFInternal(var1, (REF)var2);
  4577.     }
  4578.  
  4579.     void setRefInternal(int var1, Ref var2) throws SQLException {
  4580.         this.setREFInternal(var1, (REF)var2);
  4581.     }
  4582.  
  4583.     public void setREF(int var1, REF var2) throws SQLException {
  4584.         this.setREFInternal(var1, var2);
  4585.     }
  4586.  
  4587.     void setREFInternal(int var1, REF var2) throws SQLException {
  4588.         int var3 = var1 - 1;
  4589.         SQLException var4;
  4590.         if(var3 >= 0 && var1 <= this.numberOfBindPositions) {
  4591.             if(var2 == null) {
  4592.                 var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  4593.                 var4.fillInStackTrace();
  4594.                 throw var4;
  4595.             } else {
  4596.                 this.setREFCritical(var3, var2);
  4597.                 this.currentRowCharLens[var3] = 0;
  4598.             }
  4599.         } else {
  4600.             var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  4601.             var4.fillInStackTrace();
  4602.             throw var4;
  4603.         }
  4604.     }
  4605.  
  4606.     void setREFCritical(int var1, REF var2) throws SQLException {
  4607.         StructDescriptor var3 = var2.getDescriptor();
  4608.         if(var3 == null) {
  4609.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 52);
  4610.             var5.fillInStackTrace();
  4611.             throw var5;
  4612.         } else {
  4613.             this.currentRowBinders[var1] = this.theRefTypeBinder;
  4614.             if(this.parameterDatum == null) {
  4615.                 this.parameterDatum = new byte[this.numberOfBindRowsAllocated][this.numberOfBindPositions][];
  4616.             }
  4617.  
  4618.             this.parameterDatum[this.currentRank][var1] = var2.getBytes();
  4619.             OracleTypeADT var4 = var3.getOracleTypeADT();
  4620.             var4.getTOID();
  4621.             if(this.parameterOtype == null) {
  4622.                 this.parameterOtype = new OracleTypeADT[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  4623.             }
  4624.  
  4625.             this.parameterOtype[this.currentRank][var1] = var4;
  4626.         }
  4627.     }
  4628.  
  4629.     public void setObject(int var1, Object var2) throws SQLException {
  4630.         this.setObjectInternal(var1, var2);
  4631.     }
  4632.  
  4633.     void setObjectInternal(int var1, Object var2) throws SQLException {
  4634.         if(var2 instanceof ORAData) {
  4635.             this.setORADataInternal(var1, (ORAData)var2);
  4636.         } else if(var2 instanceof CustomDatum) {
  4637.             this.setCustomDatumInternal(var1, (CustomDatum)var2);
  4638.         } else {
  4639.             int var3 = this.sqlTypeForObject(var2);
  4640.             this.setObjectInternal(var1, var2, var3, 0);
  4641.         }
  4642.  
  4643.     }
  4644.  
  4645.     public void setOracleObject(int var1, Datum var2) throws SQLException {
  4646.         this.setObjectInternal(var1, var2);
  4647.     }
  4648.  
  4649.     void setOracleObjectInternal(int var1, Datum var2) throws SQLException {
  4650.         this.setObjectInternal(var1, var2);
  4651.     }
  4652.  
  4653.     public void setPlsqlIndexTable(int var1, Object var2, int var3, int var4, int var5, int var6) throws SQLException {
  4654.         PhysicalConnection var7 = this.connection;
  4655.         synchronized(this.connection) {
  4656.             this.setPlsqlIndexTableInternal(var1, var2, var3, var4, var5, var6);
  4657.         }
  4658.     }
  4659.  
  4660.     void setPlsqlIndexTableInternal(int var1, Object var2, int var3, int var4, int var5, int var6) throws SQLException {
  4661.         int var7 = var1 - 1;
  4662.         SQLException var8;
  4663.         if(var7 >= 0 && var1 <= this.numberOfBindPositions) {
  4664.             if(var2 == null) {
  4665.                 var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 271);
  4666.                 var8.fillInStackTrace();
  4667.                 throw var8;
  4668.             } else {
  4669.                 int var15 = this.getInternalType(var5);
  4670.                 Object var9 = null;
  4671.                 SQLException var17;
  4672.                 switch(var15) {
  4673.                 case 1:
  4674.                 case 96:
  4675.                     String[] var10 = null;
  4676.                     boolean var11 = false;
  4677.                     int var16;
  4678.                     if(var2 instanceof CHAR[]) {
  4679.                         CHAR[] var18 = (CHAR[])((CHAR[])var2);
  4680.                         var16 = var18.length;
  4681.                         var10 = new String[var16];
  4682.  
  4683.                         for(int var13 = 0; var13 < var16; ++var13) {
  4684.                             CHAR var14 = var18[var13];
  4685.                             if(var14 != null) {
  4686.                                 var10[var13] = var14.getString();
  4687.                             }
  4688.                         }
  4689.                     } else {
  4690.                         if(!(var2 instanceof String[])) {
  4691.                             SQLException var12 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 97);
  4692.                             var12.fillInStackTrace();
  4693.                             throw var12;
  4694.                         }
  4695.  
  4696.                         var10 = (String[])((String[])var2);
  4697.                         var16 = var10.length;
  4698.                     }
  4699.  
  4700.                     if(var6 == 0 && var10 != null) {
  4701.                         for(int var19 = 0; var19 < var16; ++var19) {
  4702.                             String var20 = var10[var19];
  4703.                             if(var20 != null && var6 < var20.length()) {
  4704.                                 var6 = var20.length();
  4705.                             }
  4706.                         }
  4707.                     }
  4708.  
  4709.                     var9 = var10;
  4710.                     break;
  4711.                 case 2:
  4712.                 case 6:
  4713.                     var9 = OracleTypeNUMBER.toNUMBERArray(var2, this.connection, 1L, var4);
  4714.                     if(var6 == 0 && var9 != null) {
  4715.                         var6 = 22;
  4716.                     }
  4717.  
  4718.                     this.currentRowCharLens[var7] = 0;
  4719.                     break;
  4720.                 default:
  4721.                     var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 97);
  4722.                     var17.fillInStackTrace();
  4723.                     throw var17;
  4724.                 }
  4725.  
  4726.                 if(((Object[])var9).length == 0 && var3 == 0) {
  4727.                     var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 272);
  4728.                     var17.fillInStackTrace();
  4729.                     throw var17;
  4730.                 } else {
  4731.                     this.currentRowBinders[var7] = this.thePlsqlIbtBinder;
  4732.                     if(this.parameterPlsqlIbt == null) {
  4733.                         this.parameterPlsqlIbt = new PlsqlIbtBindInfo[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  4734.                     }
  4735.  
  4736.                     this.parameterPlsqlIbt[this.currentRank][var7] = new PlsqlIbtBindInfo((Object[])var9, var3, var4, var15, var6);
  4737.                     this.hasIbtBind = true;
  4738.                 }
  4739.             }
  4740.         } else {
  4741.             var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  4742.             var8.fillInStackTrace();
  4743.             throw var8;
  4744.         }
  4745.     }
  4746.  
  4747.     public void setPlsqlIndexTableAtName(String var1, Object var2, int var3, int var4, int var5, int var6) throws SQLException {
  4748.         PhysicalConnection var7 = this.connection;
  4749.         synchronized(this.connection) {
  4750.             String var8 = var1.intern();
  4751.             String[] var9 = this.sqlObject.getParameterList();
  4752.             boolean var10 = false;
  4753.             int var11 = Math.min(this.sqlObject.getParameterCount(), var9.length);
  4754.  
  4755.             for(int var12 = 0; var12 < var11; ++var12) {
  4756.                 if(var9[var12] == var8) {
  4757.                     this.setPlsqlIndexTableInternal(var12 + 1, var2, var3, var4, var5, var6);
  4758.                     var10 = true;
  4759.                 }
  4760.             }
  4761.  
  4762.             if(!var10) {
  4763.                 SQLException var15 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  4764.                 var15.fillInStackTrace();
  4765.                 throw var15;
  4766.             }
  4767.         }
  4768.     }
  4769.  
  4770.     void endOfResultSet(boolean var1) throws SQLException {
  4771.         if(!var1) {
  4772.             this.prepareForNewResults(false, false);
  4773.         }
  4774.  
  4775.         this.rowPrefetchInLastFetch = -1;
  4776.     }
  4777.  
  4778.     int sqlTypeForObject(Object var1) {
  4779.         if(var1 == null) {
  4780.             return 0;
  4781.         } else {
  4782.             if(!(var1 instanceof Datum)) {
  4783.                 if(var1 instanceof String) {
  4784.                     return this.fixedString?999:12;
  4785.                 }
  4786.  
  4787.                 if(var1 instanceof BigDecimal) {
  4788.                     return 2;
  4789.                 }
  4790.  
  4791.                 if(var1 instanceof Boolean) {
  4792.                     return -7;
  4793.                 }
  4794.  
  4795.                 if(var1 instanceof Integer) {
  4796.                     return 4;
  4797.                 }
  4798.  
  4799.                 if(var1 instanceof Long) {
  4800.                     return -5;
  4801.                 }
  4802.  
  4803.                 if(var1 instanceof Float) {
  4804.                     return 7;
  4805.                 }
  4806.  
  4807.                 if(var1 instanceof Double) {
  4808.                     return 8;
  4809.                 }
  4810.  
  4811.                 if(var1 instanceof byte[]) {
  4812.                     return -3;
  4813.                 }
  4814.  
  4815.                 if(var1 instanceof Short) {
  4816.                     return 5;
  4817.                 }
  4818.  
  4819.                 if(var1 instanceof Byte) {
  4820.                     return -6;
  4821.                 }
  4822.  
  4823.                 if(var1 instanceof Date) {
  4824.                     return 91;
  4825.                 }
  4826.  
  4827.                 if(var1 instanceof Time) {
  4828.                     return 92;
  4829.                 }
  4830.  
  4831.                 if(var1 instanceof Timestamp) {
  4832.                     return 93;
  4833.                 }
  4834.  
  4835.                 if(var1 instanceof SQLData) {
  4836.                     return 2002;
  4837.                 }
  4838.  
  4839.                 if(var1 instanceof ObjectData) {
  4840.                     return 2002;
  4841.                 }
  4842.             } else {
  4843.                 if(var1 instanceof BINARY_FLOAT) {
  4844.                     return 100;
  4845.                 }
  4846.  
  4847.                 if(var1 instanceof BINARY_DOUBLE) {
  4848.                     return 101;
  4849.                 }
  4850.  
  4851.                 if(var1 instanceof BLOB) {
  4852.                     return 2004;
  4853.                 }
  4854.  
  4855.                 if(var1 instanceof CLOB) {
  4856.                     return 2005;
  4857.                 }
  4858.  
  4859.                 if(var1 instanceof BFILE) {
  4860.                     return -13;
  4861.                 }
  4862.  
  4863.                 if(var1 instanceof ROWID) {
  4864.                     return -8;
  4865.                 }
  4866.  
  4867.                 if(var1 instanceof NUMBER) {
  4868.                     return 2;
  4869.                 }
  4870.  
  4871.                 if(var1 instanceof DATE) {
  4872.                     return 91;
  4873.                 }
  4874.  
  4875.                 if(var1 instanceof TIMESTAMP) {
  4876.                     return 93;
  4877.                 }
  4878.  
  4879.                 if(var1 instanceof TIMESTAMPTZ) {
  4880.                     return -101;
  4881.                 }
  4882.  
  4883.                 if(var1 instanceof TIMESTAMPLTZ) {
  4884.                     return -102;
  4885.                 }
  4886.  
  4887.                 if(var1 instanceof REF) {
  4888.                     return 2006;
  4889.                 }
  4890.  
  4891.                 if(var1 instanceof CHAR) {
  4892.                     return 1;
  4893.                 }
  4894.  
  4895.                 if(var1 instanceof RAW) {
  4896.                     return -2;
  4897.                 }
  4898.  
  4899.                 if(var1 instanceof ARRAY) {
  4900.                     return 2003;
  4901.                 }
  4902.  
  4903.                 if(var1 instanceof STRUCT) {
  4904.                     return 2002;
  4905.                 }
  4906.  
  4907.                 if(var1 instanceof OPAQUE) {
  4908.                     return 2007;
  4909.                 }
  4910.  
  4911.                 if(var1 instanceof INTERVALYM) {
  4912.                     return -103;
  4913.                 }
  4914.  
  4915.                 if(var1 instanceof INTERVALDS) {
  4916.                     return -104;
  4917.                 }
  4918.  
  4919.                 if(var1 instanceof SQLXML) {
  4920.                     return 2009;
  4921.                 }
  4922.             }
  4923.  
  4924.             return 1111;
  4925.         }
  4926.     }
  4927.  
  4928.     public void clearParameters() throws SQLException {
  4929.         PhysicalConnection var1 = this.connection;
  4930.         synchronized(this.connection) {
  4931.             this.clearParameters = true;
  4932.  
  4933.             for(int var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  4934.                 this.currentRowBinders[var3] = null;
  4935.             }
  4936.  
  4937.         }
  4938.     }
  4939.  
  4940.     void printByteArray(byte[] var1) {
  4941.         if(var1 != null) {
  4942.             int var3 = var1.length;
  4943.  
  4944.             for(int var2 = 0; var2 < var3; ++var2) {
  4945.                 int var4 = var1[var2] & 255;
  4946.                 if(var4 < 16) {
  4947.                     ;
  4948.                 }
  4949.             }
  4950.         }
  4951.  
  4952.     }
  4953.  
  4954.     public void setCharacterStream(int var1, Reader var2, int var3) throws SQLException {
  4955.         this.setCharacterStreamInternal(var1, var2, var3);
  4956.     }
  4957.  
  4958.     void setCharacterStreamInternal(int var1, Reader var2, int var3) throws SQLException {
  4959.         this.setCharacterStreamInternal(var1, var2, (long)var3, true);
  4960.     }
  4961.  
  4962.     void setCharacterStreamInternal(int var1, Reader var2, long var3, boolean var5) throws SQLException {
  4963.         int var6 = var1 - 1;
  4964.         SQLException var7;
  4965.         if(var6 >= 0 && var1 <= this.numberOfBindPositions) {
  4966.             this.set_execute_batch(1);
  4967.             this.checkUserStreamForDuplicates(var2, var6);
  4968.             if(var2 == null) {
  4969.                 this.basicBindNullString(var1);
  4970.             } else {
  4971.                 if(this.userRsetType != 1 && (var3 > (long)this.maxVcsCharsSql || !var5)) {
  4972.                     var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 169);
  4973.                     var7.fillInStackTrace();
  4974.                     throw var7;
  4975.                 }
  4976.  
  4977.                 if(!var5) {
  4978.                     this.setReaderContentsForClobCritical(var1, var2, var3, var5);
  4979.                 } else if(this.currentRowFormOfUse[var6] == 1) {
  4980.                     if(this.sqlKind.isPlsqlOrCall()) {
  4981.                         if(var3 <= (long)this.maxVcsBytesPlsql && (var3 <= (long)this.maxVcsCharsPlsql || !this.isServerCharSetFixedWidth)) {
  4982.                             if(var3 <= (long)this.maxVcsCharsPlsql) {
  4983.                                 this.setReaderContentsForStringInternal(var1, var2, (int)var3);
  4984.                             } else {
  4985.                                 this.setReaderContentsForStringOrClobInVariableWidthCase(var1, var2, (int)var3, false);
  4986.                             }
  4987.                         } else {
  4988.                             this.setReaderContentsForClobCritical(var1, var2, var3, var5);
  4989.                         }
  4990.                     } else if(var3 <= (long)this.maxVcsCharsSql) {
  4991.                         this.setReaderContentsForStringInternal(var1, var2, (int)var3);
  4992.                     } else if(var3 > 2147483647L) {
  4993.                         this.setReaderContentsForClobCritical(var1, var2, var3, var5);
  4994.                     } else {
  4995.                         this.basicBindCharacterStream(var1, var2, (int)var3, false);
  4996.                     }
  4997.                 } else if(this.sqlKind.isPlsqlOrCall()) {
  4998.                     if(var3 > (long)this.maxVcsBytesPlsql || var3 > (long)this.maxVcsNCharsPlsql && this.isServerCharSetFixedWidth) {
  4999.                         this.setReaderContentsForClobCritical(var1, var2, var3, var5);
  5000.                     } else if(var3 <= (long)this.maxVcsNCharsPlsql) {
  5001.                         this.setReaderContentsForStringInternal(var1, var2, (int)var3);
  5002.                     } else {
  5003.                         this.setReaderContentsForStringOrClobInVariableWidthCase(var1, var2, (int)var3, true);
  5004.                     }
  5005.                 } else if(var3 <= (long)this.maxVcsNCharsSql) {
  5006.                     this.setReaderContentsForStringInternal(var1, var2, (int)var3);
  5007.                 } else {
  5008.                     this.setReaderContentsForClobCritical(var1, var2, var3, var5);
  5009.                 }
  5010.             }
  5011.  
  5012.         } else {
  5013.             var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5014.             var7.fillInStackTrace();
  5015.             throw var7;
  5016.         }
  5017.     }
  5018.  
  5019.     void basicBindCharacterStream(int var1, Reader var2, int var3, boolean var4) throws SQLException {
  5020.         PhysicalConnection var5 = this.connection;
  5021.         synchronized(this.connection) {
  5022.             int var6 = var1 - 1;
  5023.             if(var4) {
  5024.                 this.currentRowBinders[var6] = this.theLongStreamForStringBinder;
  5025.             } else {
  5026.                 this.currentRowBinders[var6] = this.theLongStreamBinder;
  5027.             }
  5028.  
  5029.             if(this.parameterStream == null) {
  5030.                 this.parameterStream = new InputStream[this.numberOfBindRowsAllocated][this.numberOfBindPositions];
  5031.             }
  5032.  
  5033.             InputStream[] var10000 = this.parameterStream[this.currentRank];
  5034.             InputStream var10002;
  5035.             PhysicalConnection var10004;
  5036.             if(var4) {
  5037.                 var10004 = this.connection;
  5038.                 var10002 = this.connection.conversion.ConvertStreamInternal(var2, 7, var3, this.currentRowFormOfUse[var6]);
  5039.             } else {
  5040.                 var10004 = this.connection;
  5041.                 var10002 = this.connection.conversion.ConvertStream(var2, 7, var3, this.currentRowFormOfUse[var6]);
  5042.             }
  5043.  
  5044.             var10000[var6] = var10002;
  5045.             this.currentRowCharLens[var6] = 0;
  5046.         }
  5047.     }
  5048.  
  5049.     void setReaderContentsForStringOrClobInVariableWidthCase(int var1, Reader var2, int var3, boolean var4) throws SQLException {
  5050.         char[] var5 = new char[var3];
  5051.         int var6 = 0;
  5052.         int var7 = var3;
  5053.  
  5054.         int var8;
  5055.         try {
  5056.             while(var7 > 0 && (var8 = var2.read(var5, var6, var7)) != -1) {
  5057.                 var6 += var8;
  5058.                 var7 -= var8;
  5059.             }
  5060.         } catch (IOException var11) {
  5061.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var11);
  5062.             var10.fillInStackTrace();
  5063.             throw var10;
  5064.         }
  5065.  
  5066.         if(var6 != var3) {
  5067.             char[] var9 = new char[var6];
  5068.             System.arraycopy(var5, 0, var9, 0, var6);
  5069.             var5 = var9;
  5070.         }
  5071.  
  5072.         int var12 = this.connection.conversion.encodedByteLength(var5, var4);
  5073.         if(var12 < this.maxVcsBytesPlsql) {
  5074.             this.setStringInternal(var1, new String(var5));
  5075.         } else {
  5076.             this.setStringForClobCritical(var1, new String(var5));
  5077.         }
  5078.  
  5079.     }
  5080.  
  5081.     void setReaderContentsForStringInternal(int var1, Reader var2, int var3) throws SQLException {
  5082.         char[] var4 = new char[var3];
  5083.         int var5 = 0;
  5084.         int var6 = var3;
  5085.  
  5086.         int var7;
  5087.         try {
  5088.             while(var6 > 0 && (var7 = var2.read(var4, var5, var6)) != -1) {
  5089.                 var5 += var7;
  5090.                 var6 -= var7;
  5091.             }
  5092.         } catch (IOException var10) {
  5093.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), var10);
  5094.             var9.fillInStackTrace();
  5095.             throw var9;
  5096.         }
  5097.  
  5098.         if(var5 != var3) {
  5099.             char[] var8 = new char[var5];
  5100.             System.arraycopy(var4, 0, var8, 0, var5);
  5101.             var4 = var8;
  5102.         }
  5103.  
  5104.         this.setStringInternal(var1, new String(var4));
  5105.     }
  5106.  
  5107.     public void setDate(int var1, Date var2, Calendar var3) throws SQLException {
  5108.         this.setDATEInternal(var1, var2 == null?null:new DATE(var2, var3));
  5109.     }
  5110.  
  5111.     void setDateInternal(int var1, Date var2, Calendar var3) throws SQLException {
  5112.         this.setDATEInternal(var1, var2 == null?null:new DATE(var2, var3));
  5113.     }
  5114.  
  5115.     public void setTime(int var1, Time var2, Calendar var3) throws SQLException {
  5116.         this.setDATEInternal(var1, var2 == null?null:new DATE(var2, var3));
  5117.     }
  5118.  
  5119.     void setTimeInternal(int var1, Time var2, Calendar var3) throws SQLException {
  5120.         this.setDATEInternal(var1, var2 == null?null:new DATE(var2, var3));
  5121.     }
  5122.  
  5123.     public void setTimestamp(int var1, Timestamp var2, Calendar var3) throws SQLException {
  5124.         this.setTimestampInternal(var1, var2, var3);
  5125.     }
  5126.  
  5127.     void setTimestampInternal(int var1, Timestamp var2, Calendar var3) throws SQLException {
  5128.         this.setTIMESTAMPInternal(var1, var2 == null?null:new TIMESTAMP(var2, var3));
  5129.     }
  5130.  
  5131.     public void setCheckBindTypes(boolean var1) {
  5132.         this.checkBindTypes = var1;
  5133.     }
  5134.  
  5135.     final void setOracleBatchStyle() throws SQLException {
  5136.         if(this.m_batchStyle == 2) {
  5137.             SQLException var1 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90, "operation cannot be mixed with JDBC-2.0-style batching");
  5138.             var1.fillInStackTrace();
  5139.             throw var1;
  5140.         } else {
  5141.             if(this.m_batchStyle == 0) {
  5142.                 ;
  5143.             }
  5144.  
  5145.             this.m_batchStyle = 1;
  5146.         }
  5147.     }
  5148.  
  5149.     boolean isOracleBatchStyle() {
  5150.         return this.m_batchStyle == 1;
  5151.     }
  5152.  
  5153.     final void setJdbcBatchStyle() throws SQLException {
  5154.         if(this.m_batchStyle == 1) {
  5155.             SQLException var1 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90, "operation cannot be mixed with Oracle-style batching");
  5156.             var1.fillInStackTrace();
  5157.             throw var1;
  5158.         } else {
  5159.             this.m_batchStyle = 2;
  5160.         }
  5161.     }
  5162.  
  5163.     final void checkIfJdbcBatchExists() throws SQLException {
  5164.         if(this.doesJdbcBatchExist()) {
  5165.             SQLException var1 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 81, "batch must be either executed or cleared");
  5166.             var1.fillInStackTrace();
  5167.             throw var1;
  5168.         }
  5169.     }
  5170.  
  5171.     boolean doesJdbcBatchExist() {
  5172.         return this.currentRank > 0 && this.m_batchStyle == 2;
  5173.     }
  5174.  
  5175.     boolean isJdbcBatchStyle() {
  5176.         return this.m_batchStyle == 2;
  5177.     }
  5178.  
  5179.     public void addBatch() throws SQLException {
  5180.         PhysicalConnection var1 = this.connection;
  5181.         synchronized(this.connection) {
  5182.             this.setJdbcBatchStyle();
  5183.             this.processCompletedBindRow(this.currentRank + 2, this.currentRank > 0 && this.sqlKind.isPlsqlOrCall());
  5184.             ++this.currentRank;
  5185.         }
  5186.     }
  5187.  
  5188.     public void addBatch(String var1) throws SQLException {
  5189.         PhysicalConnection var2 = this.connection;
  5190.         synchronized(this.connection){}
  5191.  
  5192.         try {
  5193.             SQLException var3 = DatabaseError.createUnsupportedFeatureSqlException();
  5194.             var3.fillInStackTrace();
  5195.             throw var3;
  5196.         } finally {
  5197.             ;
  5198.         }
  5199.     }
  5200.  
  5201.     public void clearBatch() throws SQLException {
  5202.         PhysicalConnection var1 = this.connection;
  5203.         synchronized(this.connection) {
  5204.             for(int var2 = this.currentRank - 1; var2 >= 0; --var2) {
  5205.                 for(int var3 = 0; var3 < this.numberOfBindPositions; ++var3) {
  5206.                     this.binders[var2][var3] = null;
  5207.                 }
  5208.             }
  5209.  
  5210.             this.currentRank = 0;
  5211.             if(this.binders != null) {
  5212.                 this.currentRowBinders = this.binders[0];
  5213.             }
  5214.  
  5215.             this.pushedBatches = null;
  5216.             this.pushedBatchesTail = null;
  5217.             this.firstRowInBatch = 0;
  5218.             this.clearParameters = true;
  5219.         }
  5220.     }
  5221.  
  5222.     void executeForRowsWithTimeout(boolean var1) throws SQLException {
  5223.         if(this.queryTimeout > 0) {
  5224.             try {
  5225.                 this.connection.getTimeout().setTimeout((long)(this.queryTimeout * 1000), this);
  5226.                 this.isExecuting = true;
  5227.                 this.executeForRows(var1);
  5228.             } finally {
  5229.                 this.connection.getTimeout().cancelTimeout();
  5230.                 this.isExecuting = false;
  5231.             }
  5232.         } else {
  5233.             try {
  5234.                 this.isExecuting = true;
  5235.                 this.executeForRows(var1);
  5236.             } finally {
  5237.                 this.isExecuting = false;
  5238.             }
  5239.         }
  5240.  
  5241.     }
  5242.  
  5243.     public int[] executeBatch() throws SQLException {
  5244.         PhysicalConnection var1 = this.connection;
  5245.         synchronized(this.connection) {
  5246.             int[] var2 = new int[this.currentRank];
  5247.             this.checkSum = 0L;
  5248.             this.checkSumComputationFailure = false;
  5249.             int var3 = 0;
  5250.             this.cleanOldTempLobs();
  5251.             this.setJdbcBatchStyle();
  5252.             if(this.currentRank > 0) {
  5253.                 this.ensureOpen();
  5254.                 this.prepareForNewResults(true, true);
  5255.                 if(this.sqlKind.isSELECT()) {
  5256.                     BatchUpdateException var16 = DatabaseError.createBatchUpdateException(80, 0, (int[])null);
  5257.                     var16.fillInStackTrace();
  5258.                     throw var16;
  5259.                 }
  5260.  
  5261.                 this.noMoreUpdateCounts = false;
  5262.                 int var4 = 0;
  5263.  
  5264.                 try {
  5265.                     this.connection.registerHeartbeat();
  5266.                     this.connection.needLine();
  5267.                     if(!this.isOpen) {
  5268.                         this.connection.open(this);
  5269.                         this.isOpen = true;
  5270.                     }
  5271.  
  5272.                     int var5 = this.currentRank;
  5273.                     if(this.pushedBatches == null) {
  5274.                         this.setupBindBuffers(0, this.currentRank);
  5275.                         this.executeForRowsWithTimeout(false);
  5276.                     } else {
  5277.                         if(this.currentRank > this.firstRowInBatch) {
  5278.                             this.pushBatch(true);
  5279.                         }
  5280.  
  5281.                         boolean var18 = this.needToParse;
  5282.  
  5283.                         while(true) {
  5284.                             OraclePreparedStatement.PushedBatch var19 = this.pushedBatches;
  5285.                             this.currentBatchCharLens = var19.currentBatchCharLens;
  5286.                             this.lastBoundCharLens = var19.lastBoundCharLens;
  5287.                             this.lastBoundNeeded = var19.lastBoundNeeded;
  5288.                             this.currentBatchBindAccessors = var19.currentBatchBindAccessors;
  5289.                             this.needToParse = var19.need_to_parse;
  5290.                             this.currentBatchNeedToPrepareBinds = var19.current_batch_need_to_prepare_binds;
  5291.                             this.firstRowInBatch = var19.first_row_in_batch;
  5292.                             this.setupBindBuffers(var19.first_row_in_batch, var19.number_of_rows_to_be_bound);
  5293.                             this.currentRank = var19.number_of_rows_to_be_bound;
  5294.                             this.executeForRowsWithTimeout(false);
  5295.                             var4 += this.validRows;
  5296.                             if(this.sqlKind.isPlsqlOrCall()) {
  5297.                                 var2[var3++] = this.validRows;
  5298.                             }
  5299.  
  5300.                             this.pushedBatches = var19.next;
  5301.                             if(this.pushedBatches == null) {
  5302.                                 this.pushedBatchesTail = null;
  5303.                                 this.firstRowInBatch = 0;
  5304.                                 this.needToParse = var18;
  5305.                                 break;
  5306.                             }
  5307.                         }
  5308.                     }
  5309.  
  5310.                     this.slideDownCurrentRow(var5);
  5311.                 } catch (SQLException var13) {
  5312.                     int var6 = this.currentRank;
  5313.                     this.clearBatch();
  5314.                     this.needToParse = true;
  5315.                     if(!this.sqlKind.isPlsqlOrCall()) {
  5316.                         if(this.numberOfExecutedElementsInBatch != -1 && this.numberOfExecutedElementsInBatch != var6) {
  5317.                             var2 = new int[this.numberOfExecutedElementsInBatch];
  5318.  
  5319.                             for(var3 = 0; var3 < this.numberOfExecutedElementsInBatch; ++var3) {
  5320.                                 var2[var3] = -2;
  5321.                             }
  5322.                         } else {
  5323.                             for(var3 = 0; var3 < var2.length; ++var3) {
  5324.                                 var2[var3] = -3;
  5325.                             }
  5326.                         }
  5327.                     }
  5328.  
  5329.                     this.resetCurrentRowBinders();
  5330.                     BatchUpdateException var7 = DatabaseError.createBatchUpdateException(var13, this.sqlKind.isPlsqlOrCall()?var3:var2.length, var2);
  5331.                     var7.fillInStackTrace();
  5332.                     throw var7;
  5333.                 } finally {
  5334.                     if(this.sqlKind.isPlsqlOrCall() || var4 > this.validRows) {
  5335.                         this.validRows = var4;
  5336.                     }
  5337.  
  5338.                     this.checkValidRowsStatus();
  5339.                     this.currentRank = 0;
  5340.                 }
  5341.  
  5342.                 if(this.validRows < 0) {
  5343.                     for(var3 = 0; var3 < var2.length; ++var3) {
  5344.                         var2[var3] = -3;
  5345.                     }
  5346.  
  5347.                     BatchUpdateException var17 = DatabaseError.createBatchUpdateException(81, 0, var2);
  5348.                     var17.fillInStackTrace();
  5349.                     throw var17;
  5350.                 }
  5351.  
  5352.                 if(!this.sqlKind.isPlsqlOrCall()) {
  5353.                     for(var3 = 0; var3 < var2.length; ++var3) {
  5354.                         var2[var3] = -2;
  5355.                     }
  5356.                 }
  5357.             }
  5358.  
  5359.             this.connection.registerHeartbeat();
  5360.             return var2;
  5361.         }
  5362.     }
  5363.  
  5364.     void pushBatch(boolean var1) {
  5365.         OraclePreparedStatement.PushedBatch var2 = new OraclePreparedStatement.PushedBatch();
  5366.         var2.currentBatchCharLens = new int[this.numberOfBindPositions];
  5367.         System.arraycopy(this.currentBatchCharLens, 0, var2.currentBatchCharLens, 0, this.numberOfBindPositions);
  5368.         var2.lastBoundCharLens = new int[this.numberOfBindPositions];
  5369.         System.arraycopy(this.lastBoundCharLens, 0, var2.lastBoundCharLens, 0, this.numberOfBindPositions);
  5370.         if(this.currentBatchBindAccessors != null) {
  5371.             var2.currentBatchBindAccessors = new Accessor[this.numberOfBindPositions];
  5372.             System.arraycopy(this.currentBatchBindAccessors, 0, var2.currentBatchBindAccessors, 0, this.numberOfBindPositions);
  5373.         }
  5374.  
  5375.         var2.lastBoundNeeded = this.lastBoundNeeded;
  5376.         var2.need_to_parse = this.needToParse;
  5377.         var2.current_batch_need_to_prepare_binds = this.currentBatchNeedToPrepareBinds;
  5378.         var2.first_row_in_batch = this.firstRowInBatch;
  5379.         var2.number_of_rows_to_be_bound = this.currentRank - this.firstRowInBatch;
  5380.         if(this.pushedBatches == null) {
  5381.             this.pushedBatches = var2;
  5382.         } else {
  5383.             this.pushedBatchesTail.next = var2;
  5384.         }
  5385.  
  5386.         this.pushedBatchesTail = var2;
  5387.         if(!var1) {
  5388.             int[] var3 = this.currentBatchCharLens;
  5389.             this.currentBatchCharLens = this.lastBoundCharLens;
  5390.             this.lastBoundCharLens = var3;
  5391.             this.lastBoundNeeded = false;
  5392.  
  5393.             for(int var4 = 0; var4 < this.numberOfBindPositions; ++var4) {
  5394.                 this.currentBatchCharLens[var4] = 0;
  5395.             }
  5396.  
  5397.             this.firstRowInBatch = this.currentRank;
  5398.         }
  5399.  
  5400.     }
  5401.  
  5402.     int doScrollPstmtExecuteUpdate() throws SQLException {
  5403.         this.doScrollExecuteCommon();
  5404.         if(this.sqlKind.isSELECT()) {
  5405.             this.scrollRsetTypeSolved = true;
  5406.         }
  5407.  
  5408.         return this.validRows;
  5409.     }
  5410.  
  5411.     public int copyBinds(Statement var1, int var2) throws SQLException {
  5412.         if(this.numberOfBindPositions > 0) {
  5413.             OraclePreparedStatement var3 = (OraclePreparedStatement)var1;
  5414.             int var4 = this.bindIndicatorSubRange + 5;
  5415.             int var5 = this.bindByteSubRange;
  5416.             int var6 = this.bindCharSubRange;
  5417.             int var7 = this.indicatorsOffset;
  5418.             int var8 = this.valueLengthsOffset;
  5419.  
  5420.             for(int var9 = 0; var9 < this.numberOfBindPositions; ++var9) {
  5421.                 short var10 = this.bindIndicators[var4 + 0];
  5422.                 short var11 = this.bindIndicators[var4 + 1];
  5423.                 short var12 = this.bindIndicators[var4 + 2];
  5424.                 int var13 = var9 + var2;
  5425.                 if(var3.parameterDatum == null) {
  5426.                     var3.parameterDatum = new byte[var3.numberOfBindRowsAllocated][var3.numberOfBindPositions][];
  5427.                 }
  5428.  
  5429.                 if(var3.parameterOtype == null) {
  5430.                     var3.parameterOtype = new OracleTypeADT[var3.numberOfBindRowsAllocated][var3.numberOfBindPositions];
  5431.                 }
  5432.  
  5433.                 if(this.bindIndicators[var7] == -1) {
  5434.                     var3.currentRowBinders[var13] = this.copiedNullBinder(var10, var11);
  5435.                     if(var12 > 0) {
  5436.                         var3.currentRowCharLens[var13] = 1;
  5437.                     }
  5438.                 } else if(var10 != 109 && var10 != 111) {
  5439.                     if(var11 > 0) {
  5440.                         var3.currentRowBinders[var13] = this.copiedByteBinder(var10, this.bindBytes, var5, var11, this.bindIndicators[var8]);
  5441.                     } else {
  5442.                         if(var12 <= 0) {
  5443.                             SQLException var17 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 89, "copyBinds doesn\'t understand type " + var10);
  5444.                             var17.fillInStackTrace();
  5445.                             throw var17;
  5446.                         }
  5447.  
  5448.                         var3.currentRowBinders[var13] = this.copiedCharBinder(var10, this.bindChars, var6, var12, this.bindIndicators[var8], this.getInoutIndicator(var9));
  5449.                         var3.currentRowCharLens[var13] = var12;
  5450.                     }
  5451.                 } else {
  5452.                     var3.currentRowBinders[var13] = var10 == 109?this.theNamedTypeBinder:this.theRefTypeBinder;
  5453.                     byte[] var14 = this.parameterDatum[0][var9];
  5454.                     int var15 = var14.length;
  5455.                     byte[] var16 = new byte[var15];
  5456.                     var3.parameterDatum[0][var13] = var16;
  5457.                     System.arraycopy(var14, 0, var16, 0, var15);
  5458.                     var3.parameterOtype[0][var13] = this.parameterOtype[0][var9];
  5459.                 }
  5460.  
  5461.                 var5 += this.bindBufferCapacity * var11;
  5462.                 var6 += this.bindBufferCapacity * var12;
  5463.                 var7 += this.numberOfBindRowsAllocated;
  5464.                 var8 += this.numberOfBindRowsAllocated;
  5465.                 var4 += 10;
  5466.             }
  5467.         }
  5468.  
  5469.         return this.numberOfBindPositions;
  5470.     }
  5471.  
  5472.     Binder copiedNullBinder(short var1, int var2) throws SQLException {
  5473.         return new CopiedNullBinder(var1, var2);
  5474.     }
  5475.  
  5476.     Binder copiedByteBinder(short var1, byte[] var2, int var3, int var4, short var5) throws SQLException {
  5477.         byte[] var6 = new byte[var4];
  5478.         System.arraycopy(var2, var3, var6, 0, var4);
  5479.         return new CopiedByteBinder(var1, var4, var6, var5);
  5480.     }
  5481.  
  5482.     Binder copiedCharBinder(short var1, char[] var2, int var3, int var4, short var5, short var6) throws SQLException {
  5483.         char[] var7 = new char[var4];
  5484.         System.arraycopy(var2, var3, var7, 0, var4);
  5485.         return new CopiedCharBinder(var1, var7, var5, var6);
  5486.     }
  5487.  
  5488.     protected void hardClose() throws SQLException {
  5489.         super.hardClose();
  5490.         this.connection.cacheBuffer(this.bindBytes);
  5491.         this.bindBytes = null;
  5492.         this.connection.cacheBuffer(this.bindChars);
  5493.         this.bindChars = null;
  5494.         this.bindIndicators = null;
  5495.         if(!this.connection.isClosed()) {
  5496.             this.cleanAllTempLobs();
  5497.         }
  5498.  
  5499.         this.lastBoundBytes = null;
  5500.         this.lastBoundChars = null;
  5501.         this.clearParameters();
  5502.     }
  5503.  
  5504.     protected void alwaysOnClose() throws SQLException {
  5505.         if(this.currentRank > 0) {
  5506.             if(this.m_batchStyle == 2) {
  5507.                 this.clearBatch();
  5508.             } else {
  5509.                 int var1 = this.validRows;
  5510.                 this.prematureBatchCount = this.sendBatch();
  5511.                 this.validRows = var1;
  5512.             }
  5513.         }
  5514.  
  5515.         super.alwaysOnClose();
  5516.     }
  5517.  
  5518.     public void setDisableStmtCaching(boolean var1) {
  5519.         PhysicalConnection var2 = this.connection;
  5520.         synchronized(this.connection) {
  5521.             if(var1) {
  5522.                 this.cacheState = 3;
  5523.             }
  5524.  
  5525.         }
  5526.     }
  5527.  
  5528.     public void setFormOfUse(int var1, short var2) {
  5529.         PhysicalConnection var3 = this.connection;
  5530.         synchronized(this.connection) {
  5531.             int var4 = var1 - 1;
  5532.             if(this.currentRowFormOfUse[var4] != var2) {
  5533.                 this.currentRowFormOfUse[var4] = var2;
  5534.                 Accessor var5;
  5535.                 if(this.currentRowBindAccessors != null) {
  5536.                     var5 = this.currentRowBindAccessors[var4];
  5537.                     if(var5 != null) {
  5538.                         var5.setFormOfUse(var2);
  5539.                     }
  5540.                 }
  5541.  
  5542.                 if(this.returnParamAccessors != null) {
  5543.                     var5 = this.returnParamAccessors[var4];
  5544.                     if(var5 != null) {
  5545.                         var5.setFormOfUse(var2);
  5546.                     }
  5547.                 }
  5548.             }
  5549.  
  5550.         }
  5551.     }
  5552.  
  5553.     public void setURL(int var1, URL var2) throws SQLException {
  5554.         this.setURLInternal(var1, var2);
  5555.     }
  5556.  
  5557.     void setURLInternal(int var1, URL var2) throws SQLException {
  5558.         this.setStringInternal(var1, var2.toString());
  5559.     }
  5560.  
  5561.     public ParameterMetaData getParameterMetaData() throws SQLException {
  5562.         return new OracleParameterMetaData(this.sqlObject.getParameterCount());
  5563.     }
  5564.  
  5565.     public oracle.jdbc.OracleParameterMetaData OracleGetParameterMetaData() throws SQLException {
  5566.         SQLException var1 = DatabaseError.createUnsupportedFeatureSqlException();
  5567.         var1.fillInStackTrace();
  5568.         throw var1;
  5569.     }
  5570.  
  5571.     public void registerReturnParameter(int var1, int var2) throws SQLException {
  5572.         SQLException var6;
  5573.         if(this.numberOfBindPositions <= 0) {
  5574.             var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90);
  5575.             var6.fillInStackTrace();
  5576.             throw var6;
  5577.         } else {
  5578.             if(this.numReturnParams <= 0) {
  5579.                 this.numReturnParams = this.sqlObject.getReturnParameterCount();
  5580.                 if(this.numReturnParams <= 0) {
  5581.                     var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90);
  5582.                     var6.fillInStackTrace();
  5583.                     throw var6;
  5584.                 }
  5585.             }
  5586.  
  5587.             int var3 = var1 - 1;
  5588.             if(var3 >= this.numberOfBindPositions - this.numReturnParams && var1 <= this.numberOfBindPositions) {
  5589.                 int var7 = this.getInternalTypeForDmlReturning(var2);
  5590.                 short var5 = 0;
  5591.                 if(this.currentRowFormOfUse != null && this.currentRowFormOfUse[var3] != 0) {
  5592.                     var5 = this.currentRowFormOfUse[var3];
  5593.                 }
  5594.  
  5595.                 this.registerReturnParameterInternal(var3, var7, var2, -1, var5, (String)null);
  5596.                 this.currentRowBinders[var3] = this.theReturnParamBinder;
  5597.             } else {
  5598.                 SQLException var4 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5599.                 var4.fillInStackTrace();
  5600.                 throw var4;
  5601.             }
  5602.         }
  5603.     }
  5604.  
  5605.     public void registerReturnParameter(int var1, int var2, int var3) throws SQLException {
  5606.         if(this.numberOfBindPositions <= 0) {
  5607.             SQLException var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90);
  5608.             var7.fillInStackTrace();
  5609.             throw var7;
  5610.         } else {
  5611.             int var4 = var1 - 1;
  5612.             SQLException var5;
  5613.             if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  5614.                 if(var2 != 1 && var2 != 12 && var2 != -1 && var2 != -2 && var2 != -3 && var2 != -4 && var2 != 12) {
  5615.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  5616.                     var5.fillInStackTrace();
  5617.                     throw var5;
  5618.                 } else if(var3 <= 0) {
  5619.                     var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  5620.                     var5.fillInStackTrace();
  5621.                     throw var5;
  5622.                 } else {
  5623.                     int var8 = this.getInternalTypeForDmlReturning(var2);
  5624.                     short var6 = 0;
  5625.                     if(this.currentRowFormOfUse != null && this.currentRowFormOfUse[var4] != 0) {
  5626.                         var6 = this.currentRowFormOfUse[var4];
  5627.                     }
  5628.  
  5629.                     this.registerReturnParameterInternal(var4, var8, var2, var3, var6, (String)null);
  5630.                     this.currentRowBinders[var4] = this.theReturnParamBinder;
  5631.                 }
  5632.             } else {
  5633.                 var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5634.                 var5.fillInStackTrace();
  5635.                 throw var5;
  5636.             }
  5637.         }
  5638.     }
  5639.  
  5640.     public void registerReturnParameter(int var1, int var2, String var3) throws SQLException {
  5641.         if(this.numberOfBindPositions <= 0) {
  5642.             SQLException var7 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 90);
  5643.             var7.fillInStackTrace();
  5644.             throw var7;
  5645.         } else {
  5646.             int var4 = var1 - 1;
  5647.             if(var4 >= 0 && var1 <= this.numberOfBindPositions) {
  5648.                 int var8 = this.getInternalTypeForDmlReturning(var2);
  5649.                 if(var8 != 111 && var8 != 109) {
  5650.                     SQLException var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68);
  5651.                     var6.fillInStackTrace();
  5652.                     throw var6;
  5653.                 } else {
  5654.                     this.registerReturnParameterInternal(var4, var8, var2, -1, (short)0, var3);
  5655.                     this.currentRowBinders[var4] = this.theReturnParamBinder;
  5656.                 }
  5657.             } else {
  5658.                 SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5659.                 var5.fillInStackTrace();
  5660.                 throw var5;
  5661.             }
  5662.         }
  5663.     }
  5664.  
  5665.     public ResultSet getReturnResultSet() throws SQLException {
  5666.         SQLException var1;
  5667.         if(this.closed) {
  5668.             var1 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 9);
  5669.             var1.fillInStackTrace();
  5670.             throw var1;
  5671.         } else if(this.returnParamAccessors != null && this.numReturnParams != 0) {
  5672.             if(this.returnResultSet == null || this.numReturnParams == 0 || !this.isOpen) {
  5673.                 this.returnResultSet = new OracleReturnResultSet(this);
  5674.             }
  5675.  
  5676.             return this.returnResultSet;
  5677.         } else {
  5678.             var1 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 144);
  5679.             var1.fillInStackTrace();
  5680.             throw var1;
  5681.         }
  5682.     }
  5683.  
  5684.     int getInternalTypeForDmlReturning(int var1) throws SQLException {
  5685.         boolean var2 = false;
  5686.         short var4;
  5687.         switch(var1) {
  5688.         case -104:
  5689.             var4 = 183;
  5690.             break;
  5691.         case -103:
  5692.             var4 = 182;
  5693.             break;
  5694.         case -102:
  5695.             var4 = 231;
  5696.             break;
  5697.         case -101:
  5698.             var4 = 181;
  5699.             break;
  5700.         case -16:
  5701.         case -1:
  5702.             var4 = 8;
  5703.             break;
  5704.         case -15:
  5705.         case 1:
  5706.             var4 = 96;
  5707.             break;
  5708.         case -13:
  5709.             var4 = 114;
  5710.             break;
  5711.         case -9:
  5712.         case 12:
  5713.             var4 = 1;
  5714.             break;
  5715.         case -8:
  5716.             var4 = 104;
  5717.             break;
  5718.         case -7:
  5719.         case -6:
  5720.         case -5:
  5721.         case 2:
  5722.         case 3:
  5723.         case 4:
  5724.         case 5:
  5725.         case 6:
  5726.         case 7:
  5727.         case 8:
  5728.             var4 = 6;
  5729.             break;
  5730.         case -4:
  5731.             var4 = 24;
  5732.             break;
  5733.         case -3:
  5734.         case -2:
  5735.             var4 = 23;
  5736.             break;
  5737.         case 70:
  5738.             var4 = 1;
  5739.             break;
  5740.         case 91:
  5741.         case 92:
  5742.             var4 = 12;
  5743.             break;
  5744.         case 93:
  5745.             var4 = 180;
  5746.             break;
  5747.         case 100:
  5748.             var4 = 100;
  5749.             break;
  5750.         case 101:
  5751.             var4 = 101;
  5752.             break;
  5753.         case 2002:
  5754.         case 2003:
  5755.         case 2007:
  5756.         case 2008:
  5757.         case 2009:
  5758.             var4 = 109;
  5759.             break;
  5760.         case 2004:
  5761.             var4 = 113;
  5762.             break;
  5763.         case 2005:
  5764.         case 2011:
  5765.             var4 = 112;
  5766.             break;
  5767.         case 2006:
  5768.             var4 = 111;
  5769.             break;
  5770.         default:
  5771.             SQLException var3 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 4);
  5772.             var3.fillInStackTrace();
  5773.             throw var3;
  5774.         }
  5775.  
  5776.         return var4;
  5777.     }
  5778.  
  5779.     void registerReturnParamsForAutoKey() throws SQLException {
  5780.         int[] var1 = this.autoKeyInfo.returnTypes;
  5781.         short[] var2 = this.autoKeyInfo.tableFormOfUses;
  5782.         int[] var3 = this.autoKeyInfo.columnIndexes;
  5783.         int var4 = var1.length;
  5784.         int var5 = this.numberOfBindPositions - var4;
  5785.  
  5786.         for(int var6 = 0; var6 < var4; ++var6) {
  5787.             int var7 = var5 + var6;
  5788.             this.currentRowBinders[var7] = this.theReturnParamBinder;
  5789.             int var8 = this.connection.defaultnchar?2:1;
  5790.             if(var2 != null && var3 != null && var2[var3[var6] - 1] == 2) {
  5791.                 var8 = 2;
  5792.                 this.setFormOfUse(var7 + 1, (short)var8);
  5793.             }
  5794.  
  5795.             this.checkTypeForAutoKey(var1[var6]);
  5796.             String var9 = null;
  5797.             if(var1[var6] == 111) {
  5798.                 var9 = this.autoKeyInfo.tableTypeNames[var3[var6] - 1];
  5799.             }
  5800.  
  5801.             this.registerReturnParameterInternal(var7, var1[var6], var1[var6], -1, (short)var8, var9);
  5802.         }
  5803.  
  5804.     }
  5805.  
  5806.     void cleanOldTempLobs() {
  5807.         if(this.m_batchStyle != 1 || this.currentRank == this.batch - 1) {
  5808.             super.cleanOldTempLobs();
  5809.         }
  5810.  
  5811.     }
  5812.  
  5813.     void resetOnExceptionDuringExecute() {
  5814.         super.resetOnExceptionDuringExecute();
  5815.         this.currentRank = 0;
  5816.         this.currentBatchNeedToPrepareBinds = true;
  5817.     }
  5818.  
  5819.     void resetCurrentRowBinders() {
  5820.         Binder[] var1 = this.currentRowBinders;
  5821.         if(this.binders != null && this.currentRowBinders != null && var1 != this.binders[0]) {
  5822.             this.currentRowBinders = this.binders[0];
  5823.             this.binders[this.numberOfBoundRows] = var1;
  5824.         }
  5825.  
  5826.     }
  5827.  
  5828.     public void setAsciiStream(int var1, InputStream var2) throws SQLException {
  5829.         this.setAsciiStreamInternal(var1, var2);
  5830.     }
  5831.  
  5832.     public void setAsciiStream(int var1, InputStream var2, long var3) throws SQLException {
  5833.         this.setAsciiStreamInternal(var1, var2, var3);
  5834.     }
  5835.  
  5836.     public void setBinaryStream(int var1, InputStream var2) throws SQLException {
  5837.         this.setBinaryStreamInternal(var1, var2);
  5838.     }
  5839.  
  5840.     public void setBinaryStream(int var1, InputStream var2, long var3) throws SQLException {
  5841.         this.setBinaryStreamInternal(var1, var2, var3);
  5842.     }
  5843.  
  5844.     public void setBlob(int var1, InputStream var2) throws SQLException {
  5845.         this.setBlobInternal(var1, var2);
  5846.     }
  5847.  
  5848.     public void setBlob(int var1, InputStream var2, long var3) throws SQLException {
  5849.         if(var3 < 0L) {
  5850.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68, "length for setBlob() cannot be negative");
  5851.             var5.fillInStackTrace();
  5852.             throw var5;
  5853.         } else {
  5854.             this.setBlobInternal(var1, var2, var3);
  5855.         }
  5856.     }
  5857.  
  5858.     public void setCharacterStream(int var1, Reader var2) throws SQLException {
  5859.         this.setCharacterStreamInternal(var1, var2);
  5860.     }
  5861.  
  5862.     public void setCharacterStream(int var1, Reader var2, long var3) throws SQLException {
  5863.         this.setCharacterStreamInternal(var1, var2, var3);
  5864.     }
  5865.  
  5866.     public void setClob(int var1, Reader var2, long var3) throws SQLException {
  5867.         if(var3 < 0L) {
  5868.             SQLException var5 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 68, "length for setClob() cannot be negative");
  5869.             var5.fillInStackTrace();
  5870.             throw var5;
  5871.         } else {
  5872.             this.setClobInternal(var1, var2, var3);
  5873.         }
  5874.     }
  5875.  
  5876.     public void setClob(int var1, Reader var2) throws SQLException {
  5877.         this.setClobInternal(var1, var2);
  5878.     }
  5879.  
  5880.     public void setRowId(int var1, RowId var2) throws SQLException {
  5881.         this.setRowIdInternal(var1, var2);
  5882.     }
  5883.  
  5884.     public void setNCharacterStream(int var1, Reader var2) throws SQLException {
  5885.         this.setNCharacterStreamInternal(var1, var2);
  5886.     }
  5887.  
  5888.     public void setNCharacterStream(int var1, Reader var2, long var3) throws SQLException {
  5889.         this.setNCharacterStreamInternal(var1, var2, var3);
  5890.     }
  5891.  
  5892.     public void setNClob(int var1, NClob var2) throws SQLException {
  5893.         this.setNClobInternal(var1, var2);
  5894.     }
  5895.  
  5896.     public void setNClob(int var1, Reader var2, long var3) throws SQLException {
  5897.         this.setNClobInternal(var1, var2, var3);
  5898.     }
  5899.  
  5900.     public void setNClob(int var1, Reader var2) throws SQLException {
  5901.         this.setNClobInternal(var1, var2);
  5902.     }
  5903.  
  5904.     public void setSQLXML(int var1, SQLXML var2) throws SQLException {
  5905.         this.setSQLXMLInternal(var1, var2);
  5906.     }
  5907.  
  5908.     public void setNString(int var1, String var2) throws SQLException {
  5909.         this.setNStringInternal(var1, var2);
  5910.     }
  5911.  
  5912.     void setAsciiStreamInternal(int var1, InputStream var2) throws SQLException {
  5913.         this.setAsciiStreamInternal(var1, var2, 0L, false);
  5914.     }
  5915.  
  5916.     void setAsciiStreamInternal(int var1, InputStream var2, long var3) throws SQLException {
  5917.         this.setAsciiStreamInternal(var1, var2, var3, true);
  5918.     }
  5919.  
  5920.     void setBinaryStreamInternal(int var1, InputStream var2) throws SQLException {
  5921.         this.setBinaryStreamInternal(var1, var2, 0L, false);
  5922.     }
  5923.  
  5924.     void setBinaryStreamInternal(int var1, InputStream var2, long var3) throws SQLException {
  5925.         this.setBinaryStreamInternal(var1, var2, var3, true);
  5926.     }
  5927.  
  5928.     void setBlobInternal(int var1, InputStream var2, long var3) throws SQLException {
  5929.         int var5 = var1 - 1;
  5930.         if(var5 >= 0 && var1 <= this.numberOfBindPositions) {
  5931.             if(var2 == null) {
  5932.                 this.setNullInternal(var1, 2004);
  5933.             } else {
  5934.                 this.setBinaryStreamContentsForBlobCritical(var1, var2, var3, var3 != -1L);
  5935.             }
  5936.  
  5937.         } else {
  5938.             SQLException var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5939.             var6.fillInStackTrace();
  5940.             throw var6;
  5941.         }
  5942.     }
  5943.  
  5944.     void setBlobInternal(int var1, InputStream var2) throws SQLException {
  5945.         this.setBlobInternal(var1, var2, -1L);
  5946.     }
  5947.  
  5948.     void setCharacterStreamInternal(int var1, Reader var2) throws SQLException {
  5949.         this.setCharacterStreamInternal(var1, var2, 0L, false);
  5950.     }
  5951.  
  5952.     void setCharacterStreamInternal(int var1, Reader var2, long var3) throws SQLException {
  5953.         this.setCharacterStreamInternal(var1, var2, var3, true);
  5954.     }
  5955.  
  5956.     void setClobInternal(int var1, Reader var2) throws SQLException {
  5957.         this.setClobInternal(var1, var2, -1L);
  5958.     }
  5959.  
  5960.     void setClobInternal(int var1, Reader var2, long var3) throws SQLException {
  5961.         int var5 = var1 - 1;
  5962.         if(var5 >= 0 && var1 <= this.numberOfBindPositions) {
  5963.             if(var2 == null) {
  5964.                 this.setNullInternal(var1, 2005);
  5965.             } else {
  5966.                 this.setReaderContentsForClobCritical(var1, var2, var3, var3 != -1L);
  5967.             }
  5968.  
  5969.         } else {
  5970.             SQLException var6 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 3);
  5971.             var6.fillInStackTrace();
  5972.             throw var6;
  5973.         }
  5974.     }
  5975.  
  5976.     void setNCharacterStreamInternal(int var1, Reader var2) throws SQLException {
  5977.         this.setFormOfUse(var1, (short)2);
  5978.         this.setCharacterStreamInternal(var1, var2, 0L, false);
  5979.     }
  5980.  
  5981.     void setNCharacterStreamInternal(int var1, Reader var2, long var3) throws SQLException {
  5982.         this.setFormOfUse(var1, (short)2);
  5983.         this.setCharacterStreamInternal(var1, var2, var3);
  5984.     }
  5985.  
  5986.     void setNClobInternal(int var1, NClob var2) throws SQLException {
  5987.         this.setFormOfUse(var1, (short)2);
  5988.         this.setClobInternal(var1, (Clob)var2);
  5989.     }
  5990.  
  5991.     void setNClobInternal(int var1, Reader var2) throws SQLException {
  5992.         this.setFormOfUse(var1, (short)2);
  5993.         this.setClobInternal(var1, var2);
  5994.     }
  5995.  
  5996.     void setNClobInternal(int var1, Reader var2, long var3) throws SQLException {
  5997.         this.setFormOfUse(var1, (short)2);
  5998.         this.setClobInternal(var1, var2, var3);
  5999.     }
  6000.  
  6001.     void setNStringInternal(int var1, String var2) throws SQLException {
  6002.         this.setFormOfUse(var1, (short)2);
  6003.         this.setStringInternal(var1, var2);
  6004.     }
  6005.  
  6006.     void setRowIdInternal(int var1, RowId var2) throws SQLException {
  6007.         this.setROWIDInternal(var1, (ROWID)var2);
  6008.     }
  6009.  
  6010.     public void setArrayAtName(String var1, Array var2) throws SQLException {
  6011.         String var3 = var1.intern();
  6012.         String[] var4 = this.sqlObject.getParameterList();
  6013.         boolean var5 = false;
  6014.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6015.  
  6016.         for(int var7 = 0; var7 < var6; ++var7) {
  6017.             if(var4[var7] == var3) {
  6018.                 this.setArray(var7 + 1, var2);
  6019.                 var5 = true;
  6020.             }
  6021.         }
  6022.  
  6023.         if(!var5) {
  6024.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6025.             var8.fillInStackTrace();
  6026.             throw var8;
  6027.         }
  6028.     }
  6029.  
  6030.     public void setBigDecimalAtName(String var1, BigDecimal var2) throws SQLException {
  6031.         String var3 = var1.intern();
  6032.         String[] var4 = this.sqlObject.getParameterList();
  6033.         boolean var5 = false;
  6034.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6035.  
  6036.         for(int var7 = 0; var7 < var6; ++var7) {
  6037.             if(var4[var7] == var3) {
  6038.                 this.setBigDecimal(var7 + 1, var2);
  6039.                 var5 = true;
  6040.             }
  6041.         }
  6042.  
  6043.         if(!var5) {
  6044.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6045.             var8.fillInStackTrace();
  6046.             throw var8;
  6047.         }
  6048.     }
  6049.  
  6050.     public void setBlobAtName(String var1, Blob var2) throws SQLException {
  6051.         String var3 = var1.intern();
  6052.         String[] var4 = this.sqlObject.getParameterList();
  6053.         boolean var5 = false;
  6054.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6055.  
  6056.         for(int var7 = 0; var7 < var6; ++var7) {
  6057.             if(var4[var7] == var3) {
  6058.                 this.setBlob(var7 + 1, var2);
  6059.                 var5 = true;
  6060.             }
  6061.         }
  6062.  
  6063.         if(!var5) {
  6064.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6065.             var8.fillInStackTrace();
  6066.             throw var8;
  6067.         }
  6068.     }
  6069.  
  6070.     public void setBooleanAtName(String var1, boolean var2) throws SQLException {
  6071.         String var3 = var1.intern();
  6072.         String[] var4 = this.sqlObject.getParameterList();
  6073.         boolean var5 = false;
  6074.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6075.  
  6076.         for(int var7 = 0; var7 < var6; ++var7) {
  6077.             if(var4[var7] == var3) {
  6078.                 this.setBoolean(var7 + 1, var2);
  6079.                 var5 = true;
  6080.             }
  6081.         }
  6082.  
  6083.         if(!var5) {
  6084.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6085.             var8.fillInStackTrace();
  6086.             throw var8;
  6087.         }
  6088.     }
  6089.  
  6090.     public void setByteAtName(String var1, byte var2) throws SQLException {
  6091.         String var3 = var1.intern();
  6092.         String[] var4 = this.sqlObject.getParameterList();
  6093.         boolean var5 = false;
  6094.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6095.  
  6096.         for(int var7 = 0; var7 < var6; ++var7) {
  6097.             if(var4[var7] == var3) {
  6098.                 this.setByte(var7 + 1, var2);
  6099.                 var5 = true;
  6100.             }
  6101.         }
  6102.  
  6103.         if(!var5) {
  6104.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6105.             var8.fillInStackTrace();
  6106.             throw var8;
  6107.         }
  6108.     }
  6109.  
  6110.     public void setBytesAtName(String var1, byte[] var2) throws SQLException {
  6111.         String var3 = var1.intern();
  6112.         String[] var4 = this.sqlObject.getParameterList();
  6113.         boolean var5 = false;
  6114.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6115.  
  6116.         for(int var7 = 0; var7 < var6; ++var7) {
  6117.             if(var4[var7] == var3) {
  6118.                 this.setBytes(var7 + 1, var2);
  6119.                 var5 = true;
  6120.             }
  6121.         }
  6122.  
  6123.         if(!var5) {
  6124.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6125.             var8.fillInStackTrace();
  6126.             throw var8;
  6127.         }
  6128.     }
  6129.  
  6130.     public void setClobAtName(String var1, Clob var2) throws SQLException {
  6131.         String var3 = var1.intern();
  6132.         String[] var4 = this.sqlObject.getParameterList();
  6133.         boolean var5 = false;
  6134.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6135.  
  6136.         for(int var7 = 0; var7 < var6; ++var7) {
  6137.             if(var4[var7] == var3) {
  6138.                 this.setClob(var7 + 1, var2);
  6139.                 var5 = true;
  6140.             }
  6141.         }
  6142.  
  6143.         if(!var5) {
  6144.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6145.             var8.fillInStackTrace();
  6146.             throw var8;
  6147.         }
  6148.     }
  6149.  
  6150.     public void setDateAtName(String var1, Date var2) throws SQLException {
  6151.         String var3 = var1.intern();
  6152.         String[] var4 = this.sqlObject.getParameterList();
  6153.         boolean var5 = false;
  6154.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6155.  
  6156.         for(int var7 = 0; var7 < var6; ++var7) {
  6157.             if(var4[var7] == var3) {
  6158.                 this.setDate(var7 + 1, var2);
  6159.                 var5 = true;
  6160.             }
  6161.         }
  6162.  
  6163.         if(!var5) {
  6164.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6165.             var8.fillInStackTrace();
  6166.             throw var8;
  6167.         }
  6168.     }
  6169.  
  6170.     public void setDateAtName(String var1, Date var2, Calendar var3) throws SQLException {
  6171.         String var4 = var1.intern();
  6172.         String[] var5 = this.sqlObject.getParameterList();
  6173.         boolean var6 = false;
  6174.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6175.  
  6176.         for(int var8 = 0; var8 < var7; ++var8) {
  6177.             if(var5[var8] == var4) {
  6178.                 this.setDate(var8 + 1, var2, var3);
  6179.                 var6 = true;
  6180.             }
  6181.         }
  6182.  
  6183.         if(!var6) {
  6184.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6185.             var9.fillInStackTrace();
  6186.             throw var9;
  6187.         }
  6188.     }
  6189.  
  6190.     public void setDoubleAtName(String var1, double var2) throws SQLException {
  6191.         String var4 = var1.intern();
  6192.         String[] var5 = this.sqlObject.getParameterList();
  6193.         boolean var6 = false;
  6194.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6195.  
  6196.         for(int var8 = 0; var8 < var7; ++var8) {
  6197.             if(var5[var8] == var4) {
  6198.                 this.setDouble(var8 + 1, var2);
  6199.                 var6 = true;
  6200.             }
  6201.         }
  6202.  
  6203.         if(!var6) {
  6204.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6205.             var9.fillInStackTrace();
  6206.             throw var9;
  6207.         }
  6208.     }
  6209.  
  6210.     public void setFloatAtName(String var1, float var2) throws SQLException {
  6211.         String var3 = var1.intern();
  6212.         String[] var4 = this.sqlObject.getParameterList();
  6213.         boolean var5 = false;
  6214.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6215.  
  6216.         for(int var7 = 0; var7 < var6; ++var7) {
  6217.             if(var4[var7] == var3) {
  6218.                 this.setFloat(var7 + 1, var2);
  6219.                 var5 = true;
  6220.             }
  6221.         }
  6222.  
  6223.         if(!var5) {
  6224.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6225.             var8.fillInStackTrace();
  6226.             throw var8;
  6227.         }
  6228.     }
  6229.  
  6230.     public void setIntAtName(String var1, int var2) throws SQLException {
  6231.         String var3 = var1.intern();
  6232.         String[] var4 = this.sqlObject.getParameterList();
  6233.         boolean var5 = false;
  6234.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6235.  
  6236.         for(int var7 = 0; var7 < var6; ++var7) {
  6237.             if(var4[var7] == var3) {
  6238.                 this.setInt(var7 + 1, var2);
  6239.                 var5 = true;
  6240.             }
  6241.         }
  6242.  
  6243.         if(!var5) {
  6244.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6245.             var8.fillInStackTrace();
  6246.             throw var8;
  6247.         }
  6248.     }
  6249.  
  6250.     public void setLongAtName(String var1, long var2) throws SQLException {
  6251.         String var4 = var1.intern();
  6252.         String[] var5 = this.sqlObject.getParameterList();
  6253.         boolean var6 = false;
  6254.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6255.  
  6256.         for(int var8 = 0; var8 < var7; ++var8) {
  6257.             if(var5[var8] == var4) {
  6258.                 this.setLong(var8 + 1, var2);
  6259.                 var6 = true;
  6260.             }
  6261.         }
  6262.  
  6263.         if(!var6) {
  6264.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6265.             var9.fillInStackTrace();
  6266.             throw var9;
  6267.         }
  6268.     }
  6269.  
  6270.     public void setNClobAtName(String var1, NClob var2) throws SQLException {
  6271.         String var3 = var1.intern();
  6272.         String[] var4 = this.sqlObject.getParameterList();
  6273.         boolean var5 = false;
  6274.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6275.  
  6276.         for(int var7 = 0; var7 < var6; ++var7) {
  6277.             if(var4[var7] == var3) {
  6278.                 this.setNClob(var7 + 1, var2);
  6279.                 var5 = true;
  6280.             }
  6281.         }
  6282.  
  6283.         if(!var5) {
  6284.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6285.             var8.fillInStackTrace();
  6286.             throw var8;
  6287.         }
  6288.     }
  6289.  
  6290.     public void setNStringAtName(String var1, String var2) throws SQLException {
  6291.         String var3 = var1.intern();
  6292.         String[] var4 = this.sqlObject.getParameterList();
  6293.         boolean var5 = false;
  6294.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6295.  
  6296.         for(int var7 = 0; var7 < var6; ++var7) {
  6297.             if(var4[var7] == var3) {
  6298.                 this.setNString(var7 + 1, var2);
  6299.                 var5 = true;
  6300.             }
  6301.         }
  6302.  
  6303.         if(!var5) {
  6304.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6305.             var8.fillInStackTrace();
  6306.             throw var8;
  6307.         }
  6308.     }
  6309.  
  6310.     public void setObjectAtName(String var1, Object var2) throws SQLException {
  6311.         String var3 = var1.intern();
  6312.         String[] var4 = this.sqlObject.getParameterList();
  6313.         boolean var5 = false;
  6314.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6315.  
  6316.         for(int var7 = 0; var7 < var6; ++var7) {
  6317.             if(var4[var7] == var3) {
  6318.                 this.setObject(var7 + 1, var2);
  6319.                 var5 = true;
  6320.             }
  6321.         }
  6322.  
  6323.         if(!var5) {
  6324.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6325.             var8.fillInStackTrace();
  6326.             throw var8;
  6327.         }
  6328.     }
  6329.  
  6330.     public void setObjectAtName(String var1, Object var2, int var3) throws SQLException {
  6331.         String var4 = var1.intern();
  6332.         String[] var5 = this.sqlObject.getParameterList();
  6333.         boolean var6 = false;
  6334.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6335.  
  6336.         for(int var8 = 0; var8 < var7; ++var8) {
  6337.             if(var5[var8] == var4) {
  6338.                 this.setObject(var8 + 1, var2, var3);
  6339.                 var6 = true;
  6340.             }
  6341.         }
  6342.  
  6343.         if(!var6) {
  6344.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6345.             var9.fillInStackTrace();
  6346.             throw var9;
  6347.         }
  6348.     }
  6349.  
  6350.     public void setRefAtName(String var1, Ref var2) throws SQLException {
  6351.         String var3 = var1.intern();
  6352.         String[] var4 = this.sqlObject.getParameterList();
  6353.         boolean var5 = false;
  6354.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6355.  
  6356.         for(int var7 = 0; var7 < var6; ++var7) {
  6357.             if(var4[var7] == var3) {
  6358.                 this.setRef(var7 + 1, var2);
  6359.                 var5 = true;
  6360.             }
  6361.         }
  6362.  
  6363.         if(!var5) {
  6364.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6365.             var8.fillInStackTrace();
  6366.             throw var8;
  6367.         }
  6368.     }
  6369.  
  6370.     public void setRowIdAtName(String var1, RowId var2) throws SQLException {
  6371.         String var3 = var1.intern();
  6372.         String[] var4 = this.sqlObject.getParameterList();
  6373.         boolean var5 = false;
  6374.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6375.  
  6376.         for(int var7 = 0; var7 < var6; ++var7) {
  6377.             if(var4[var7] == var3) {
  6378.                 this.setRowId(var7 + 1, var2);
  6379.                 var5 = true;
  6380.             }
  6381.         }
  6382.  
  6383.         if(!var5) {
  6384.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6385.             var8.fillInStackTrace();
  6386.             throw var8;
  6387.         }
  6388.     }
  6389.  
  6390.     public void setShortAtName(String var1, short var2) throws SQLException {
  6391.         String var3 = var1.intern();
  6392.         String[] var4 = this.sqlObject.getParameterList();
  6393.         boolean var5 = false;
  6394.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6395.  
  6396.         for(int var7 = 0; var7 < var6; ++var7) {
  6397.             if(var4[var7] == var3) {
  6398.                 this.setShort(var7 + 1, var2);
  6399.                 var5 = true;
  6400.             }
  6401.         }
  6402.  
  6403.         if(!var5) {
  6404.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6405.             var8.fillInStackTrace();
  6406.             throw var8;
  6407.         }
  6408.     }
  6409.  
  6410.     public void setSQLXMLAtName(String var1, SQLXML var2) throws SQLException {
  6411.         String var3 = var1.intern();
  6412.         String[] var4 = this.sqlObject.getParameterList();
  6413.         boolean var5 = false;
  6414.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6415.  
  6416.         for(int var7 = 0; var7 < var6; ++var7) {
  6417.             if(var4[var7] == var3) {
  6418.                 this.setSQLXML(var7 + 1, var2);
  6419.                 var5 = true;
  6420.             }
  6421.         }
  6422.  
  6423.         if(!var5) {
  6424.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6425.             var8.fillInStackTrace();
  6426.             throw var8;
  6427.         }
  6428.     }
  6429.  
  6430.     public void setStringAtName(String var1, String var2) throws SQLException {
  6431.         String var3 = var1.intern();
  6432.         String[] var4 = this.sqlObject.getParameterList();
  6433.         boolean var5 = false;
  6434.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6435.  
  6436.         for(int var7 = 0; var7 < var6; ++var7) {
  6437.             if(var4[var7] == var3) {
  6438.                 this.setString(var7 + 1, var2);
  6439.                 var5 = true;
  6440.             }
  6441.         }
  6442.  
  6443.         if(!var5) {
  6444.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6445.             var8.fillInStackTrace();
  6446.             throw var8;
  6447.         }
  6448.     }
  6449.  
  6450.     public void setTimeAtName(String var1, Time var2) throws SQLException {
  6451.         String var3 = var1.intern();
  6452.         String[] var4 = this.sqlObject.getParameterList();
  6453.         boolean var5 = false;
  6454.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6455.  
  6456.         for(int var7 = 0; var7 < var6; ++var7) {
  6457.             if(var4[var7] == var3) {
  6458.                 this.setTime(var7 + 1, var2);
  6459.                 var5 = true;
  6460.             }
  6461.         }
  6462.  
  6463.         if(!var5) {
  6464.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6465.             var8.fillInStackTrace();
  6466.             throw var8;
  6467.         }
  6468.     }
  6469.  
  6470.     public void setTimeAtName(String var1, Time var2, Calendar var3) throws SQLException {
  6471.         String var4 = var1.intern();
  6472.         String[] var5 = this.sqlObject.getParameterList();
  6473.         boolean var6 = false;
  6474.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6475.  
  6476.         for(int var8 = 0; var8 < var7; ++var8) {
  6477.             if(var5[var8] == var4) {
  6478.                 this.setTime(var8 + 1, var2, var3);
  6479.                 var6 = true;
  6480.             }
  6481.         }
  6482.  
  6483.         if(!var6) {
  6484.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6485.             var9.fillInStackTrace();
  6486.             throw var9;
  6487.         }
  6488.     }
  6489.  
  6490.     public void setTimestampAtName(String var1, Timestamp var2) throws SQLException {
  6491.         String var3 = var1.intern();
  6492.         String[] var4 = this.sqlObject.getParameterList();
  6493.         boolean var5 = false;
  6494.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6495.  
  6496.         for(int var7 = 0; var7 < var6; ++var7) {
  6497.             if(var4[var7] == var3) {
  6498.                 this.setTimestamp(var7 + 1, var2);
  6499.                 var5 = true;
  6500.             }
  6501.         }
  6502.  
  6503.         if(!var5) {
  6504.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6505.             var8.fillInStackTrace();
  6506.             throw var8;
  6507.         }
  6508.     }
  6509.  
  6510.     public void setTimestampAtName(String var1, Timestamp var2, Calendar var3) throws SQLException {
  6511.         String var4 = var1.intern();
  6512.         String[] var5 = this.sqlObject.getParameterList();
  6513.         boolean var6 = false;
  6514.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6515.  
  6516.         for(int var8 = 0; var8 < var7; ++var8) {
  6517.             if(var5[var8] == var4) {
  6518.                 this.setTimestamp(var8 + 1, var2, var3);
  6519.                 var6 = true;
  6520.             }
  6521.         }
  6522.  
  6523.         if(!var6) {
  6524.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6525.             var9.fillInStackTrace();
  6526.             throw var9;
  6527.         }
  6528.     }
  6529.  
  6530.     public void setURLAtName(String var1, URL var2) throws SQLException {
  6531.         String var3 = var1.intern();
  6532.         String[] var4 = this.sqlObject.getParameterList();
  6533.         boolean var5 = false;
  6534.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6535.  
  6536.         for(int var7 = 0; var7 < var6; ++var7) {
  6537.             if(var4[var7] == var3) {
  6538.                 this.setURL(var7 + 1, var2);
  6539.                 var5 = true;
  6540.             }
  6541.         }
  6542.  
  6543.         if(!var5) {
  6544.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6545.             var8.fillInStackTrace();
  6546.             throw var8;
  6547.         }
  6548.     }
  6549.  
  6550.     public void setARRAYAtName(String var1, ARRAY var2) throws SQLException {
  6551.         String var3 = var1.intern();
  6552.         String[] var4 = this.sqlObject.getParameterList();
  6553.         boolean var5 = false;
  6554.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6555.  
  6556.         for(int var7 = 0; var7 < var6; ++var7) {
  6557.             if(var4[var7] == var3) {
  6558.                 this.setARRAY(var7 + 1, var2);
  6559.                 var5 = true;
  6560.             }
  6561.         }
  6562.  
  6563.         if(!var5) {
  6564.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6565.             var8.fillInStackTrace();
  6566.             throw var8;
  6567.         }
  6568.     }
  6569.  
  6570.     public void setBFILEAtName(String var1, BFILE var2) throws SQLException {
  6571.         String var3 = var1.intern();
  6572.         String[] var4 = this.sqlObject.getParameterList();
  6573.         boolean var5 = false;
  6574.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6575.  
  6576.         for(int var7 = 0; var7 < var6; ++var7) {
  6577.             if(var4[var7] == var3) {
  6578.                 this.setBFILE(var7 + 1, var2);
  6579.                 var5 = true;
  6580.             }
  6581.         }
  6582.  
  6583.         if(!var5) {
  6584.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6585.             var8.fillInStackTrace();
  6586.             throw var8;
  6587.         }
  6588.     }
  6589.  
  6590.     public void setBfileAtName(String var1, BFILE var2) throws SQLException {
  6591.         String var3 = var1.intern();
  6592.         String[] var4 = this.sqlObject.getParameterList();
  6593.         boolean var5 = false;
  6594.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6595.  
  6596.         for(int var7 = 0; var7 < var6; ++var7) {
  6597.             if(var4[var7] == var3) {
  6598.                 this.setBfile(var7 + 1, var2);
  6599.                 var5 = true;
  6600.             }
  6601.         }
  6602.  
  6603.         if(!var5) {
  6604.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6605.             var8.fillInStackTrace();
  6606.             throw var8;
  6607.         }
  6608.     }
  6609.  
  6610.     public void setBinaryFloatAtName(String var1, float var2) throws SQLException {
  6611.         String var3 = var1.intern();
  6612.         String[] var4 = this.sqlObject.getParameterList();
  6613.         boolean var5 = false;
  6614.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6615.  
  6616.         for(int var7 = 0; var7 < var6; ++var7) {
  6617.             if(var4[var7] == var3) {
  6618.                 this.setBinaryFloat(var7 + 1, var2);
  6619.                 var5 = true;
  6620.             }
  6621.         }
  6622.  
  6623.         if(!var5) {
  6624.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6625.             var8.fillInStackTrace();
  6626.             throw var8;
  6627.         }
  6628.     }
  6629.  
  6630.     public void setBinaryFloatAtName(String var1, BINARY_FLOAT var2) throws SQLException {
  6631.         String var3 = var1.intern();
  6632.         String[] var4 = this.sqlObject.getParameterList();
  6633.         boolean var5 = false;
  6634.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6635.  
  6636.         for(int var7 = 0; var7 < var6; ++var7) {
  6637.             if(var4[var7] == var3) {
  6638.                 this.setBinaryFloat(var7 + 1, var2);
  6639.                 var5 = true;
  6640.             }
  6641.         }
  6642.  
  6643.         if(!var5) {
  6644.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6645.             var8.fillInStackTrace();
  6646.             throw var8;
  6647.         }
  6648.     }
  6649.  
  6650.     public void setBinaryDoubleAtName(String var1, double var2) throws SQLException {
  6651.         String var4 = var1.intern();
  6652.         String[] var5 = this.sqlObject.getParameterList();
  6653.         boolean var6 = false;
  6654.         int var7 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  6655.  
  6656.         for(int var8 = 0; var8 < var7; ++var8) {
  6657.             if(var5[var8] == var4) {
  6658.                 this.setBinaryDouble(var8 + 1, var2);
  6659.                 var6 = true;
  6660.             }
  6661.         }
  6662.  
  6663.         if(!var6) {
  6664.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6665.             var9.fillInStackTrace();
  6666.             throw var9;
  6667.         }
  6668.     }
  6669.  
  6670.     public void setBinaryDoubleAtName(String var1, BINARY_DOUBLE var2) throws SQLException {
  6671.         String var3 = var1.intern();
  6672.         String[] var4 = this.sqlObject.getParameterList();
  6673.         boolean var5 = false;
  6674.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6675.  
  6676.         for(int var7 = 0; var7 < var6; ++var7) {
  6677.             if(var4[var7] == var3) {
  6678.                 this.setBinaryDouble(var7 + 1, var2);
  6679.                 var5 = true;
  6680.             }
  6681.         }
  6682.  
  6683.         if(!var5) {
  6684.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6685.             var8.fillInStackTrace();
  6686.             throw var8;
  6687.         }
  6688.     }
  6689.  
  6690.     public void setBLOBAtName(String var1, BLOB var2) throws SQLException {
  6691.         String var3 = var1.intern();
  6692.         String[] var4 = this.sqlObject.getParameterList();
  6693.         boolean var5 = false;
  6694.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6695.  
  6696.         for(int var7 = 0; var7 < var6; ++var7) {
  6697.             if(var4[var7] == var3) {
  6698.                 this.setBLOB(var7 + 1, var2);
  6699.                 var5 = true;
  6700.             }
  6701.         }
  6702.  
  6703.         if(!var5) {
  6704.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6705.             var8.fillInStackTrace();
  6706.             throw var8;
  6707.         }
  6708.     }
  6709.  
  6710.     public void setCHARAtName(String var1, CHAR var2) throws SQLException {
  6711.         String var3 = var1.intern();
  6712.         String[] var4 = this.sqlObject.getParameterList();
  6713.         boolean var5 = false;
  6714.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6715.  
  6716.         for(int var7 = 0; var7 < var6; ++var7) {
  6717.             if(var4[var7] == var3) {
  6718.                 this.setCHAR(var7 + 1, var2);
  6719.                 var5 = true;
  6720.             }
  6721.         }
  6722.  
  6723.         if(!var5) {
  6724.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6725.             var8.fillInStackTrace();
  6726.             throw var8;
  6727.         }
  6728.     }
  6729.  
  6730.     public void setCLOBAtName(String var1, CLOB var2) throws SQLException {
  6731.         String var3 = var1.intern();
  6732.         String[] var4 = this.sqlObject.getParameterList();
  6733.         boolean var5 = false;
  6734.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6735.  
  6736.         for(int var7 = 0; var7 < var6; ++var7) {
  6737.             if(var4[var7] == var3) {
  6738.                 this.setCLOB(var7 + 1, var2);
  6739.                 var5 = true;
  6740.             }
  6741.         }
  6742.  
  6743.         if(!var5) {
  6744.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6745.             var8.fillInStackTrace();
  6746.             throw var8;
  6747.         }
  6748.     }
  6749.  
  6750.     public void setCursorAtName(String var1, ResultSet var2) throws SQLException {
  6751.         String var3 = var1.intern();
  6752.         String[] var4 = this.sqlObject.getParameterList();
  6753.         boolean var5 = false;
  6754.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6755.  
  6756.         for(int var7 = 0; var7 < var6; ++var7) {
  6757.             if(var4[var7] == var3) {
  6758.                 this.setCursor(var7 + 1, var2);
  6759.                 var5 = true;
  6760.             }
  6761.         }
  6762.  
  6763.         if(!var5) {
  6764.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6765.             var8.fillInStackTrace();
  6766.             throw var8;
  6767.         }
  6768.     }
  6769.  
  6770.     public void setCustomDatumAtName(String var1, CustomDatum var2) throws SQLException {
  6771.         String var3 = var1.intern();
  6772.         String[] var4 = this.sqlObject.getParameterList();
  6773.         boolean var5 = false;
  6774.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6775.  
  6776.         for(int var7 = 0; var7 < var6; ++var7) {
  6777.             if(var4[var7] == var3) {
  6778.                 this.setCustomDatum(var7 + 1, var2);
  6779.                 var5 = true;
  6780.             }
  6781.         }
  6782.  
  6783.         if(!var5) {
  6784.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6785.             var8.fillInStackTrace();
  6786.             throw var8;
  6787.         }
  6788.     }
  6789.  
  6790.     public void setDATEAtName(String var1, DATE var2) throws SQLException {
  6791.         String var3 = var1.intern();
  6792.         String[] var4 = this.sqlObject.getParameterList();
  6793.         boolean var5 = false;
  6794.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6795.  
  6796.         for(int var7 = 0; var7 < var6; ++var7) {
  6797.             if(var4[var7] == var3) {
  6798.                 this.setDATE(var7 + 1, var2);
  6799.                 var5 = true;
  6800.             }
  6801.         }
  6802.  
  6803.         if(!var5) {
  6804.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6805.             var8.fillInStackTrace();
  6806.             throw var8;
  6807.         }
  6808.     }
  6809.  
  6810.     public void setFixedCHARAtName(String var1, String var2) throws SQLException {
  6811.         String var3 = var1.intern();
  6812.         String[] var4 = this.sqlObject.getParameterList();
  6813.         boolean var5 = false;
  6814.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6815.  
  6816.         for(int var7 = 0; var7 < var6; ++var7) {
  6817.             if(var4[var7] == var3) {
  6818.                 this.setFixedCHAR(var7 + 1, var2);
  6819.                 var5 = true;
  6820.             }
  6821.         }
  6822.  
  6823.         if(!var5) {
  6824.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6825.             var8.fillInStackTrace();
  6826.             throw var8;
  6827.         }
  6828.     }
  6829.  
  6830.     public void setINTERVALDSAtName(String var1, INTERVALDS var2) throws SQLException {
  6831.         String var3 = var1.intern();
  6832.         String[] var4 = this.sqlObject.getParameterList();
  6833.         boolean var5 = false;
  6834.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6835.  
  6836.         for(int var7 = 0; var7 < var6; ++var7) {
  6837.             if(var4[var7] == var3) {
  6838.                 this.setINTERVALDS(var7 + 1, var2);
  6839.                 var5 = true;
  6840.             }
  6841.         }
  6842.  
  6843.         if(!var5) {
  6844.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6845.             var8.fillInStackTrace();
  6846.             throw var8;
  6847.         }
  6848.     }
  6849.  
  6850.     public void setINTERVALYMAtName(String var1, INTERVALYM var2) throws SQLException {
  6851.         String var3 = var1.intern();
  6852.         String[] var4 = this.sqlObject.getParameterList();
  6853.         boolean var5 = false;
  6854.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6855.  
  6856.         for(int var7 = 0; var7 < var6; ++var7) {
  6857.             if(var4[var7] == var3) {
  6858.                 this.setINTERVALYM(var7 + 1, var2);
  6859.                 var5 = true;
  6860.             }
  6861.         }
  6862.  
  6863.         if(!var5) {
  6864.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6865.             var8.fillInStackTrace();
  6866.             throw var8;
  6867.         }
  6868.     }
  6869.  
  6870.     public void setNUMBERAtName(String var1, NUMBER var2) throws SQLException {
  6871.         String var3 = var1.intern();
  6872.         String[] var4 = this.sqlObject.getParameterList();
  6873.         boolean var5 = false;
  6874.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6875.  
  6876.         for(int var7 = 0; var7 < var6; ++var7) {
  6877.             if(var4[var7] == var3) {
  6878.                 this.setNUMBER(var7 + 1, var2);
  6879.                 var5 = true;
  6880.             }
  6881.         }
  6882.  
  6883.         if(!var5) {
  6884.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6885.             var8.fillInStackTrace();
  6886.             throw var8;
  6887.         }
  6888.     }
  6889.  
  6890.     public void setOPAQUEAtName(String var1, OPAQUE var2) throws SQLException {
  6891.         String var3 = var1.intern();
  6892.         String[] var4 = this.sqlObject.getParameterList();
  6893.         boolean var5 = false;
  6894.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6895.  
  6896.         for(int var7 = 0; var7 < var6; ++var7) {
  6897.             if(var4[var7] == var3) {
  6898.                 this.setOPAQUE(var7 + 1, var2);
  6899.                 var5 = true;
  6900.             }
  6901.         }
  6902.  
  6903.         if(!var5) {
  6904.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6905.             var8.fillInStackTrace();
  6906.             throw var8;
  6907.         }
  6908.     }
  6909.  
  6910.     public void setOracleObjectAtName(String var1, Datum var2) throws SQLException {
  6911.         String var3 = var1.intern();
  6912.         String[] var4 = this.sqlObject.getParameterList();
  6913.         boolean var5 = false;
  6914.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6915.  
  6916.         for(int var7 = 0; var7 < var6; ++var7) {
  6917.             if(var4[var7] == var3) {
  6918.                 this.setOracleObject(var7 + 1, var2);
  6919.                 var5 = true;
  6920.             }
  6921.         }
  6922.  
  6923.         if(!var5) {
  6924.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6925.             var8.fillInStackTrace();
  6926.             throw var8;
  6927.         }
  6928.     }
  6929.  
  6930.     public void setORADataAtName(String var1, ORAData var2) throws SQLException {
  6931.         String var3 = var1.intern();
  6932.         String[] var4 = this.sqlObject.getParameterList();
  6933.         boolean var5 = false;
  6934.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6935.  
  6936.         for(int var7 = 0; var7 < var6; ++var7) {
  6937.             if(var4[var7] == var3) {
  6938.                 this.setORAData(var7 + 1, var2);
  6939.                 var5 = true;
  6940.             }
  6941.         }
  6942.  
  6943.         if(!var5) {
  6944.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6945.             var8.fillInStackTrace();
  6946.             throw var8;
  6947.         }
  6948.     }
  6949.  
  6950.     public void setRAWAtName(String var1, RAW var2) throws SQLException {
  6951.         String var3 = var1.intern();
  6952.         String[] var4 = this.sqlObject.getParameterList();
  6953.         boolean var5 = false;
  6954.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6955.  
  6956.         for(int var7 = 0; var7 < var6; ++var7) {
  6957.             if(var4[var7] == var3) {
  6958.                 this.setRAW(var7 + 1, var2);
  6959.                 var5 = true;
  6960.             }
  6961.         }
  6962.  
  6963.         if(!var5) {
  6964.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6965.             var8.fillInStackTrace();
  6966.             throw var8;
  6967.         }
  6968.     }
  6969.  
  6970.     public void setREFAtName(String var1, REF var2) throws SQLException {
  6971.         String var3 = var1.intern();
  6972.         String[] var4 = this.sqlObject.getParameterList();
  6973.         boolean var5 = false;
  6974.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6975.  
  6976.         for(int var7 = 0; var7 < var6; ++var7) {
  6977.             if(var4[var7] == var3) {
  6978.                 this.setREF(var7 + 1, var2);
  6979.                 var5 = true;
  6980.             }
  6981.         }
  6982.  
  6983.         if(!var5) {
  6984.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  6985.             var8.fillInStackTrace();
  6986.             throw var8;
  6987.         }
  6988.     }
  6989.  
  6990.     public void setRefTypeAtName(String var1, REF var2) throws SQLException {
  6991.         String var3 = var1.intern();
  6992.         String[] var4 = this.sqlObject.getParameterList();
  6993.         boolean var5 = false;
  6994.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  6995.  
  6996.         for(int var7 = 0; var7 < var6; ++var7) {
  6997.             if(var4[var7] == var3) {
  6998.                 this.setRefType(var7 + 1, var2);
  6999.                 var5 = true;
  7000.             }
  7001.         }
  7002.  
  7003.         if(!var5) {
  7004.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7005.             var8.fillInStackTrace();
  7006.             throw var8;
  7007.         }
  7008.     }
  7009.  
  7010.     public void setROWIDAtName(String var1, ROWID var2) throws SQLException {
  7011.         String var3 = var1.intern();
  7012.         String[] var4 = this.sqlObject.getParameterList();
  7013.         boolean var5 = false;
  7014.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7015.  
  7016.         for(int var7 = 0; var7 < var6; ++var7) {
  7017.             if(var4[var7] == var3) {
  7018.                 this.setROWID(var7 + 1, var2);
  7019.                 var5 = true;
  7020.             }
  7021.         }
  7022.  
  7023.         if(!var5) {
  7024.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7025.             var8.fillInStackTrace();
  7026.             throw var8;
  7027.         }
  7028.     }
  7029.  
  7030.     public void setSTRUCTAtName(String var1, STRUCT var2) throws SQLException {
  7031.         String var3 = var1.intern();
  7032.         String[] var4 = this.sqlObject.getParameterList();
  7033.         boolean var5 = false;
  7034.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7035.  
  7036.         for(int var7 = 0; var7 < var6; ++var7) {
  7037.             if(var4[var7] == var3) {
  7038.                 this.setSTRUCT(var7 + 1, var2);
  7039.                 var5 = true;
  7040.             }
  7041.         }
  7042.  
  7043.         if(!var5) {
  7044.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7045.             var8.fillInStackTrace();
  7046.             throw var8;
  7047.         }
  7048.     }
  7049.  
  7050.     public void setTIMESTAMPLTZAtName(String var1, TIMESTAMPLTZ var2) throws SQLException {
  7051.         String var3 = var1.intern();
  7052.         String[] var4 = this.sqlObject.getParameterList();
  7053.         boolean var5 = false;
  7054.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7055.  
  7056.         for(int var7 = 0; var7 < var6; ++var7) {
  7057.             if(var4[var7] == var3) {
  7058.                 this.setTIMESTAMPLTZ(var7 + 1, var2);
  7059.                 var5 = true;
  7060.             }
  7061.         }
  7062.  
  7063.         if(!var5) {
  7064.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7065.             var8.fillInStackTrace();
  7066.             throw var8;
  7067.         }
  7068.     }
  7069.  
  7070.     public void setTIMESTAMPTZAtName(String var1, TIMESTAMPTZ var2) throws SQLException {
  7071.         String var3 = var1.intern();
  7072.         String[] var4 = this.sqlObject.getParameterList();
  7073.         boolean var5 = false;
  7074.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7075.  
  7076.         for(int var7 = 0; var7 < var6; ++var7) {
  7077.             if(var4[var7] == var3) {
  7078.                 this.setTIMESTAMPTZ(var7 + 1, var2);
  7079.                 var5 = true;
  7080.             }
  7081.         }
  7082.  
  7083.         if(!var5) {
  7084.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7085.             var8.fillInStackTrace();
  7086.             throw var8;
  7087.         }
  7088.     }
  7089.  
  7090.     public void setTIMESTAMPAtName(String var1, TIMESTAMP var2) throws SQLException {
  7091.         String var3 = var1.intern();
  7092.         String[] var4 = this.sqlObject.getParameterList();
  7093.         boolean var5 = false;
  7094.         int var6 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7095.  
  7096.         for(int var7 = 0; var7 < var6; ++var7) {
  7097.             if(var4[var7] == var3) {
  7098.                 this.setTIMESTAMP(var7 + 1, var2);
  7099.                 var5 = true;
  7100.             }
  7101.         }
  7102.  
  7103.         if(!var5) {
  7104.             SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7105.             var8.fillInStackTrace();
  7106.             throw var8;
  7107.         }
  7108.     }
  7109.  
  7110.     public void setBlobAtName(String var1, InputStream var2) throws SQLException {
  7111.         String var3 = var1.intern();
  7112.         String[] var4 = this.sqlObject.getParameterList();
  7113.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7114.         boolean var6 = true;
  7115.  
  7116.         for(int var7 = 0; var7 < var5; ++var7) {
  7117.             if(var4[var7] == var3) {
  7118.                 if(!var6) {
  7119.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7120.                     var8.fillInStackTrace();
  7121.                     throw var8;
  7122.                 }
  7123.  
  7124.                 this.setBlob(var7 + 1, var2);
  7125.                 var6 = false;
  7126.             }
  7127.         }
  7128.  
  7129.         if(var6) {
  7130.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7131.             var9.fillInStackTrace();
  7132.             throw var9;
  7133.         }
  7134.     }
  7135.  
  7136.     public void setBlobAtName(String var1, InputStream var2, long var3) throws SQLException {
  7137.         String var5 = var1.intern();
  7138.         String[] var6 = this.sqlObject.getParameterList();
  7139.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7140.         boolean var8 = true;
  7141.  
  7142.         for(int var9 = 0; var9 < var7; ++var9) {
  7143.             if(var6[var9] == var5) {
  7144.                 if(!var8) {
  7145.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7146.                     var10.fillInStackTrace();
  7147.                     throw var10;
  7148.                 }
  7149.  
  7150.                 this.setBlob(var9 + 1, var2, var3);
  7151.                 var8 = false;
  7152.             }
  7153.         }
  7154.  
  7155.         if(var8) {
  7156.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7157.             var11.fillInStackTrace();
  7158.             throw var11;
  7159.         }
  7160.     }
  7161.  
  7162.     public void setClobAtName(String var1, Reader var2) throws SQLException {
  7163.         String var3 = var1.intern();
  7164.         String[] var4 = this.sqlObject.getParameterList();
  7165.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7166.         boolean var6 = true;
  7167.  
  7168.         for(int var7 = 0; var7 < var5; ++var7) {
  7169.             if(var4[var7] == var3) {
  7170.                 if(!var6) {
  7171.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7172.                     var8.fillInStackTrace();
  7173.                     throw var8;
  7174.                 }
  7175.  
  7176.                 this.setClob(var7 + 1, var2);
  7177.                 var6 = false;
  7178.             }
  7179.         }
  7180.  
  7181.         if(var6) {
  7182.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7183.             var9.fillInStackTrace();
  7184.             throw var9;
  7185.         }
  7186.     }
  7187.  
  7188.     public void setClobAtName(String var1, Reader var2, long var3) throws SQLException {
  7189.         String var5 = var1.intern();
  7190.         String[] var6 = this.sqlObject.getParameterList();
  7191.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7192.         boolean var8 = true;
  7193.  
  7194.         for(int var9 = 0; var9 < var7; ++var9) {
  7195.             if(var6[var9] == var5) {
  7196.                 if(!var8) {
  7197.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7198.                     var10.fillInStackTrace();
  7199.                     throw var10;
  7200.                 }
  7201.  
  7202.                 this.setClob(var9 + 1, var2, var3);
  7203.                 var8 = false;
  7204.             }
  7205.         }
  7206.  
  7207.         if(var8) {
  7208.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7209.             var11.fillInStackTrace();
  7210.             throw var11;
  7211.         }
  7212.     }
  7213.  
  7214.     public void setNClobAtName(String var1, Reader var2) throws SQLException {
  7215.         String var3 = var1.intern();
  7216.         String[] var4 = this.sqlObject.getParameterList();
  7217.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7218.         boolean var6 = true;
  7219.  
  7220.         for(int var7 = 0; var7 < var5; ++var7) {
  7221.             if(var4[var7] == var3) {
  7222.                 if(!var6) {
  7223.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7224.                     var8.fillInStackTrace();
  7225.                     throw var8;
  7226.                 }
  7227.  
  7228.                 this.setNClob(var7 + 1, var2);
  7229.                 var6 = false;
  7230.             }
  7231.         }
  7232.  
  7233.         if(var6) {
  7234.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7235.             var9.fillInStackTrace();
  7236.             throw var9;
  7237.         }
  7238.     }
  7239.  
  7240.     public void setNClobAtName(String var1, Reader var2, long var3) throws SQLException {
  7241.         String var5 = var1.intern();
  7242.         String[] var6 = this.sqlObject.getParameterList();
  7243.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7244.         boolean var8 = true;
  7245.  
  7246.         for(int var9 = 0; var9 < var7; ++var9) {
  7247.             if(var6[var9] == var5) {
  7248.                 if(!var8) {
  7249.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7250.                     var10.fillInStackTrace();
  7251.                     throw var10;
  7252.                 }
  7253.  
  7254.                 this.setNClob(var9 + 1, var2, var3);
  7255.                 var8 = false;
  7256.             }
  7257.         }
  7258.  
  7259.         if(var8) {
  7260.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7261.             var11.fillInStackTrace();
  7262.             throw var11;
  7263.         }
  7264.     }
  7265.  
  7266.     public void setAsciiStreamAtName(String var1, InputStream var2) throws SQLException {
  7267.         String var3 = var1.intern();
  7268.         String[] var4 = this.sqlObject.getParameterList();
  7269.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7270.         boolean var6 = true;
  7271.  
  7272.         for(int var7 = 0; var7 < var5; ++var7) {
  7273.             if(var4[var7] == var3) {
  7274.                 if(!var6) {
  7275.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7276.                     var8.fillInStackTrace();
  7277.                     throw var8;
  7278.                 }
  7279.  
  7280.                 this.setAsciiStream(var7 + 1, var2);
  7281.                 var6 = false;
  7282.             }
  7283.         }
  7284.  
  7285.         if(var6) {
  7286.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7287.             var9.fillInStackTrace();
  7288.             throw var9;
  7289.         }
  7290.     }
  7291.  
  7292.     public void setAsciiStreamAtName(String var1, InputStream var2, int var3) throws SQLException {
  7293.         String var4 = var1.intern();
  7294.         String[] var5 = this.sqlObject.getParameterList();
  7295.         int var6 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  7296.         boolean var7 = true;
  7297.  
  7298.         for(int var8 = 0; var8 < var6; ++var8) {
  7299.             if(var5[var8] == var4) {
  7300.                 if(!var7) {
  7301.                     SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7302.                     var9.fillInStackTrace();
  7303.                     throw var9;
  7304.                 }
  7305.  
  7306.                 this.setAsciiStream(var8 + 1, var2, var3);
  7307.                 var7 = false;
  7308.             }
  7309.         }
  7310.  
  7311.         if(var7) {
  7312.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7313.             var10.fillInStackTrace();
  7314.             throw var10;
  7315.         }
  7316.     }
  7317.  
  7318.     public void setAsciiStreamAtName(String var1, InputStream var2, long var3) throws SQLException {
  7319.         String var5 = var1.intern();
  7320.         String[] var6 = this.sqlObject.getParameterList();
  7321.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7322.         boolean var8 = true;
  7323.  
  7324.         for(int var9 = 0; var9 < var7; ++var9) {
  7325.             if(var6[var9] == var5) {
  7326.                 if(!var8) {
  7327.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7328.                     var10.fillInStackTrace();
  7329.                     throw var10;
  7330.                 }
  7331.  
  7332.                 this.setAsciiStream(var9 + 1, var2, var3);
  7333.                 var8 = false;
  7334.             }
  7335.         }
  7336.  
  7337.         if(var8) {
  7338.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7339.             var11.fillInStackTrace();
  7340.             throw var11;
  7341.         }
  7342.     }
  7343.  
  7344.     public void setBinaryStreamAtName(String var1, InputStream var2) throws SQLException {
  7345.         String var3 = var1.intern();
  7346.         String[] var4 = this.sqlObject.getParameterList();
  7347.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7348.         boolean var6 = true;
  7349.  
  7350.         for(int var7 = 0; var7 < var5; ++var7) {
  7351.             if(var4[var7] == var3) {
  7352.                 if(!var6) {
  7353.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7354.                     var8.fillInStackTrace();
  7355.                     throw var8;
  7356.                 }
  7357.  
  7358.                 this.setBinaryStream(var7 + 1, var2);
  7359.                 var6 = false;
  7360.             }
  7361.         }
  7362.  
  7363.         if(var6) {
  7364.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7365.             var9.fillInStackTrace();
  7366.             throw var9;
  7367.         }
  7368.     }
  7369.  
  7370.     public void setBinaryStreamAtName(String var1, InputStream var2, int var3) throws SQLException {
  7371.         String var4 = var1.intern();
  7372.         String[] var5 = this.sqlObject.getParameterList();
  7373.         int var6 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  7374.         boolean var7 = true;
  7375.  
  7376.         for(int var8 = 0; var8 < var6; ++var8) {
  7377.             if(var5[var8] == var4) {
  7378.                 if(!var7) {
  7379.                     SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7380.                     var9.fillInStackTrace();
  7381.                     throw var9;
  7382.                 }
  7383.  
  7384.                 this.setBinaryStream(var8 + 1, var2, var3);
  7385.                 var7 = false;
  7386.             }
  7387.         }
  7388.  
  7389.         if(var7) {
  7390.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7391.             var10.fillInStackTrace();
  7392.             throw var10;
  7393.         }
  7394.     }
  7395.  
  7396.     public void setBinaryStreamAtName(String var1, InputStream var2, long var3) throws SQLException {
  7397.         String var5 = var1.intern();
  7398.         String[] var6 = this.sqlObject.getParameterList();
  7399.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7400.         boolean var8 = true;
  7401.  
  7402.         for(int var9 = 0; var9 < var7; ++var9) {
  7403.             if(var6[var9] == var5) {
  7404.                 if(!var8) {
  7405.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7406.                     var10.fillInStackTrace();
  7407.                     throw var10;
  7408.                 }
  7409.  
  7410.                 this.setBinaryStream(var9 + 1, var2, var3);
  7411.                 var8 = false;
  7412.             }
  7413.         }
  7414.  
  7415.         if(var8) {
  7416.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7417.             var11.fillInStackTrace();
  7418.             throw var11;
  7419.         }
  7420.     }
  7421.  
  7422.     public void setCharacterStreamAtName(String var1, Reader var2) throws SQLException {
  7423.         String var3 = var1.intern();
  7424.         String[] var4 = this.sqlObject.getParameterList();
  7425.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7426.         boolean var6 = true;
  7427.  
  7428.         for(int var7 = 0; var7 < var5; ++var7) {
  7429.             if(var4[var7] == var3) {
  7430.                 if(!var6) {
  7431.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7432.                     var8.fillInStackTrace();
  7433.                     throw var8;
  7434.                 }
  7435.  
  7436.                 this.setCharacterStream(var7 + 1, var2);
  7437.                 var6 = false;
  7438.             }
  7439.         }
  7440.  
  7441.         if(var6) {
  7442.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7443.             var9.fillInStackTrace();
  7444.             throw var9;
  7445.         }
  7446.     }
  7447.  
  7448.     public void setCharacterStreamAtName(String var1, Reader var2, int var3) throws SQLException {
  7449.         String var4 = var1.intern();
  7450.         String[] var5 = this.sqlObject.getParameterList();
  7451.         int var6 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  7452.         boolean var7 = true;
  7453.  
  7454.         for(int var8 = 0; var8 < var6; ++var8) {
  7455.             if(var5[var8] == var4) {
  7456.                 if(!var7) {
  7457.                     SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7458.                     var9.fillInStackTrace();
  7459.                     throw var9;
  7460.                 }
  7461.  
  7462.                 this.setCharacterStream(var8 + 1, var2, var3);
  7463.                 var7 = false;
  7464.             }
  7465.         }
  7466.  
  7467.         if(var7) {
  7468.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7469.             var10.fillInStackTrace();
  7470.             throw var10;
  7471.         }
  7472.     }
  7473.  
  7474.     public void setCharacterStreamAtName(String var1, Reader var2, long var3) throws SQLException {
  7475.         String var5 = var1.intern();
  7476.         String[] var6 = this.sqlObject.getParameterList();
  7477.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7478.         boolean var8 = true;
  7479.  
  7480.         for(int var9 = 0; var9 < var7; ++var9) {
  7481.             if(var6[var9] == var5) {
  7482.                 if(!var8) {
  7483.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7484.                     var10.fillInStackTrace();
  7485.                     throw var10;
  7486.                 }
  7487.  
  7488.                 this.setCharacterStream(var9 + 1, var2, var3);
  7489.                 var8 = false;
  7490.             }
  7491.         }
  7492.  
  7493.         if(var8) {
  7494.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7495.             var11.fillInStackTrace();
  7496.             throw var11;
  7497.         }
  7498.     }
  7499.  
  7500.     public void setNCharacterStreamAtName(String var1, Reader var2) throws SQLException {
  7501.         String var3 = var1.intern();
  7502.         String[] var4 = this.sqlObject.getParameterList();
  7503.         int var5 = Math.min(this.sqlObject.getParameterCount(), var4.length);
  7504.         boolean var6 = true;
  7505.  
  7506.         for(int var7 = 0; var7 < var5; ++var7) {
  7507.             if(var4[var7] == var3) {
  7508.                 if(!var6) {
  7509.                     SQLException var8 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7510.                     var8.fillInStackTrace();
  7511.                     throw var8;
  7512.                 }
  7513.  
  7514.                 this.setNCharacterStream(var7 + 1, var2);
  7515.                 var6 = false;
  7516.             }
  7517.         }
  7518.  
  7519.         if(var6) {
  7520.             SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7521.             var9.fillInStackTrace();
  7522.             throw var9;
  7523.         }
  7524.     }
  7525.  
  7526.     public void setNCharacterStreamAtName(String var1, Reader var2, long var3) throws SQLException {
  7527.         String var5 = var1.intern();
  7528.         String[] var6 = this.sqlObject.getParameterList();
  7529.         int var7 = Math.min(this.sqlObject.getParameterCount(), var6.length);
  7530.         boolean var8 = true;
  7531.  
  7532.         for(int var9 = 0; var9 < var7; ++var9) {
  7533.             if(var6[var9] == var5) {
  7534.                 if(!var8) {
  7535.                     SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7536.                     var10.fillInStackTrace();
  7537.                     throw var10;
  7538.                 }
  7539.  
  7540.                 this.setNCharacterStream(var9 + 1, var2, var3);
  7541.                 var8 = false;
  7542.             }
  7543.         }
  7544.  
  7545.         if(var8) {
  7546.             SQLException var11 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7547.             var11.fillInStackTrace();
  7548.             throw var11;
  7549.         }
  7550.     }
  7551.  
  7552.     public void setUnicodeStreamAtName(String var1, InputStream var2, int var3) throws SQLException {
  7553.         String var4 = var1.intern();
  7554.         String[] var5 = this.sqlObject.getParameterList();
  7555.         int var6 = Math.min(this.sqlObject.getParameterCount(), var5.length);
  7556.         boolean var7 = true;
  7557.  
  7558.         for(int var8 = 0; var8 < var6; ++var8) {
  7559.             if(var5[var8] == var4) {
  7560.                 if(!var7) {
  7561.                     SQLException var9 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 135);
  7562.                     var9.fillInStackTrace();
  7563.                     throw var9;
  7564.                 }
  7565.  
  7566.                 this.setUnicodeStream(var8 + 1, var2, var3);
  7567.                 var7 = false;
  7568.             }
  7569.         }
  7570.  
  7571.         if(var7) {
  7572.             SQLException var10 = DatabaseError.createSqlException(this.getConnectionDuringExceptionHandling(), 147, var1);
  7573.             var10.fillInStackTrace();
  7574.             throw var10;
  7575.         }
  7576.     }
  7577.  
  7578.     static {
  7579.         theStaticVarnumCopyingBinder = OraclePreparedStatementReadOnly.theStaticVarnumCopyingBinder;
  7580.         theStaticVarnumNullBinder = OraclePreparedStatementReadOnly.theStaticVarnumNullBinder;
  7581.         theStaticBooleanBinder = OraclePreparedStatementReadOnly.theStaticBooleanBinder;
  7582.         theStaticByteBinder = OraclePreparedStatementReadOnly.theStaticByteBinder;
  7583.         theStaticShortBinder = OraclePreparedStatementReadOnly.theStaticShortBinder;
  7584.         theStaticIntBinder = OraclePreparedStatementReadOnly.theStaticIntBinder;
  7585.         theStaticLongBinder = OraclePreparedStatementReadOnly.theStaticLongBinder;
  7586.         theStaticFloatBinder = OraclePreparedStatementReadOnly.theStaticFloatBinder;
  7587.         theStaticDoubleBinder = OraclePreparedStatementReadOnly.theStaticDoubleBinder;
  7588.         theStaticBigDecimalBinder = OraclePreparedStatementReadOnly.theStaticBigDecimalBinder;
  7589.         theStaticVarcharCopyingBinder = OraclePreparedStatementReadOnly.theStaticVarcharCopyingBinder;
  7590.         theStaticVarcharNullBinder = OraclePreparedStatementReadOnly.theStaticVarcharNullBinder;
  7591.         theStaticStringBinder = OraclePreparedStatementReadOnly.theStaticStringBinder;
  7592.         theStaticSetCHARCopyingBinder = OraclePreparedStatementReadOnly.theStaticSetCHARCopyingBinder;
  7593.         theStaticSetCHARBinder = OraclePreparedStatementReadOnly.theStaticSetCHARBinder;
  7594.         theStaticLittleEndianSetCHARBinder = OraclePreparedStatementReadOnly.theStaticLittleEndianSetCHARBinder;
  7595.         theStaticSetCHARNullBinder = OraclePreparedStatementReadOnly.theStaticSetCHARNullBinder;
  7596.         theStaticFixedCHARCopyingBinder = OraclePreparedStatementReadOnly.theStaticFixedCHARCopyingBinder;
  7597.         theStaticFixedCHARBinder = OraclePreparedStatementReadOnly.theStaticFixedCHARBinder;
  7598.         theStaticFixedCHARNullBinder = OraclePreparedStatementReadOnly.theStaticFixedCHARNullBinder;
  7599.         theStaticDateCopyingBinder = OraclePreparedStatementReadOnly.theStaticDateCopyingBinder;
  7600.         theStaticDateBinder = OraclePreparedStatementReadOnly.theStaticDateBinder;
  7601.         theStaticDateNullBinder = OraclePreparedStatementReadOnly.theStaticDateNullBinder;
  7602.         theStaticTimeCopyingBinder = OraclePreparedStatementReadOnly.theStaticTimeCopyingBinder;
  7603.         theStaticTimeBinder = OraclePreparedStatementReadOnly.theStaticTimeBinder;
  7604.         theStaticTimestampCopyingBinder = OraclePreparedStatementReadOnly.theStaticTimestampCopyingBinder;
  7605.         theStaticTimestampBinder = OraclePreparedStatementReadOnly.theStaticTimestampBinder;
  7606.         theStaticTimestampNullBinder = OraclePreparedStatementReadOnly.theStaticTimestampNullBinder;
  7607.         theStaticOracleNumberBinder = OraclePreparedStatementReadOnly.theStaticOracleNumberBinder;
  7608.         theStaticOracleDateBinder = OraclePreparedStatementReadOnly.theStaticOracleDateBinder;
  7609.         theStaticOracleTimestampBinder = OraclePreparedStatementReadOnly.theStaticOracleTimestampBinder;
  7610.         theStaticTSTZCopyingBinder = OraclePreparedStatementReadOnly.theStaticTSTZCopyingBinder;
  7611.         theStaticTSTZBinder = OraclePreparedStatementReadOnly.theStaticTSTZBinder;
  7612.         theStaticTSTZNullBinder = OraclePreparedStatementReadOnly.theStaticTSTZNullBinder;
  7613.         theStaticTSLTZCopyingBinder = OraclePreparedStatementReadOnly.theStaticTSLTZCopyingBinder;
  7614.         theStaticTSLTZBinder = OraclePreparedStatementReadOnly.theStaticTSLTZBinder;
  7615.         theStaticTSLTZNullBinder = OraclePreparedStatementReadOnly.theStaticTSLTZNullBinder;
  7616.         theStaticRowidCopyingBinder = OraclePreparedStatementReadOnly.theStaticRowidCopyingBinder;
  7617.         theStaticRowidBinder = OraclePreparedStatementReadOnly.theStaticRowidBinder;
  7618.         theStaticLittleEndianRowidBinder = OraclePreparedStatementReadOnly.theStaticLittleEndianRowidBinder;
  7619.         theStaticRowidNullBinder = OraclePreparedStatementReadOnly.theStaticRowidNullBinder;
  7620.         theStaticURowidNullBinder = OraclePreparedStatementReadOnly.theStaticURowidNullBinder;
  7621.         theStaticIntervalDSCopyingBinder = OraclePreparedStatementReadOnly.theStaticIntervalDSCopyingBinder;
  7622.         theStaticIntervalDSBinder = OraclePreparedStatementReadOnly.theStaticIntervalDSBinder;
  7623.         theStaticIntervalDSNullBinder = OraclePreparedStatementReadOnly.theStaticIntervalDSNullBinder;
  7624.         theStaticIntervalYMCopyingBinder = OraclePreparedStatementReadOnly.theStaticIntervalYMCopyingBinder;
  7625.         theStaticIntervalYMBinder = OraclePreparedStatementReadOnly.theStaticIntervalYMBinder;
  7626.         theStaticIntervalYMNullBinder = OraclePreparedStatementReadOnly.theStaticIntervalYMNullBinder;
  7627.         theStaticBfileCopyingBinder = OraclePreparedStatementReadOnly.theStaticBfileCopyingBinder;
  7628.         theStaticBfileBinder = OraclePreparedStatementReadOnly.theStaticBfileBinder;
  7629.         theStaticBfileNullBinder = OraclePreparedStatementReadOnly.theStaticBfileNullBinder;
  7630.         theStaticBlobCopyingBinder = OraclePreparedStatementReadOnly.theStaticBlobCopyingBinder;
  7631.         theStaticBlobBinder = OraclePreparedStatementReadOnly.theStaticBlobBinder;
  7632.         theStaticBlobNullBinder = OraclePreparedStatementReadOnly.theStaticBlobNullBinder;
  7633.         theStaticClobCopyingBinder = OraclePreparedStatementReadOnly.theStaticClobCopyingBinder;
  7634.         theStaticClobBinder = OraclePreparedStatementReadOnly.theStaticClobBinder;
  7635.         theStaticClobNullBinder = OraclePreparedStatementReadOnly.theStaticClobNullBinder;
  7636.         theStaticRawCopyingBinder = OraclePreparedStatementReadOnly.theStaticRawCopyingBinder;
  7637.         theStaticRawBinder = OraclePreparedStatementReadOnly.theStaticRawBinder;
  7638.         theStaticRawNullBinder = OraclePreparedStatementReadOnly.theStaticRawNullBinder;
  7639.         theStaticPlsqlRawCopyingBinder = OraclePreparedStatementReadOnly.theStaticPlsqlRawCopyingBinder;
  7640.         theStaticPlsqlRawBinder = OraclePreparedStatementReadOnly.theStaticPlsqlRawBinder;
  7641.         theStaticBinaryFloatCopyingBinder = OraclePreparedStatementReadOnly.theStaticBinaryFloatCopyingBinder;
  7642.         theStaticBinaryFloatBinder = OraclePreparedStatementReadOnly.theStaticBinaryFloatBinder;
  7643.         theStaticBinaryFloatNullBinder = OraclePreparedStatementReadOnly.theStaticBinaryFloatNullBinder;
  7644.         theStaticBINARY_FLOATCopyingBinder = OraclePreparedStatementReadOnly.theStaticBINARY_FLOATCopyingBinder;
  7645.         theStaticBINARY_FLOATBinder = OraclePreparedStatementReadOnly.theStaticBINARY_FLOATBinder;
  7646.         theStaticBINARY_FLOATNullBinder = OraclePreparedStatementReadOnly.theStaticBINARY_FLOATNullBinder;
  7647.         theStaticBinaryDoubleCopyingBinder = OraclePreparedStatementReadOnly.theStaticBinaryDoubleCopyingBinder;
  7648.         theStaticBinaryDoubleBinder = OraclePreparedStatementReadOnly.theStaticBinaryDoubleBinder;
  7649.         theStaticBinaryDoubleNullBinder = OraclePreparedStatementReadOnly.theStaticBinaryDoubleNullBinder;
  7650.         theStaticBINARY_DOUBLECopyingBinder = OraclePreparedStatementReadOnly.theStaticBINARY_DOUBLECopyingBinder;
  7651.         theStaticBINARY_DOUBLEBinder = OraclePreparedStatementReadOnly.theStaticBINARY_DOUBLEBinder;
  7652.         theStaticBINARY_DOUBLENullBinder = OraclePreparedStatementReadOnly.theStaticBINARY_DOUBLENullBinder;
  7653.         theStaticLongStreamBinder = OraclePreparedStatementReadOnly.theStaticLongStreamBinder;
  7654.         theStaticLongStreamForStringBinder = OraclePreparedStatementReadOnly.theStaticLongStreamForStringBinder;
  7655.         theStaticLongStreamForStringCopyingBinder = OraclePreparedStatementReadOnly.theStaticLongStreamForStringCopyingBinder;
  7656.         theStaticLongRawStreamBinder = OraclePreparedStatementReadOnly.theStaticLongRawStreamBinder;
  7657.         theStaticLongRawStreamForBytesBinder = OraclePreparedStatementReadOnly.theStaticLongRawStreamForBytesBinder;
  7658.         theStaticLongRawStreamForBytesCopyingBinder = OraclePreparedStatementReadOnly.theStaticLongRawStreamForBytesCopyingBinder;
  7659.         theStaticNamedTypeCopyingBinder = OraclePreparedStatementReadOnly.theStaticNamedTypeCopyingBinder;
  7660.         theStaticNamedTypeBinder = OraclePreparedStatementReadOnly.theStaticNamedTypeBinder;
  7661.         theStaticNamedTypeNullBinder = OraclePreparedStatementReadOnly.theStaticNamedTypeNullBinder;
  7662.         theStaticRefTypeCopyingBinder = OraclePreparedStatementReadOnly.theStaticRefTypeCopyingBinder;
  7663.         theStaticRefTypeBinder = OraclePreparedStatementReadOnly.theStaticRefTypeBinder;
  7664.         theStaticRefTypeNullBinder = OraclePreparedStatementReadOnly.theStaticRefTypeNullBinder;
  7665.         theStaticPlsqlIbtCopyingBinder = OraclePreparedStatementReadOnly.theStaticPlsqlIbtCopyingBinder;
  7666.         theStaticPlsqlIbtBinder = OraclePreparedStatementReadOnly.theStaticPlsqlIbtBinder;
  7667.         theStaticPlsqlIbtNullBinder = OraclePreparedStatementReadOnly.theStaticPlsqlIbtNullBinder;
  7668.         theStaticOutBinder = OraclePreparedStatementReadOnly.theStaticOutBinder;
  7669.         theStaticReturnParamBinder = OraclePreparedStatementReadOnly.theStaticReturnParamBinder;
  7670.         theStaticT4CRowidBinder = OraclePreparedStatementReadOnly.theStaticT4CRowidBinder;
  7671.         theStaticT4CURowidBinder = OraclePreparedStatementReadOnly.theStaticT4CURowidBinder;
  7672.         theStaticT4CRowidNullBinder = OraclePreparedStatementReadOnly.theStaticT4CRowidNullBinder;
  7673.         theStaticT4CURowidNullBinder = OraclePreparedStatementReadOnly.theStaticT4CURowidNullBinder;
  7674.         UTC_TIME_ZONE = TimeZone.getTimeZone("UTC");
  7675.         UTC_US_CALENDAR = Calendar.getInstance(UTC_TIME_ZONE, Locale.US);
  7676.         _Copyright_2007_Oracle_All_Rights_Reserved_ = null;
  7677.     }
  7678.  
  7679.     class PushedBatch {
  7680.         int[] currentBatchCharLens;
  7681.         int[] lastBoundCharLens;
  7682.         Accessor[] currentBatchBindAccessors;
  7683.         boolean lastBoundNeeded;
  7684.         boolean need_to_parse;
  7685.         boolean current_batch_need_to_prepare_binds;
  7686.         int first_row_in_batch;
  7687.         int number_of_rows_to_be_bound;
  7688.         OraclePreparedStatement.PushedBatch next;
  7689.  
  7690.         PushedBatch() {
  7691.         }
  7692.     }
  7693. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement