powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL1024N A database connection does not exist. SQLSTATE=08003
20 сообщений из 20, страница 1 из 1
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240875
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Установил сегодня DB2 и пытаюсь выполнить первые базовые команды, чтобы проверить что все работает ок. Однако в итоге получаю сообщения об ошибках. Итак, делаю следующее

1. Запускаю DB2 CLP
2. выполняю команду db2 => LIST DATABASE DIRECTORY и получаю следующий список:

Каталог системных баз данных

Число записей в каталоге = 1

Запись базы данных 1:

Алиас базы данных = SAMPLE
Имя базы данных = SAMPLE
Каталог локальной базы данных = C:
Выпуск базы данных = 10.00
Комментарии =
Тип записи каталога = Косвенный
Номер раздела базы данных каталога = 0
Имя хоста альтернативного сервера =
Номер порта альтернативного сервера =


3. Наконец пытаюсь выполнить команду db2 => set schema sample (как понял это аналог USE db_name в некоторых других СУБД) и получаю следующее:

DB21034E Данная команда обрабатывалась как оператор SQL, поскольку она не
является допустимой командой процессора командной строки. При обработке SQL
было получено сообщение:
SQL1024N Отсутствует соединение с базой данных. SQLSTATE=08003


Подскажите, в чем может быть проблема или что я делаю не так. Цель - просто подключиться к тестовой базе sample, ну и запустить какой-нибудь простецкий запросец, который выведет, например, список таблиц. Спасибо!
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240899
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Jacobian,
между 2. и 3. пропущено 2.5

connect to sample
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240900
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю, что за USE db_nam, но в DB2 схема - это квалификатор имён внутри базы (например, someschema в SELECT ... FROM someschema.sometable), по умолчанию совпадает с именем пользователя, но можно задать какую-нибудь другую.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240904
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все разобрался. Получилось подключиться к DB2 в консоли и позапускать простые запросы. Единственная теперь проблема в том, что аналогичные запросы (даже самые тривиальные) не получается запустить из кода. Так, например, в Питоне получаю следующее:

Код: sql
1.
2.
3.
4.
5.
6.
>>> import ibm_db
>>> conn = ibm_db.connect("sample","root","root")
>>> ibm_db.exec_immediate(conn, "LIST TABLES")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception



Когда же запускаю аналогичный запрос в командной строке, то все ок - выводит кучу существующих таблиц. Не знаю, что не так с кодом и какой дебаг тут может помочь.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240905
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Причем, если делаю такую проверку:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
if client:
    print("DRIVER_NAME: string(%d) \"%s\"" % (len(client.DRIVER_NAME), client.DRIVER_NAME))
    print("DRIVER_VER: string(%d) \"%s\"" % (len(client.DRIVER_VER), client.DRIVER_VER))
    print("DATA_SOURCE_NAME: string(%d) \"%s\"" % (len(client.DATA_SOURCE_NAME), client.DATA_SOURCE_NAME))
    print("DRIVER_ODBC_VER: string(%d) \"%s\"" % (len(client.DRIVER_ODBC_VER), client.DRIVER_ODBC_VER))
    print("ODBC_VER: string(%d) \"%s\"" % (len(client.ODBC_VER), client.ODBC_VER))
    print("ODBC_SQL_CONFORMANCE: string(%d) \"%s\"" % (len(client.ODBC_SQL_CONFORMANCE), client.ODBC_SQL_CONFORMANCE))
    print("APPL_CODEPAGE: int(%s)" % client.APPL_CODEPAGE)
    print("CONN_CODEPAGE: int(%s)" % client.CONN_CODEPAGE)
    ibm_db.close(conn)
else:
    print("Error.")



То на выходе получаю следующее:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
DRIVER_NAME: string(10) "DB2CLI.DLL"
DRIVER_VER: string(10) "10.05.0007"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(1251)
CONN_CODEPAGE: int(1208)
True



То есть на первый взгляд все норм. Однако же запустить даже самый элементарнейший запрос так и не получается. Подскажите, уважаемые форумчане, какой дебаг тут поможет?
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240911
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jacobian,

Добрый день.

list tables - это не SQL запрос, а команда командного процессора db2 (clp), который может выполнять как эти команды, так и SQL запросы.
http://www.ibm.com/support/knowledgecenter/?lang=en#!/SSEPGG_10.5.0/com.ibm.db2.luw.admin.cmd.doc/com.ibm.db2.luw.admin.cmd.doc-gentopic3.html?cp=SSEPGG_10.5.0/3-6-2-4
Их не надо пытаться выполнять в своей программе там, где ожидается SQL запрос.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240915
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! Но я не только list tables испытывал. Так же пробовал делать простой select * from act. В консоли этот запрос выдает следующий результат:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
db2 => select * from act

