public override void Prepare(ISourceAdapter <PoolEntry <object[]> > source) { base.Prepare(source); if (BatchSize == MaxPossibleBatchSize) { BatchSize = OracleUtils.DefaultMaxOracleParams / ColumnNameToMetadataIndexMap.Count; } if (ColumnNameToMetadataIndexMap.Count * BatchSize > OracleUtils.DefaultMaxOracleParams) { throw new TargetAdapterException( $"Number of columns in target adapter buffer size ({ColumnNameToMetadataIndexMap.Count * BatchSize}) exceeds ORACLE limit of {OracleUtils.DefaultMaxOracleParams} parameters in a query"); } if (!UseArrayBinding) { return; } _oracleArrayBindingHelper = new OracleArrayBindingHelper(BatchSize, ColumnNameToMetadataIndexMap, SourceValueToParamValue) { UseNativeTypeConvertor = UseNativeTypeConvertor }; }
public override void UnPrepare() { base.UnPrepare(); _oracleArrayBindingHelper = null; }