OracleConnection.GetSchema Method (String, String)
Returns schema information for the data source of this OracleConnection using the specified string for the schema name and the specified string array for the restriction values.
Assembly: System.Data.OracleClient (in System.Data.OracleClient.dll)
public override DataTable GetSchema( string collectionName, string restrictionValues )
- Type: System.String
Specifies the name of the schema to return.
- Type: System.String
A set of restriction values for the requested schema.
The restrictionValues parameter can supply n depth of values which are specified by the restrictions collection for a specific collection. In order to set values on a given restriction, and not set the values of other restrictions, you need to set the preceding restrictions to null and then put the appropriate value in for the restriction that you would like to specify a value for.
An example of this is the "Tables" collection. If the "Tables" collection has 3 restrictions: database, owner, and table name; and you want to get back only the tables associated with the owner "Carl", then you would need to pass in the following values (at a minimum): null, "Carl". If a restriction value is not passed in, the default values are used for that restriction. This is the same mapping as passing in null, which is different than passing in an empty string for the parameter value. In that case, the empty string ("") is considered to be the value for the specified parameter.
Queries using GetSchema are case sensitive. Because of Oracle's treatment of cases when a schema is first created, this can lead to unexpected results.
If the schema was created without quotes, Oracle stores the object name in upper case. If the schema was created with quotes, Oracle stores the object name in the casing provided.
For example, suppose that you create a table called MyTable, using one of the following two statements:
CREATE TABLE MyTable ...
CREATE TABLE "MyTable" ...
To retrieve information about this table via the GetSchema method in the first case, you would have to pass "MYTABLE" in as an argument. In the second case, you would have to pass "MyTable" in as an argument.