ACTNO  ACTKWD ACTDESC
------ ------ --------------------
    10 MANAGE MANAGE/ADVISE
    20 ECOST  ESTIMATE COST
    30 DEFINE DEFINE SPECS
    40 LEADPR LEAD PROGRAM/DESIGN
    50 SPECS  WRITE SPECS
    60 LOGIC  DESCRIBE LOGIC
    70 CODE   CODE PROGRAMS
    80 TEST   TEST PROGRAMS
    90 ADMQS  ADM QUERY SYSTEM
   100 TEACH  TEACH CLASSES
   110 COURSE DEVELOP COURSES
   120 STAFF  PERS AND STAFFING
   130 OPERAT OPER COMPUTER SYS
   140 MAINT  MAINT SOFTWARE SYS
   150 ADMSYS ADM OPERATING SYS
   160 ADMDB  ADM DATA BASES
   170 ADMDC  ADM DATA COMM
   180 DOC    DOCUMENT

  18 записей выбрано.



В коде же имею другую картину:

Код: sql
1.
2.
3.
4.
5.
6.
>>> conn = ibm_db.connect("sample","root","root")
>>> ibm_db.exec_immediate(conn,"select * from act")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception
>>>
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240937
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jacobian,

Fetching rows or columns from result sets in Python
https://www.ibm.com/support/knowledgecenter/#!/SSEPGG_10.5.0/com.ibm.swg.im.dbclient.python.doc/doc/t0054388.html

Если не получается, покажите код и сообщение об ошибке.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240942
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Марк,

в моем сообщении код из трех строчек приведен целиком и полностью. До команды fetch дело даже не доходит, потому что все уже рушится на команде exec_immediate.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240944
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jacobian,

Я не специалист в Python, но вы все же попробуйте:
stmt = ibm_db.exec_immediate(conn, sql)
Вместо:
ibm_db.exec_immediate(conn, sql)
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39240945
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, это не помогло.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241004
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JacobianСпасибо! Но я не только list tables испытывал. Так же пробовал делать простой select * from act. В консоли этот запрос выдает следующий результат:

Код: sql
1.
2.
3.
4.
5.
6.
7.
db2 => select * from act

ACTNO  ACTKWD ACTDESC
------ ------ --------------------
    10 MANAGE MANAGE/ADVISE
...
  18 записей выбрано.



В коде же имею другую картину:

Код: sql
1.
2.
3.
4.
5.
6.
>>> conn = ibm_db.connect("sample","root","root")
>>> ibm_db.exec_immediate(conn,"select * from act")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception
>>>



Почему root? Хотя и ставилась она под root'ом, но instance, скорее всего, db2inst1 и база SAMPLE создана под этим юзером, так что искомые объекты в этой схеме. Мне никогда не приходило в голову попробовать коннектиться к DB2 root'ом, но если так можно, я тогда ожидал бы правильным запрос "select * from db2inst1.act".
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241011
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И не факт, что root вообще имеет право на выборку из тех таблиц. Лучше и приконнектиться как instance owner, который по дефолту db2inst1, если при установке не было задано иначе.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241083
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я когда устанавливал BD2, то по умолчанию указал логин и пароль - root/root. И обратите внимание, что Exception вылетает не на строке подключения, а на строке запроса. И кстати если в строке подключения поменять root на дефолтный, то тоже выскочит ошибка.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241085
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но конечно есть большая вероятность, что дело именно в этом - в том, что вместо дефолта указал рута. Буду признателен за совет, как и что тут в таком случае можно сделать.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241191
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал подозревать, что дело происходит под виндой.
А-а-а!!! в самом деле, DRIVER_NAME: string(10) "DB2CLI.DLL".
В таком случае, root, скорее всего, не более чем обычный пользователь и его имя не делает разницы...
Плохо без диагностики. В первый раз такое вижу - чтобы по exception ничего полезного не было.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241264
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, все верно - в данном случае работаю под виндой. И такой малоинформативный эксэпшон тоже сильно удивляет. Кстати, если например при подключении передам неправильные параметры, то тоже выскочит такой же простецкий эксеэшон, по которому ничего не поймешь.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241487
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241615
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за совет! Очень полезная информация! Сейчас буду делать дебаг.
...
Рейтинг: 0 / 0
SQL1024N A database connection does not exist. SQLSTATE=08003
    #39241618
Jacobian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отдебажил. На выходе получил интересное сообщение:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
>>> import ibm_db
>>> conn = ibm_db.connect("sample","root","root")
>>> ibm_db.exec_immediate(conn, "select * from act")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
Exception
>>> print(ibm_db.stmt_errormsg())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc8 in position 38: ordinal not in range(128)



Буду копать дальше.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / SQL1024N A database connection does not exist. SQLSTATE=08003
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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