powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Траблы с запросом из под Windows
5 сообщений из 5, страница 1 из 1
Траблы с запросом из под Windows
    #32835305
Я совсем недавно решил изучать данную СУБД.

Для изучения использую Win32 версию PostgreSQL.

Столкнулся с некоторой проблемой при написании запросов к БД. Все переменные и мена таблиц приходится заключать в кавычки. Иначе получаю сообщение, что такой объект не найден, т.е. запрос SELECT Field1, Field1 FROM SomeTable1 не проходит, а запрос SELECT "Field1", "Field1" FROM "SomeTable1" не вызывает никаких ругательств со стороны сервера.

Ничего подобного в документации я не нашел. Там все запросы пишутся без всяких кавычек.

Такая проблема наблюдается как при использовании средств доступа к БД самой СУБД, в частности PgAdmin, так и при обращении из сред программирования через источники данных ODBC.

Я пробовал использовать версии 7.х и 8.х. Везде наблюдается одинаковая картина.

Подскажите, в чем может быть проблема? Заранее благодаен.
...
Рейтинг: 0 / 0
Траблы с запросом из под Windows
    #32835451
Ivan Evtuhovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из-за того, что буквы в разном регистре. Пиши все маленькими - не будет никаких проблем. Сам с такой проблемой сталкивался. Думаю, что гуру знают, как это решить, но я разбираться не стал.

--
С наилучшими пожеланиями,
Иван Евтухович
...
Рейтинг: 0 / 0
Траблы с запросом из под Windows
    #32835753
nostromo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажется дело обстоит так:
При использовании имени таблицы без кавычек происходит приведение к нижнему регистру и поиск таблицы с таким именем.
Если при создании таблицы её имя было заключено в кавычки и содержало буквы в верхнем регистре, то и при использовании без кавычек не обойтись.

Из документации:
Код: plaintext
Quoting an identifier also makes it case-sensitive, whereas unquoted names are always folded to lower case. For example, the identifiers FOO, foo, and "foo" are considered the same by PostgreSQL, but "Foo" and "FOO" are different from these three and each other. (The folding of unquoted names to lower case in PostgreSQL is incompatible with the SQL standard, which says that unquoted names should be folded to upper case. Thus, foo  should be equivalent to "FOO" not "foo" according to the standard. If you want to write portable applications you are advised to always quote a particular name or never quote it.)
...
Рейтинг: 0 / 0
Траблы с запросом из под Windows
    #32836472
Qvadro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это называется Защищенные идентификаторы.

Я как раз про это только что читал в книжке с мамонтом на обложке:
PostgreSQL для профессионалов
Дж.Уорсли, Дж.Дрейк
Издательство ПИТЕР

Глава №3, стр.46
...
Рейтинг: 0 / 0
Траблы с запросом из под Windows
    #32839766
Хе, вот как оно... Значит "ларчик просто открывался"!

Спасибо всем огромное!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Траблы с запросом из под Windows
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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