powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / db2 luw, default schema
9 сообщений из 9, страница 1 из 1
db2 luw, default schema
    #38584916
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
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
db2 luw, default schema
    #38584975
kalupator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще:
в 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
db2 luw, default schema
    #38585313
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalupator,

Добрый день.

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

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

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

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

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


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