Class OracleCodeGenerator
Generates Oracle-specific SQL code for database schema objects and related functionality.
public class OracleCodeGenerator : CodeGenerator, IVisitor, IDisposable
- Inheritance
-
OracleCodeGenerator
- Implements
- Inherited Members
Constructors
OracleCodeGenerator()
Initializes a new instance of the OracleCodeGenerator class.
public OracleCodeGenerator()
OracleCodeGenerator(TextWriter)
Initializes a new instance of the OracleCodeGenerator class with the specified TextWriter for output.
public OracleCodeGenerator(TextWriter output)
Parameters
outputTextWriterThe TextWriter to which the generated SQL will be written. Must not be null.
OracleCodeGenerator(string)
Initializes a new instance of the OracleCodeGenerator class that writes output to a file at the specified path.
public OracleCodeGenerator(string path)
Parameters
pathstringThe file path where the generated SQL will be written. Must not be null or empty.
Properties
ProviderName
Gets the name of the database provider for which this code generator is designed to generate SQL scripts.
public override string ProviderName { get; }
Property Value
SupportsDbCreation
Gets a value indicating whether this code generator supports generating a CREATE DATABASE statement as part of the export process.
protected override bool SupportsDbCreation { get; }
Property Value
Methods
Format(object, ColumnType)
Formats a value for inclusion in a SQL statement, taking into account the value's type and the corresponding column type.
protected override string Format(object value, ColumnType columnType)
Parameters
valueobjectThe value to be formatted for inclusion in a SQL statement. This could be a default value for a column, a value being inserted into a table, or any other value that needs to be represented as a literal in the generated SQL. The method will determine how to format this value based on its type and the specified column type, ensuring that it is correctly represented in the SQL syntax for the target database provider.
columnTypeColumnTypeThe column type that corresponds to the value being formatted. This information is used to determine how to format the value, such as whether to quote it, how to format dates and times, how to represent binary data, etc., according to the conventions of the target database provider.
Returns
- string
A string representing the formatted value, ready to be included as a literal in a SQL statement, formatted according to the conventions of the target database provider.
GetKeyName(Key)
Gets the name to be used for a key (such as an index or foreign key constraint) in the generated SQL.
protected override string GetKeyName(Key key)
Parameters
keyKeyThe key for which to get the name. This method is called when generating SQL for indexes and foreign key constraints, and it determines how to name these keys in the generated SQL. The default implementation returns the escaped name of the key, but derived classes can override this method to provide different naming conventions or to include additional information in the key name as needed by the target database provider.
Returns
- string
A string representing the name to be used for the key in the generated SQL, formatted according to the conventions of the target database provider.
GetTypeName(IDataItem)
Gets the SQL type name for the given data item, which could be a column or a user-defined data type.
protected override string GetTypeName(IDataItem item)
Parameters
itemIDataItemThe data item for which to determine the SQL type name. This could be a column or a user-defined data type. The method will use the properties of the data item, such as ColumnType, Size, Precision, and Scale, to determine the appropriate SQL type name, potentially using provider-specific type mappings and formatting rules.
Returns
- string
A string representing the SQL type name for the data item, formatted according to the conventions of the target database provider.
WriteDeleteRule(ForeignKeyRule)
Writes the syntax for the ON DELETE clause of a foreign key constraint, based on the specified delete rule.
protected override void WriteDeleteRule(ForeignKeyRule deleteRule)
Parameters
deleteRuleForeignKeyRuleThe foreign key rule that specifies the action to be taken when a referenced row is deleted. This method will generate the appropriate SQL syntax for the ON DELETE clause of a foreign key constraint, based on the value of the deleteRule parameter, which can indicate actions such as CASCADE, SET NULL, SET DEFAULT, etc., according to the conventions of the target database provider.
WriteIdentitySpecification(Column)
Writes the identity specification for the specified column.
protected override void WriteIdentitySpecification(Column column)
Parameters
columnColumnThe column for which the identity specification is being written.
WriteUpdateRule(ForeignKeyRule)
Writes the syntax for the ON UPDATE clause of a foreign key constraint, based on the specified update rule.
protected override void WriteUpdateRule(ForeignKeyRule updateRule)
Parameters
updateRuleForeignKeyRuleThe foreign key rule that specifies the action to be taken when a referenced row is updated. This method will generate the appropriate SQL syntax for the ON UPDATE clause of a foreign key constraint, based on the value of the updateRule parameter, which can indicate actions such as CASCADE, SET NULL, SET DEFAULT, etc., according to the conventions of the target database provider.
Remarks
Oracle does not support ON UPDATE