powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как узнать тип столбца?
10 сообщений из 10, страница 1 из 1
как узнать тип столбца?
    #35049193
Rastafarra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
собственно сабж :)
хочется что-то вроде:
Код: plaintext
select field, type(field) from table_name
или
Код: plaintext
select type(field, table_name) 
в возвращенное значение было бы "text" или integer...

format_type(), если это оно, конечно, я что-то не вкурил. гугл тоже ничего полезного не показал...
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35049216
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
написать свою ХП, которая вытаскивает данные из pg_class, pg_attribute, pg_type
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35049306
Rastafarra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Serik Akhmetovнаписать свою ХП, которая вытаскивает данные из pg_class, pg_attribute, pg_type
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT 
	c.relname as table_name, 
	a.attname as field_name, 
	t.typname as type_name 
FROM 
	pg_attribute a
	inner join pg_type t on t.oid=a.atttypid
	inner join pg_index i on a.attrelid = i.indexrelid
	inner join pg_class c on c.oid=i.indrelid
where 
	a.attnum >  0  and c.relname = 'table_name'
что-то вроде? я думал что есть встроенные функции.
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35049322
SeniorAndre
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Включаешь логирование statements у сервера..., запускаешь pgAdmin щелкаешь на табличке и смотришь в логах какие он запускает запросы на сервере... Оч много полезного можно узнать... :D

Вот пример как я получал длину поля... :) но я название знал... А почему так уже не помню...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        --Вычисляем длину поля первичного ключа для таблицы, записываем в iIDLength
        SELECT pa.atttypmod INTO iIDLength
		FROM
			pg_class pc, pg_attribute pa
		WHERE
			pc.relname=cTableName AND
			pa.attname=cTableName||'id' AND
			pc.relkind='r' AND
			pa.attrelid=pc.oid AND
			pa.attstorage='x';
	IF iIDLength=- 1  THEN
           SELECT pt.typtypmod INTO iIDLength
		FROM
			pg_class pc, pg_attribute pa, pg_type pt
		WHERE
			pc.relname=cTableName AND
			pa.attname=cTableName||'id' AND
			pc.relkind='r' AND
			pa.attrelid=pc.oid AND
			pa.attstorage='x' AND
			pt.oid=pa.atttypid AND
			pt.typstorage='x';	
	END IF;
	iIDLength:=iIDLength- 4 ;
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35050480
Rastafarra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще вопрос. как тоже самое сделать, но уже для view?
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35050550
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
psql умеет показывать запросы, если не ошибаюсь,
ключик --echo-queries
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35050744
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rastafarraеще вопрос. как тоже самое сделать, но уже для view?имхо просто вместо pc.relkind='r' написать pc.relkind='v'
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35051639
Rastafarra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ёшимхо просто вместо pc.relkind='r' написать pc.relkind='v'
нет, я спрашивал как для view узнать тип столбца :)
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35052323
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотрите определение для
VIEW information_schema.columns
там все есть.

а если пользовать ее саму, то
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT 
data_type
FROM 
	information_schema.columns
where 

table_name = 'vw_name'
AND 
column_name = 'vw_clmn_name'
...
Рейтинг: 0 / 0
как узнать тип столбца?
    #35052386
Rastafarra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4321а если пользовать ее саму
о! так намного проще и работает для всего.
thanx :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как узнать тип столбца?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]