SQL Portability - Driver Capabilities
How can you tell what functionality the current driver and database support?
$value = $dbh->get_info( … );
Here’s a small sample of the information potentially available:
- AGGREGATE_FUNCTIONS BATCH_SUPPORT CATALOG_NAME_SEPARATOR CONCAT_NULL_BEHAVIOR CONVERT_DATE CONVERT_FUNCTIONS CURSOR_COMMIT_BEHAVIOR CURSOR_SENSITIVITY DATETIME_LITERALS DBMS_NAME DBMS_VER DEFAULT_TXN_ISOLATION EXPRESSIONS_IN_ORDERBY GETDATA_EXTENSIONS GROUP_BY IDENTIFIER_CASE IDENTIFIER_QUOTE_CHAR INTEGRITY KEYWORDS LIKE_ESCAPE_CLAUSE LOCK_TYPES MAX_COLUMNS_IN_INDEX MAX_COLUMNS_IN_SELECT MAX_IDENTIFIER_LEN MAX_STATEMENT_LEN MAX_TABLES_IN_SELECT MULT_RESULT_SETS OJ_CAPABILITIES PROCEDURES SQL_CONFORMANCE TXN_CAPABLE TXN_ISOLATION_OPTION UNION …
A specific item of information is requested using its standard numeric value
$db_version = $dbh->get_info( 18 ); # 18 == SQL_DBMS_VER
The standard names can be mapped to numeric values using:
use DBI::Const::GetInfo;
$dbh->get_info($GetInfoType{SQL_DBMS_VER})