Sybase::ObjectInfo - Return Sybase Object information
%info = grab Sybase::ObjectInfo($dbh, $database, \@table_list) where: $dbh is a Sybase::DBlib handle $database is the name of the database @table_list is an array containing the tables returns a hash for the form: $r = $info{$db_name}->{$table_name}->{$field_name} $r->{col_id} # column order ->{col_type} # column fundamental datatype ->{col_len} # column datatype length ->{col_allownulls} # does the column allow nulls ->{col_usertype} # column usertype - if applicable ->{col_prec} # column precision ->{col_order} # an array of the columns names in order and per table: $info{$db_name}->{$table_name}->{__COLNAMES__} #an array of the column names in order
perl version 5.004 Sybase::DBlib
Grabs column information from Sybase system tables for a given list of tables. Information includes column number, type, length, allow null attribute, usertype, and precision.
It performs the following SQL: select col_name = c.name, type_name = t.name, col_len = c.length, col_order = c.colid, ctype = c.type, utype = t.usertype, allownulls = t.allownulls from $db_name..syscolumns c, $db_name..systypes t where c.id = object_id('$db_name..$tab_name') and c.usertype *= t.usertype order by c.colid
followed by this for each field where utype > 100 to get the underlying datatype for usertypes
select name from $db_name..systypes where usertype < 100 and type=$col->{ctype} and name not in ("sysname", "nchar", "nvarchar")
When supplying the parameters to grab, $database can be null. If so, then tables must be of the form "database.owner.table" (owner can be null)
If only one table is specified then table_list can be a scalar containing the name of the table.
I should convert this to use DBI/DBD at some point. And if I'm not mistaken these kind of attributes are already built into that system (thereby rendering this module close to obsolete if DBI is installed)
stephen.sprague@msdw.com
Version 0.21 24-FEB-2001 Added return key '{__COLNAMES__}'
Version 0.20 10-FEB-2001 Documentation/pod changes only
version 0.1, 01-OCT-2000 Created
To install Sybase::Xfer, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sybase::Xfer
CPAN shell
perl -MCPAN -e shell install Sybase::Xfer
For more information on module installation, please visit the detailed CPAN module installation guide.