|
|
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Пришлось портировать базу с АСЕ 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-шке ведь все обрабатывалось... Как это исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 11:56 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83, Ожидаемое поведение. Такой запрос не должен выполняться То что такой запрос выполнялся в 12,5 - следствие того что баг CR430615 - не был исправлен Исправлен в 12,5,4 и 15,02 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 12:50 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
moris, прикольно... не знал что это был баг :)... Значит вариант остается один - разрулить все через темповую таблицу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 14:52 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
А в 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... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 15:11 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83, Непонятен ваш вопрос / сарказм Select 1 as F1, 2 as F2 into #TEMP - выполняется без проблем на ASE1502 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 15:33 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 16:18 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
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... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 19:26 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83, Это только "цветочки"... Впереди у вас долгая борьба с оптимизатором ASE 15! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 19:46 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83 пишет: > структуре Т1 - боевая, Т2 - темповая. > Так вот надо в боевой проапдейтить все записи идентификаторы которых > есть в Т2 Это всё понятно, какой смысл писать ИМЕННО ТАК ? > На счет not exist спасибо! Обязательно попробую. Но что-то мне > вспоминается, что ASE не разрешал подзапросы в Update... Эт у вас какая-то ложная память образовалась. С рождения разрешал. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2009, 17:44 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
MasterZiv Это всё понятно, какой смысл писать ИМЕННО ТАК ? Честно сложно сказать почему именно так - встала задача сделать - подумал и нашел такое решение... Вроде не самое плохое :) Кстати, сегодня еще раз пробовал на 15-шке Select Field1 into #tmp from Table1 не хочет работать запрос :( опять пишет Statement used to define the cursor 'isql' is neither a Select nor an Execute... хотя на 12-шке все без проблем... Может опять что не так делаю??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2009, 21:58 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83, Код: plaintext 1. 2. 3. такое точно должно работать, может "select into/bulkcopy/pllsort" разрешить надо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2009, 22:33 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
cherrex_Den, даже манипуляция с этим параметром ничего не дает. Запрос простейший Select CurCourse.CountryID, CurCourse.DocDate, CurCourse.PrimaryCur, CurCourse.SecondaryCur, CurCourse.PrimaryValue, CurCourse.SecondaryValue, CurCourse.EndCourseDate into #Cur from CurCourse а падает с той же ошибкой :( не пойму в чем проблема. Видимо какая-то заморочка с настройками сервера. Вариант сделать через not exists оказался очень долгим по времени в сравнении с временной таблицей... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 09:03 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83, >Select Field1 into #tmp from Table1 Похоже это проблема в клиенте. Вы наверняка используете Interactive SQL (Java клиент из 15 версии). Попробуйте обычный isql из %sybase%/OCS-15_0/bin. В нем должно сработать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2009, 11:41 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Подниму тему еще раз... 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 сконфигурирован некорректно... Кто-нибудь в курсе как его "корректно" конфигурить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 08:53 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Самое интересное, что попробовал запользовать Interactive SQL двух версий 9.0.2 build 3511 и 9.0.2 build 3480 На 3511 Select 1 as F1 into #tmp валится на 3480 работает без проблем... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 09:19 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83 ... Кстати, не получилось "приростить" к 15-ой версии старый дорбрый SQL Advantage... Ругается, что типа Open Client сконфигурирован некорректно... Кто-нибудь в курсе как его "корректно" конфигурить? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 09:36 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83 пишет: > который позволит работать с 15-ой АСЕ без проблем? > обычный isql мягко сказать не очень удобно пользовать при разработке > запросов... Так там комманда ed есть. > Кстати, не получилось "приростить" к 15-ой версии старый дорбрый SQL > Advantage... Там библиотеки переименовали, была напр. библиотека libct, стала libsybct. Если сделать хард/софт линки на новые библиотеки со старыми именами, то всё с вероятностью 90% заработает. Кстати, в дистрибутиве есть штатный скрипт, который это делает. Ругается, что типа Open Client сконфигурирован > некорректно... Кто-нибудь в курсе как его "корректно" конфигурить? Да. Я например в курсе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 09:43 |
|
||
|
Переход с АСЕ 12.5 на 15...
|
|||
|---|---|---|---|
|
#18+
Mikle83 пишет: > обычный isql мягко сказать не очень удобно пользовать при разработке > запросов... Если вы под виндой, то можно порекомендовать http://www.sql.ru/faq/faq_topic.aspx?fid=641 Если в unix/command line, то лучше sqsh ничего нет (кстати на винде его тоже можно скомпилять или поставить). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 09:47 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=39&tid=2011090]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 359ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...