Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Чувствительность к регистру Informix / 10 сообщений из 10, страница 1 из 1
28.10.2005, 19:59
    #33350886
Bill'и
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чувствительность к регистру Informix
Есть непонятка:
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
31.10.2005, 09:21
    #33352185
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чувствительность к регистру Informix
Чувствительность Informix к регистру управляется переменной окружения DELIMIDENT.
Если ее включить, то Informix не будет приводить к нижнему регистру имена всех объектов. Т.е. можно создать не только две процедуры bill1 и Bill1, но и две таблицы bill1 и Bill1.
...
Рейтинг: 0 / 0
31.10.2005, 13:16
    #33352842
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чувствительность к регистру Informix
ТанЧувствительность 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
31.10.2005, 13:57
    #33352980
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чувствительность к регистру Informix
vasilis ТанЕсли ее включить, то Informix не будет приводить к нижнему регистру имена всех объектов.
IMHO, немного не так. Эта переменная позволяет использование специфических идентификаторов в двойных кавычках, где наравне с чувсвительностью к регистру возможно использование в именах пробелов и др. специфических символов.

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

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

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

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

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

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


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