perl5-dbi / DBD-Oracle

Oracle database driver for the DBI module
http://search.cpan.org/dist/DBD-Oracle
18 stars 25 forks source link

SQL_MAXIMUM_COLUMN_NAME_LENGTH incorrect for Oracle 12.2 #67

Open djzort opened 6 years ago

djzort commented 6 years ago

In Oracle 12.2, the SQL_MAXIMUM_COLUMN_NAME_LENGTH is now 128

Only present in lib/DBD/Oracle/GetInfo.pm

The trick is to determine how this impacts things depending on the SDK client version and the connected server version.

For reference, the DBD::Pg driver is making DB queries to determine it's values per https://github.com/bucardo/dbdpg/blob/master/Pg.pm

djzort commented 5 years ago

SELECT * FROM v$version;

Seems to be how to get the server version.

It seems that the maxium can be determine via a query: describe all_tab_columns

https://stackoverflow.com/questions/756558/what-is-the-maximum-length-of-a-table-name-in-oracle

Annoyingly, it works in sqlplus but i get this error trying to run it via perl

ORA-00900: invalid SQL statement (DBD ERROR: error possibly near <> indicator at char 1 in ' <>describe all_tab_columns ') [for Statement " describe all_tab_columns "]

djzort commented 5 years ago

This seems to work select * from all_tab_columns where table_name = 'ALL_TAB_COLUMNS'