Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / db2 luw, default schema / 9 сообщений из 9, страница 1 из 1
13.03.2014, 11:42
    #38584916
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
Добрый день!
db2 luw 9.7.
Подскажите пожалуйста с такой проблемой.
В БД была схема с именем appschema. В какой-то момент ее дропнули и создали с таким же именем новую.
Теперь, пользователь-владелец схемы не может выполнять запросы без явного указания имя схемы: select * from sometable
получаю ошибку, что таблица в ЭТОЙ схеме не найдена
SQL0204N Имя "appschema.sometable" не было определено. SQLSTATE=42704
Причем имя схемы в ошибке верное. Я понимаю, если бы таблица искалась в другой схеме, но она ищется в верной схеме и не находится!
Запрос select current schema from sysibm.sysdummy1 выводит "appschema" - все должно быть нормально.
Как только указываю имя схемы явно, все нормально: select * from "appschema.sometable".
В чем может быть проблема?
...
Рейтинг: 0 / 0
13.03.2014, 12:24
    #38584975
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
еще:
в 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
всегда работает.
...
Рейтинг: 0 / 0
13.03.2014, 15:36
    #38585313
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
kalupator,

Добрый день.

Код: plaintext
jdbc.url=jdbc:db2://db2srv:50000/somedb:currentSchema=appschemaAPPSCHEMA;
...
Рейтинг: 0 / 0
13.03.2014, 15:40
    #38585321
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
Mark Barinstein,

не помогло, я уже совсем не понимаю, из-за чего это может быть.
вот тут http://www.dbvis.com/forum/message.jspa?messageID=5433 у человека такая же проблема, решения не нашли.
...
Рейтинг: 0 / 0
13.03.2014, 17:20
    #38585488
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
kalupator,

Дайте вывод запроса:

Код: sql
1.
2.
3.
select tabschema, tabname
from syscat.tables
where UPPER(tabname) like '%SOMETABLE%'
...
Рейтинг: 0 / 0
13.03.2014, 18:13
    #38585574
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
Mark Barinstein,

Код: plsql
1.
2.
3.
 TABSCHEMA TABNAME
 --------- ---------
 APPSCHEMA SOMETABLE


я думаю проблема гораздо глубже, вряд ли все так очевидно... м.б. повлиял способ, которым я очищал схему от объектов перед удалением:
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
@
...
Рейтинг: 0 / 0
13.03.2014, 18:36
    #38585598
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
kalupator,

А ADMIN_DROP_SCHEMA вы почему не пользуетесь?
...
Рейтинг: 0 / 0
13.03.2014, 20:49
    #38585698
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
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 =(
Заранее спасибо!
...
Рейтинг: 0 / 0
15.03.2014, 13:53
    #38587137
kalupator
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
db2 luw, default schema
Кому интересно - проблема исчезла, после нескольких физических перезагрузок машины, на которой стоит DB2...
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / db2 luw, default schema / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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