powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Переход с АСЕ 12.5 на 15...
18 сообщений из 18, страница 1 из 1
Переход с АСЕ 12.5 на 15...
    #35841579
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пришлось портировать базу с АСЕ 12.5 на 15.0
Сделал путем простого переноса бэкапа :) Все прошло успешно...
Но тут возникли проблемы с выполнением некоторых запросов. Например:


Update Table1
Set Field1 = T.i
from T
left join Table1 T2 on T2.ID = T.ID
where T2.ID is null

приводит к такому результату:
"Update/Delete from a table which is the inner table of an outerjoin is not allowed. Command aborted"

Как-то совсем грустно. В 12-шке ведь все обрабатывалось... Как это исправить?
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35841835
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83,

Ожидаемое поведение. Такой запрос не должен выполняться
То что такой запрос выполнялся в 12,5 - следствие того что баг CR430615 - не был исправлен

Исправлен в 12,5,4 и 15,02
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35842336
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris,
прикольно... не знал что это был баг :)... Значит вариант остается один - разрулить все через темповую таблицу...
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35842416
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в 25-шке
Select
1 as F1, 2 as F2
into #TEMP

тоже было багом?
15-ая не позволяет так делать и говорит, что
Statement used to define the cursor 'isql' is neither a Select nor an Execute...
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35842534
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83,

Непонятен ваш вопрос / сарказм

Select 1 as F1, 2 as F2 into #TEMP - выполняется без проблем на ASE1502
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35842725
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 пишет:

> Update Table1
> Set Field1 = T.i
> from T
> left join Table1 T2 on T2.ID = T.ID
> where T2.ID is null

а какой смысл в этом запросе ?
JOIN либо ограничивает набор обрабатываемых записей,
либо подтягивает

Вам надо

Update Table1
Set Field1 = T.i
from T
where not exists ( select * from Table1 T2 where T2.ID = T.ID )
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35843323
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
moris, честно я и не думал о сарказме ...
Я конечно же ожидал, что будут проблемы портации с 12-ой на 15-ую, но честно, представлял их несколько иными и никак уж не в этом плане...

MasterZiv, смысл простой: есть две таблицы в принципе идентичны по структуре Т1 - боевая, Т2 - темповая.
Так вот надо в боевой проапдейтить все записи идентификаторы которых есть в Т2 для этого пишем, и проинсертить все новые записи из Т2. В первом посте немного накосячил с запросом, а вообще должно быть что-то типа этого:

Апдейт уже имеющихся записей
Update Table1
Set Field1 = T.Field1
from T
join Table1 T2 on T2.ID = T.ID

Insert отсутствующих предполагалось сделать так:
Insert into Table 1
...........
from T
left join Table1 T2 on T2.ID = T.ID
where T2.ID is null


На счет not exist спасибо! Обязательно попробую. Но что-то мне вспоминается, что ASE не разрешал подзапросы в Update...
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35843355
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83,

Это только "цветочки"... Впереди у вас долгая борьба с оптимизатором ASE 15!
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35844036
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 пишет:

> структуре Т1 - боевая, Т2 - темповая.
> Так вот надо в боевой проапдейтить все записи идентификаторы которых
> есть в Т2

Это всё понятно, какой смысл писать ИМЕННО ТАК ?

> На счет not exist спасибо! Обязательно попробую. Но что-то мне
> вспоминается, что ASE не разрешал подзапросы в Update...

Эт у вас какая-то ложная память образовалась. С рождения разрешал.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35844227
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Это всё понятно, какой смысл писать ИМЕННО ТАК ?


Честно сложно сказать почему именно так - встала задача сделать - подумал и нашел такое решение... Вроде не самое плохое :)

Кстати, сегодня еще раз пробовал на 15-шке

Select
Field1
into #tmp
from Table1

не хочет работать запрос :( опять пишет
Statement used to define the cursor 'isql' is neither a Select nor an Execute...
хотя на 12-шке все без проблем... Может опять что не так делаю???
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35844253
cherrex_Den
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mikle83,

Код: plaintext
1.
2.
3.
Select
Field1 
into #tmp
from Table1

такое точно должно работать, может "select into/bulkcopy/pllsort" разрешить надо!
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35845190
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cherrex_Den,
даже манипуляция с этим параметром ничего не дает. Запрос простейший
Select
CurCourse.CountryID, CurCourse.DocDate, CurCourse.PrimaryCur, CurCourse.SecondaryCur, CurCourse.PrimaryValue, CurCourse.SecondaryValue, CurCourse.EndCourseDate
into #Cur
from CurCourse
а падает с той же ошибкой :( не пойму в чем проблема. Видимо какая-то заморочка с настройками сервера.


Вариант сделать через not exists оказался очень долгим по времени в сравнении с временной таблицей...
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35845538
moris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83,

>Select Field1 into #tmp from Table1

Похоже это проблема в клиенте. Вы наверняка используете Interactive SQL (Java клиент из 15 версии).
Попробуйте обычный isql из %sybase%/OCS-15_0/bin. В нем должно сработать
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35921629
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму тему еще раз...
morisMikle83,
>Select Field1 into #tmp from Table1

Похоже это проблема в клиенте. Вы наверняка используете Interactive SQL (Java клиент из 15 версии).
Попробуйте обычный isql из %sybase%/OCS-15_0/bin. В нем должно сработать

Да пользую действительно Interactive SQL из 15-ой версии, но как это влияет на выполнение запроса? Есть ли нормальный редактор запросов, который позволит работать с 15-ой АСЕ без проблем?
обычный isql мягко сказать не очень удобно пользовать при разработке запросов...

Кстати, не получилось "приростить" к 15-ой версии старый дорбрый SQL Advantage... Ругается, что типа Open Client сконфигурирован некорректно... Кто-нибудь в курсе как его "корректно" конфигурить?
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35921669
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самое интересное, что попробовал запользовать Interactive SQL двух версий
9.0.2 build 3511 и 9.0.2 build 3480

На 3511 Select 1 as F1 into #tmp валится
на 3480 работает без проблем...
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35921708
SAV4SAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83
...
Кстати, не получилось "приростить" к 15-ой версии старый дорбрый SQL Advantage... Ругается, что типа Open Client сконфигурирован некорректно... Кто-нибудь в курсе как его "корректно" конфигурить?
Код: plaintext
\sybase\OCS-15_0\scripts\copylibs.bat 
не смотрели. Может в этом дело?
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35921722
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 пишет:

> который позволит работать с 15-ой АСЕ без проблем?
> обычный isql мягко сказать не очень удобно пользовать при разработке
> запросов...

Так там комманда ed есть.

> Кстати, не получилось "приростить" к 15-ой версии старый дорбрый SQL
> Advantage...

Там библиотеки переименовали, была напр. библиотека
libct, стала libsybct. Если сделать хард/софт линки
на новые библиотеки со старыми именами, то всё с вероятностью
90% заработает. Кстати, в дистрибутиве есть штатный скрипт,
который это делает.

Ругается, что типа Open Client сконфигурирован
> некорректно... Кто-нибудь в курсе как его "корректно" конфигурить?

Да. Я например в курсе.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Переход с АСЕ 12.5 на 15...
    #35921737
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikle83 пишет:

> обычный isql мягко сказать не очень удобно пользовать при разработке
> запросов...

Если вы под виндой, то можно порекомендовать

http://www.sql.ru/faq/faq_topic.aspx?fid=641

Если в unix/command line, то лучше sqsh ничего нет
(кстати на винде его тоже можно скомпилять или поставить).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Переход с АСЕ 12.5 на 15...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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