package DBD::Oracle::GetInfo;
use DBD::Oracle();
my $fmt = '%02d.%02d.%1d%1d%1d%1d'; # ODBC version string: ##.##.#####
my $sql_driver_ver = sprintf $fmt, split (/\./, "$DBD::Oracle::VERSION.0.0.0.0.0.0");
sub sql_dbms_version {
my $dbh = shift;
local $^W; # for ora_server_version having too few parts
return sprintf $fmt, @{DBD::Oracle::db::ora_server_version($dbh)};
}
sub sql_data_source_name {
my $dbh = shift;
return 'dbi:Oracle:' . $dbh->{Name};
}
sub sql_user_name {
my $dbh = shift;
# XXX OPS$
return $dbh->{CURRENT_USER};
}
%info = (
117 => 0 # SQL_ALTER_DOMAIN
, 114 => 2 # SQL_CATALOG_LOCATION
, 10003 => 'N' # SQL_CATALOG_NAME
, 41 => '@' # SQL_CATALOG_NAME_SEPARATOR
, 42 => 'Database Link' # SQL_CATALOG_TERM
, 87 => 'Y' # SQL_COLUMN_ALIAS
, 22 => 1 # SQL_CONCAT_NULL_BEHAVIOR
, 127 => 0 # SQL_CREATE_ASSERTION
, 130 => 0 # SQL_CREATE_DOMAIN
, 2 => \&sql_data_source_name # SQL_DATA_SOURCE_NAME
, 17 => 'Oracle' # SQL_DBMS_NAME
, 18 => \&sql_dbms_version # SQL_DBMS_VERSION
, 6 => 'DBD/Oracle.pm' # SQL_DRIVER_NAME
, 7 => $sql_driver_ver # SQL_DRIVER_VER
, 136 => 0 # SQL_DROP_ASSERTION
, 139 => 0 # SQL_DROP_DOMAIN
, 28 => 1 # SQL_IDENTIFIER_CASE
, 29 => '"' # SQL_IDENTIFIER_QUOTE_CHAR
, 34 => 0 # SQL_MAX_CATALOG_NAME_LEN
, 30 => 30 # SQL_MAX_COLUMN_NAME_LEN
, 10005 => 30 # SQL_MAX_IDENTIFIER_LEN
, 32 => 30 # SQL_MAX_OWNER_NAME_LEN
, 34 => 0 # SQL_MAX_QUALIFIER_NAME_LEN
, 32 => 30 # SQL_MAX_SCHEMA_NAME_LEN
, 35 => 30 # SQL_MAX_TABLE_NAME_LEN
, 107 => 30 # SQL_MAX_USER_NAME_LEN
, 90 => 'N' # SQL_ORDER_BY_COLUMNS_IN_SELECT
, 39 => 'Owner' # SQL_OWNER_TERM
, 40 => 'Procedure' # SQL_PROCEDURE_TERM
, 114 => 2 # SQL_QUALIFIER_LOCATION
, 41 => '@' # SQL_QUALIFIER_NAME_SEPARATOR
, 42 => 'Database Link' # SQL_QUALIFIER_TERM
, 93 => 3 # SQL_QUOTED_IDENTIFIER_CASE
, 39 => 'Owner' # SQL_SCHEMA_TERM
, 14 => '\\' # SQL_SEARCH_PATTERN_ESCAPE
, 13 => sub {"$_[0]->{Name}"} # SQL_SERVER_NAME
, 94 => '$#' # SQL_SPECIAL_CHARACTERS
, 45 => 'Table' # SQL_TABLE_TERM
, 46 => 3 # SQL_TXN_CAPABLE
, 47 => \&sql_user_name # SQL_USER_NAME
);
1;