|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Adaptive Server Enterprise/15.5/EBF 20634 SMP ESD#5.2/P/ia64/HP-UX B.11.23/asear155/2602/64-bit/FBO/Sun Dec 9 15:24:28 2012 Вопрос конечно идиотский но.... При попытке создать временную таблицу Код: sql 1.
Пишет ошибку: Код: plaintext
Пробовал перед вставкой во временную таблицу её дропнуть: Код: sql 1.
Дропается....Но ошибка та же. Такое ощущение, что ASE вначале создает временную таблицу, а потом опять(при вставке) пытается её создать. Кто сталкивался, помогите решить проблему... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 13:12 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Delik, ответ конечно соответствует вопросу, но попробуйте выполнить Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 13:24 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
NashvilleDelik, ответ конечно соответствует вопросу, но попробуйте выполнить Код: sql 1. 2. 3. 4.
Спасибо, но вы наверное не совсем внимательно читали вопрос. В нем я писал: ТСДропается....Но ошибка та же. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 13:55 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Сталкивался с такой проблемой, московский саппорт сослался на то, что поменялось поведение ASE в 15.5 If the user is creating a #tmptble, then dropping it and recreating it again ALL IN ONE BATCH, it won't work. The reason is that when the query is parsed and normalized, each object reference is replaced by an object id. The two creates would generate two different ids, ASE doesn't know which to associate with the name later in the batch (batches could contain conditional logic that caused the drop/2nd create to not execute) To keep things simple for the parser, it isn't allowed 1> create table #tempabc (a int) 2> select * from #tempabc 3> drop table #tempabc 4> create table #tempabc ( b int) 5> go Msg 12822, Level 16, State 1: Server 'MyServer', Line 4: Cannot create temporary table '#tempabc'. Prefix name '#tempabc' is already in use by another temporary table '#tempabc'. If the create temptable commands are run in two batches, then they are running fine: ======================= 1> create table #tempabc (a int) 2> select * from #tempabc 3> drop table #tempabc 4> go a ----------- 1> create table #tempabc (b int) 2> select * from #tempabc 3> go b ----------- ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 14:29 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Delik, Ну тогда смотрите в эту сторону. Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 14:34 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Компостеров, Так Delik уже отверг этот вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 14:35 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
NashvilleКомпостеров, Так Delik уже отверг этот вариант. Да. Всё верно. Такой вариант тоже не подходит. Нужно СРАЗУ инсертить в темповую таблицу, без создания структуры заранее. По шагово: 1) Код: sql 1.
Лог: Код: plaintext
Код: sql 1.
Лог: Код: plaintext
Просто какой-то бред. Но ни чем объяснить не могу.... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 15:52 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Delik, я Вам уже выше ответил. Напишите, что выдает sp_tempdb show и поищите свою таблицу в sysobjects в tempdb (select * from tempdb..sysobjects where type = "U" and name LIKE "#t1%") ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 16:07 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
NashvilleDelik, я Вам уже выше ответил. Напишите, что выдает sp_tempdb show и поищите свою таблицу в sysobjects в tempdb (select * from tempdb..sysobjects where type = "U" and name LIKE "#t1%") Прошу прощения, проглядел... В связи со спецификой работы выполнить данные запросы не могу(нет прав), но вот такой запрос Код: sql 1.
выдает id Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 16:32 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Delik, Ну о причинах проблемы уже Компостеров рассказал. А лечиться элементарно: используй две временные таблицы: Код: sql 1. 2.
Минусов ноль, зато и понятность скрипта повыситься, особенно если вместо #t1 ты будешь использовать что-нибудь осмысленное. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2013, 19:33 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
White OwlНу о причинах проблемы уже Компостеров рассказал. Не подходит. Читайте, пожалуйста, внимательно всю ветку. Запрос работает не в пакете!!!! Просто один запрос. Всё. Так как временная таблица хранится на протяжении сессии, пробовал: 1) Отконнектился 2) Приконнектился 3) Выполнил ОДИН запрос Код: sql 1.
4) Получил ошибку Код: plaintext
Парни, вопрос в том как обойти ошибку. Ошибка возникает при любом названии временной таблицы. Создавай хоть сто таблиц ошибка на КАЖДОЙ одна и та же White OwlМинусов ноль, зато и понятность скрипта повыситься, особенно если вместо #t1 ты будешь использовать что-нибудь осмысленное. Это был не боевой запрос, а запрос для тестов. Этику написания скриптов я знаю и использую в своей работе. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 11:14 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
DelikНе подходит. Читайте, пожалуйста, внимательно всю ветку. Запрос работает не в пакете!!!! Просто один запрос. Всё.Где ты это писал? Ткни пальцем? Все легальные проблемы с времянками происходят только внутри сессии. ВСЕ ответы соответственно подразумевали что ты создаешь внутри одной сессии две таблицы и создание второй не срабатывает. Если у тебя первый же запрос на создание таблицы не проходит, то дело уже совсем в другом. DelikПарни, вопрос в том как обойти ошибку. Ошибка возникает при любом названии временной таблицы. Создавай хоть сто таблиц ошибка на КАЖДОЙ одна и та жеУ тебя сервер с ума сошел. В самом примитивном варианте лечения - перегрузи сервер. Чуть сложнее - перестрой tempdb. Если не хватает прав - иди ругаться к sa. Покажи им (ему/ей) что первая же команда на создание времянки после начала сессии падает с ошибкой и sa должен будет разбираться. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2013, 21:45 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
White OwlВ самом примитивном варианте лечения - перегрузи сервер. Чуть сложнее - перестрой tempdb. Tempdb сама пересоздается каждый раз из model при каждом старте сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 01:59 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
авторНе подходит. Читайте, пожалуйста, внимательно всю ветку. Запрос работает не в пакете!!!! Просто один запрос. Всё. Одному мне показалось странным упоминание о ODBC ? Запрос выполняется из собственного кода, из сторонней программы? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 09:24 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
SAV4SAVавторНе подходит. Читайте, пожалуйста, внимательно всю ветку. Запрос работает не в пакете!!!! Просто один запрос. Всё. Одному мне показалось странным упоминание о ODBC ? Запрос выполняется из собственного кода, из сторонней программы? Ну как сказать из сторонней... Можно сказать, что да. Через Sybase Central 6.0.0 временная создается норм, так как не юзается ODBC. Через ODBC такой запрос не катит(C#,DbVisualizer,aseisql). Прошу прощения, если задал вопрос не совсем корректно... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 12:00 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
Delik, aseisql не использует odbc. И в нем проблем нет - Код: sql 1. 2. 3. 4. 5.
DbVisualizer - может использовать odbc через "мост" jdbc-odbc, и таки да, в нем описанный эффект присутствует. Если его настроить на использование jTDS - тоже нормально работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 14:42 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
SAV4SAVDelik, aseisql не использует odbc. И в нем проблем нет - Код: sql 1. 2. 3. 4. 5.
DbVisualizer - может использовать odbc через "мост" jdbc-odbc, и таки да, в нем описанный эффект присутствует. Если его настроить на использование jTDS - тоже нормально работает. Так проблема основная, как раз на веб проекте, который написан на C# и коннектится как раз через ODBC. P.S. aseisql таки да, не использует ODBC... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 15:10 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
SAV4SAVDelik, aseisql не использует odbc. И в нем проблем нет - Код: sql 1. 2. 3. 4. 5.
DbVisualizer - может использовать odbc через "мост" jdbc-odbc, и таки да, в нем описанный эффект присутствует. Если его настроить на использование jTDS - тоже нормально работает. Это может быть связано с использованием пулов коннекций. В JDBC они есть, и тогда каждое последующее обращение к БД может проходить через другое соединение, и там эта проблема с временной таблицей может быть незамечена (временные таблицы специфичны для каждого соединения, если соединение другое -- там может не быть этой таблицы и всё будет ОК. Заметить можно выбирая ещё и @@spid в запросе). Поэтому рекомендую тестировать через isql и open client -- там никаких пулов нет вообще, так что сразу заметите. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 16:35 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
MasterZiv, Насколько я понял, у ТС проблема в "существующем веб проекте, который написан на C# и коннектится через ODBC". И он делает Код: sql 1. 2. 3.
и Код: sql 1. 2. 3.
в разных батчах. И при этом в --2 получает ошибку. Я попробовал в SqlDbx (единственное, что сразу попалось почти GNU), с версиями odbc Version 4.20.0067 (12.5.1/P-EBF11786 ESD #02/04.20.0067) - работает правильно, и Sybase ASE ODBC Driver/15.7.0/ESD#4/P/x86/Windows - этот работает как у ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 17:40 |
|
ASE 15.5 не могу создать временную таблицу
|
|||
---|---|---|---|
#18+
SAV4SAV с версиями odbc Version 4.20.0067 (12.5.1/P-EBF11786 ESD #02/04.20.0067) - работает правильно, и Sybase ASE ODBC Driver/15.7.0/ESD#4/P/x86/Windows - этот работает как у ТС. Совершенно верно. С прежними версиями всё ок. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.12.2013, 18:44 |
|
|
start [/forum/topic.php?fid=55&msg=38495449&tid=2009896]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 481ms |
0 / 0 |