powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Чувствительность к регистру Informix
10 сообщений из 10, страница 1 из 1
Чувствительность к регистру Informix
    #33350886
Bill'и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть непонятка:
IDS 7.31 UD6
Создаю ХП:

Код: plaintext
1.
Create PROCEDURE "informix".Bill()
END PROCEDURE;
Bill - capitalized

вижу в sysprocedures:
Код: plaintext
1.
procname
bill
"bill" - в lowercase

вижу в sysprocbody:
Код: plaintext
1.
Create PROCEDURE "informix".Bill()
....
Bill - Capitlized

dbexport:

Код: plaintext
1.
Create PROCEDURE "informix".bill()
...
"bill" - в lowercase

1) Может кто знает, в чём скрытый смысл при выгрузке переводить имя ХП в lowercase....
2) надеюсь в старших версиях информикс я по прежнему не смогу одновременно создать в одной БД 2 разных ХП:
Код: plaintext
1.
2.
Create PROCEDURE "informix".Bill()
-- la-la-la
END PROCEDURE;
и
Код: plaintext
1.
2.
3.
Create PROCEDURE "informix".bill()
-- bla-bla-bla

END PROCEDURE;
?
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33352185
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чувствительность Informix к регистру управляется переменной окружения DELIMIDENT.
Если ее включить, то Informix не будет приводить к нижнему регистру имена всех объектов. Т.е. можно создать не только две процедуры bill1 и Bill1, но и две таблицы bill1 и Bill1.
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33352842
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТанЧувствительность Informix к регистру управляется переменной окружения DELIMIDENT.
Если ее включить, то Informix не будет приводить к нижнему регистру имена всех объектов. Т.е. можно создать не только две процедуры bill1 и Bill1, но и две таблицы bill1 и Bill1.
IMHO, немного не так. Эта переменная позволяет использование специфических идентификаторов в двойных кавычках, где наравне с чувсвительностью к регистру возможно использование в именах пробелов и др. специфических символов.
В доке говорится так:
"The DELIMIDENT environment variable specifies that strings enclosed
between double quotation ( " ) marks are delimited database identifiers.
No value is required; DELIMIDENT takes effect if it exists, and it remains in
effect while it is on the list of environment variables.
Delimited identifiers can includewhite space (such as "Vitamin E") or can be
identical to SQL keywords, (such as "TABLE" or "USAGE"). You can also use
them to declare database identifiers that contain characters outside the
default character set for SQL identifiers (such as "Column #6"). In the default
locale, this set consists of letters, digits, and the underscore ( _ ) symbol.
You cannot, however, use DELIMIDENT to declare storage identifiers that
contain characters outside the default SQL character set."
Warning: If DELIMIDENT is not already set, you should be aware that setting it can
cause the failure of existing .sql scripts or client applications that use double ( " )
quotation marks in contexts other than delimiting SQL identifiers, such as delimiters
of string literals. You must use single ( ’ ) rather than double quotation marks for
delimited constructs that are not SQL identifiers if DELIMIDENT is set
.
И еще из моих записей:
-- necessary if your tool or API double-quotes identifiers and single-quotes strings.
-- Causes the database server to interpret double quoted (") text as identifiers
rather than strings
set DELIMIDENT=1
-- FAQ Informix. Set the environment variable DELIMIDENT=on. This will allow the following SQL statement to process.
CREATE TABLE "sTaT e"
( "C oDe" CHAR(2),
"St_n aMe" CHAR(15),
"UPPER_CASE" CHAR(1),
lower_case CHAR(1),
PRIMARY KEY ("C oDe")
) EXTENT SIZE 16 NEXT SIZE 16 LOCK MODE ROW;
GRANT CONNECT TO "public";
The results of the abovestatement will create table "sTaT e" containing columns
"C oDe", "St_ n aMe", "UPPER_CASE", "lower_case".
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33352980
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vasilis ТанЕсли ее включить, то Informix не будет приводить к нижнему регистру имена всех объектов.
IMHO, немного не так. Эта переменная позволяет использование специфических идентификаторов в двойных кавычках, где наравне с чувсвительностью к регистру возможно использование в именах пробелов и др. специфических символов.

ну да, я упростила...
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33354724
Bill'и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хммм... Век живи, как известно...
И всё таки:
Bill''и
1) Может кто знает, в чём скрытый смысл того, что при выгрузке dbexport переводит имена всех ХП в lowercase.... (IDS 7.31 UD6)

?
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33355111
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По утилитам dbexport/dbimport у меня вообще накопилось много вопросов :))
Но в данном случае, считаю, что dbexport правильно делает, ведь утилита предназначена в первую очередь не для архивирования/бакапирования информации, как часто считают и используют, а для миграции данных, в том числе и на другую платформу, где эти нюансы могут играть значительную роль. К тому же, во всех стандартах на кодирование, что я видел-помню не рекомендуется давать одинаковые имена (отличающиеся только регистром) различным объектам.
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33356871
Bill'и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vasilisПо утилитам dbexport/dbimport у меня вообще накопилось много вопросов :))

Искреннее спасибо за сочувствие :)
vasilis
Но в данном случае, считаю, что dbexport правильно делает, ведь утилита предназначена в первую очередь не для архивирования/бакапирования информации, как часто считают и используют, а для миграции данных, в том числе и на другую платформу, где эти нюансы могут играть значительную роль.

Хм. У меня прозаичнее. Мне нужно делать копии БД (ответвления) для разработки, "удалённой" поддержки, экспериментов, ... А тут вместо какого нибудь привычного и понятного "GetAllDependedView" получается getalldependedview...

vasilis
К тому же, во всех стандартах на кодирование, что я видел-помню не рекомендуется давать одинаковые имена (отличающиеся только регистром) различным объектам.
Да и мы не пытаемся :)
Спасибо за ответы...
Обойдём, как обычно, и эту проблему...
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33356969
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы не пробовали делать dbexport с включенной DELIMIDENT?
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33358803
Bill'и
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ТанА вы не пробовали делать dbexport с включенной DELIMIDENT?
Мне совершенно не помогает...
...
Рейтинг: 0 / 0
Чувствительность к регистру Informix
    #33359109
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При экспорте для имя процедуры взятое в sysprocbody они подменяют на sysprocedures.owner+sysprocedures.procname, а в sysprocedures в нижнем регистре, это очень правильно и очень логично. Так что Билли не повезло вам.

Это наводит на мысль как и почему возникла ошибка "deposit".depo"deposit".depo()
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Чувствительность к регистру Informix
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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