private static KeyValuePair <OracleObjectIdentifier, OracleColumn> MapTableColumn(IDataRecord reader, Version version) { var dataTypeIdentifier = OracleObjectIdentifier.Create(QualifyStringObject(reader["DATA_TYPE_OWNER"]), QualifyStringObject(reader["DATA_TYPE"])); var dataType = new OracleDataType { FullyQualifiedName = dataTypeIdentifier, Length = Convert.ToInt32(reader["DATA_LENGTH"]), Precision = OracleReaderValueConvert.ToInt32(reader["DATA_PRECISION"]), Scale = OracleReaderValueConvert.ToInt32(reader["DATA_SCALE"]) }; ResolveDataUnit(dataType, reader["CHAR_USED"]); var column = new OracleColumn { Name = QualifyStringObject(reader["COLUMN_NAME"]), DataType = dataType, Nullable = String.Equals((string)reader["NULLABLE"], "Y"), Virtual = String.Equals((string)reader["VIRTUAL_COLUMN"], "YES"), DefaultValue = OracleReaderValueConvert.ToString(reader["DATA_DEFAULT"]), CharacterSize = Convert.ToInt32(reader["CHAR_LENGTH"]), UserGenerated = true }; if (version.Major >= 12) { column.Hidden = String.Equals((string)reader["HIDDEN_COLUMN"], "YES"); column.UserGenerated = String.Equals((string)reader["USER_GENERATED"], "YES"); } return(new KeyValuePair <OracleObjectIdentifier, OracleColumn>( OracleObjectIdentifier.Create(QualifyStringObject(reader["OWNER"]), QualifyStringObject(reader["TABLE_NAME"])), column)); }
private static OracleTypeObject MapTypeAttributes(IDataRecord reader, IDictionary <OracleObjectIdentifier, OracleSchemaObject> allObjects) { var typeFullyQualifiedName = OracleObjectIdentifier.Create(QualifyStringObject(reader["OWNER"]), QualifyStringObject(reader["TYPE_NAME"])); if (!allObjects.TryGetValue(typeFullyQualifiedName, out OracleSchemaObject typeObject)) { return(null); } var type = (OracleTypeObject)typeObject; var attributeTypeIdentifier = OracleObjectIdentifier.Create(QualifyStringObject(reader["ATTR_TYPE_OWNER"]), QualifyStringObject(reader["ATTR_TYPE_NAME"])); var dataType = new OracleDataType { FullyQualifiedName = attributeTypeIdentifier, Length = OracleReaderValueConvert.ToInt32(reader["LENGTH"]), Precision = OracleReaderValueConvert.ToInt32(reader["PRECISION"]), Scale = OracleReaderValueConvert.ToInt32(reader["SCALE"]) }; ResolveDataUnit(dataType, reader["CHAR_USED"]); var attribute = new OracleTypeAttribute { Name = QualifyStringObject(reader["ATTR_NAME"]), DataType = dataType, IsInherited = String.Equals((string)reader["INHERITED"], "YES") }; type.Attributes.Add(attribute); return(type); }
private static OracleTypeCollection MapCollectionTypeAttributes(IDataRecord reader, IDictionary <OracleObjectIdentifier, OracleSchemaObject> allObjects) { var typeFullyQualifiedName = OracleObjectIdentifier.Create(QualifyStringObject(reader["OWNER"]), QualifyStringObject(reader["TYPE_NAME"])); if (!allObjects.TryGetValue(typeFullyQualifiedName, out OracleSchemaObject typeObject)) { return(null); } var collectionType = (OracleTypeCollection)typeObject; var elementTypeIdentifier = OracleObjectIdentifier.Create(QualifyStringObject(reader["ELEM_TYPE_OWNER"]), QualifyStringObject(reader["ELEM_TYPE_NAME"])); var dataType = new OracleDataType { FullyQualifiedName = elementTypeIdentifier, Length = OracleReaderValueConvert.ToInt32(reader["LENGTH"]), Precision = OracleReaderValueConvert.ToInt32(reader["PRECISION"]), Scale = OracleReaderValueConvert.ToInt32(reader["SCALE"]) }; ResolveDataUnit(dataType, reader["CHARACTER_SET_NAME"]); collectionType.ElementDataType = dataType; collectionType.CollectionType = (string)reader["COLL_TYPE"] == OracleTypeCollection.OracleCollectionTypeNestedTable ? OracleCollectionType.Table : OracleCollectionType.VarryingArray; collectionType.UpperBound = OracleReaderValueConvert.ToInt32(reader["UPPER_BOUND"]); return(collectionType); }
private static OracleProgramMetadata MapProgramMetadata(IDataRecord reader, bool isBuiltIn, IDictionary <int, OracleProgramMetadata> metadataDictionary) { var functionId = OracleReaderValueConvert.ToInt32(reader["FUNCTION_ID"]); var identifier = CreateFunctionIdentifierFromReaderValues(reader["OWNER"], reader["PACKAGE_NAME"], reader["PROGRAM_NAME"], reader["OVERLOAD"]); var type = Convert.ToBoolean(reader["IS_FUNCTION"]) ? ProgramType.Function : ProgramType.Procedure; var isAnalytic = String.Equals((string)reader["ANALYTIC"], "YES"); var isAggregate = String.Equals((string)reader["AGGREGATE"], "YES"); var isPipelined = String.Equals((string)reader["PIPELINED"], "YES"); var isOffloadable = String.Equals((string)reader["OFFLOADABLE"], "YES"); var parallelSupport = String.Equals((string)reader["PARALLEL"], "YES"); var isDeterministic = String.Equals((string)reader["DETERMINISTIC"], "YES"); var metadataMinimumArguments = OracleReaderValueConvert.ToInt32(reader["MINARGS"]); var metadataMaximumArguments = OracleReaderValueConvert.ToInt32(reader["MAXARGS"]); var authId = String.Equals((string)reader["AUTHID"], "CURRENT_USER") ? AuthId.CurrentUser : AuthId.Definer; var displayType = (string)reader["DISP_TYPE"]; var metadata = new OracleProgramMetadata(type, identifier, isAnalytic, isAggregate, isPipelined, isOffloadable, parallelSupport, isDeterministic, metadataMinimumArguments, metadataMaximumArguments, authId, displayType, isBuiltIn); if (functionId.HasValue) { metadataDictionary.Add(functionId.Value, metadata); } return(metadata); }