Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
Добрый день! db2 luw 9.7. Подскажите пожалуйста с такой проблемой. В БД была схема с именем appschema. В какой-то момент ее дропнули и создали с таким же именем новую. Теперь, пользователь-владелец схемы не может выполнять запросы без явного указания имя схемы: select * from sometable получаю ошибку, что таблица в ЭТОЙ схеме не найдена SQL0204N Имя "appschema.sometable" не было определено. SQLSTATE=42704 Причем имя схемы в ошибке верное. Я понимаю, если бы таблица искалась в другой схеме, но она ищется в верной схеме и не находится! Запрос select current schema from sysibm.sysdummy1 выводит "appschema" - все должно быть нормально. Как только указываю имя схемы явно, все нормально: select * from "appschema.sometable". В чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 11:42 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
еще: в CLP делаю set current schema appschema - не помогает. если через JDBC, то делаю - jdbc.url=jdbc:db2://db2srv:50000/somedb:currentSchema=appschema; - не помогает. запрос select * from sometable всегда возвращает SQL0204N Имя "appschema.sometable" не было определено. SQLSTATE=42704 запрос select * from appschema.sometable всегда работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 12:24 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
kalupator, Добрый день. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 15:36 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, не помогло, я уже совсем не понимаю, из-за чего это может быть. вот тут http://www.dbvis.com/forum/message.jspa?messageID=5433 у человека такая же проблема, решения не нашли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 15:40 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
kalupator, Дайте вывод запроса: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 17:20 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Код: plsql 1. 2. 3. я думаю проблема гораздо глубже, вряд ли все так очевидно... м.б. повлиял способ, которым я очищал схему от объектов перед удалением: begin declare sql_stmt varchar(4000) default ''; declare sqlcode integer default 0; declare cr_sqlcode integer default 0; declare exec_sqlcode integer default 0; declare cr_seq cursor with hold for select 'drop view '||trim(viewschema)||'.'||trim(viewname) from syscat.views where viewschema = 'APPSCHEMA ' union all select 'drop index '||trim(indschema)||'.'||trim(indname) from syscat.indexes where indschema = 'APPSCHEMA ' union all select 'drop table '||trim(tabschema)||'.'||trim(tabname) from syscat.tables where tabschema = 'APPSCHEMA ' union all select 'drop sequence '||trim(seqschema)||'.'||trim(seqname) from syscat.sequences where seqschema = 'APPSCHEMA ' union all select 'drop package '||trim(creator)||'.'||trim(name) from SYSIBM.SYSPLAN where CREATOR='APPSCHEMA '; --в случае sqlexception продолжаем работу declare continue handler for sqlexception begin set exec_sqlcode = sqlcode; end; open cr_seq; while cr_sqlcode != 100 do fetch cr_seq into sql_stmt; set cr_sqlcode = sqlcode; if cr_sqlcode != 100 then --последовательно выполняем каждый запрос, полученный из курсора execute immediate sql_stmt; set exec_sqlcode = sqlcode; end if; end while; close cr_seq; end @ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 18:13 |
|
||
|
db2 luw, default schema
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Из-а этого параметра процедуры errortab : An input and output argument of type VARCHAR(128) that specifies the name of a table containing error information for objects that could not be dropped. The name is case-sensitive. This table is created for the user by the ADMIN_DROP_SCHEMA procedure in the SYSTOOLSPACE table space. This table is owned by the user ID that invoked the procedure. If no errors occurred, then this parameter is NULL on output. If the table cannot be created or already exists, the procedure operation fails and an error message is returned. The table must be cleaned up by the user following any call to ADMIN_DROP_SCHEMA; that is, the table must be dropped in order to reclaim the space it is consuming in SYSTOOLSPACE. Несмотря, на то, что перед каждым вызовом ADMIN_DROP_SCHEMA мы дропали таблицу errortab, мы получали ошибку, что она уже существует. Поэтому намного проще было написать скрипт который удаляет объекты. Но сейчас не об этом... м.б. еще есть идеи с основной проблемой темы? Для мня это сейчас просто showstopper =( Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2014, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=38585574&tid=1601137]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 337ms |
| total: | 458ms |

| 0 / 0 |
