Возможно ли получить формат столбца через запрос OCI PDO в php? - PullRequest
0 голосов
/ 22 марта 2011

в php5, у меня есть вопрос оракула .. скажем,

select month,max(mydate) as maxdate,sum(cash) as total_cash from mytable group by month

Я хотел бы, через PDO OCI, отформатировать таблицу в соответствии с типом каждого столбца

месяц = ​​VARCHAR MaxDate = дата total_cash = номер

есть ли способ получить типы столбцов из Oracle? так как мой запрос может быть изменен, я не могу заглянуть в системную таблицу оракула, чтобы получить тип: столбцы могут быть вычислениями или объединениями столбцов

Спасибо

Ответы [ 3 ]

0 голосов
/ 22 марта 2011

Если у вас ограниченные привилегии в базе данных Oracle, вы все равно можете найти типы данных, запросив

select owner, table_name, column_name, data_type, data_length, data_precision, data_scale, nullable
 from all_tab_columns where table_name = 'MYTABLE';

В этом представлении есть еще интересующие столбцы, например last_analyzed и другие значения, используемые в качестве входных данных для оптимизатора.

0 голосов
/ 22 марта 2011

Официальным способом сделать это в PDO является вызов PDOStatement::getColumnMeta() после выполнения запроса. Вызывайте его один раз для каждого столбца в наборе результатов, где нулевой столбец является первым.

Однако требуется поддержка драйверов, и я не могу поручиться за драйвер Oracle.

0 голосов
/ 22 марта 2011

В Oracle есть системные представления, которые позволят вам запросить эту информацию.

SELECT column_name, data_type FROM dba_tab_columns WHERE table_name = 'mytable';
...