DSN8a10.emp - неопределенное имя - PullRequest
0 голосов
/ 11 февраля 2019

Я только что создал таблицу с именем TELE, выполнив следующий запрос:

CREATE TABLE TELE
(NAME2 VARCHAR(15) NOT NULL,
NAME1 VARCHAR(12) NOT NULL,
PHONE CHAR(4));

Теперь я пытаюсь заполнить ее данными из таблицы DSN8A10.EMP, выполнив следующий запрос:

INSERT INTO TELE
SELECT LASTNAME, FIRSTNME, PHONENO
FROM DSN8A10.EMP
WHERE WORKDEPT = 'D21';

Но я получаю следующую ошибку:

[42704] [- 204] "DSN8A10.EMP" - это неопределенное имя .. SQLCODE = -204, SQLSTATE = 42704,ДРАЙВЕР = 4.23.42.

Я использую IntelliJ IDEA с драйвером сервера данных com.ibm.db2.jcc.DB2Driver.

Не могли бы вы помочь мне с решением, пожалуйста?Заранее спасибо!

1 Ответ

0 голосов
/ 11 февраля 2019

Некоторые возможности:

  • таблица не существует, поскольку в названии схемы или имени таблицы имеется опечатка

  • таблицысуществует, но в другой базе данных

  • таблица существует в базе данных, но имя или схема имеют регистр MiXed, и в этом случае вы должны использовать двойные кавычки вокруг имени схемы и таблицыназвание.Таким образом, «DSN8a10». «Emp» отличается от DSN8a10.EMP.

Если Db2-сервер работает в Linux / Unix / Windows, этот запрос может помочь показать смешанное имя регистра,Возможно, таблица является представлением, псевдонимом или псевдонимом.

select tabschema, tabname from syscat.tables where upper(tabschema)='DSN8A10' and upper(tabname) = 'EMP'

Если Db2-сервер работает на i-Series: используйте вместо него QSYS2.SYSTABLES.

select table_schema, table_name from qsys2.systables where upper(table_schema)='DSN8A10' and table_name='EMP'

Если Db2-сервер работает в Z / OS: вместо него используйте SYSIBM.SYSTABLES:

select creator, name from sysibm.systables where upper(creator)='DSN8A10' and upper(name) = 'EMP'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...