Ошибка sql error code 204 table unknown

Симптомы

Инструкция SQL отправляется из IBM DB2 в службу корпорации Майкрософт для распределенной реляционной базы данных архитектура (DRDA). Если инструкция содержит полное имя в кавычки идентификатора, такого как «SCHEMA1. В хост-системе IBM может отображаться Table1,» сообщение об ошибке, подобное приведенному ниже:

SQLCODE: -204
SQLSTATE: 42704
SQLERRMT: квалификатор.» НЕОПРЕДЕЛЕННОЕ ИМЯ

Причина

Эта проблема возникает, так как SQL преобразователь, который используется службой Microsoft для DRDA не правильно проанализировать и обновить полное идентификаторы в кавычках. Кроме того преобразователь SQL не обновляет имя сопоставленной коллекции в зависимости от параметров в файле App.config, который используется службой Microsoft для DRDA имя схемы.

Решение

Информация о накопительном пакете обновления

Исправление, устраняющее эту проблему включен в Накопительное обновление 1 для Microsoft узла Integration Server 2013.

Статус

Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе «Относится к».

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Submitted by: julian bui (jbu311)

Related to a bug found in the bug tracker. It looks like nobody did anything with that one because they didn’t have queries. I was able to duplicate the bug and here are the queries I used. Fields are censored for privacy reasons.

//NEXT THREE LINES EXECUTE WITHOUT ERRORS
String createTableQueryString = «CREATE TABLE MY_TABLE (aaaSMALLINT, bbbBIGINT, cccSMALLINT, ddd DOUBLE PRECISION, eee CHAR(16));»;
PreparedStatement ps = conn.prepareStatement(createTableQueryString);
ps.execute();

//NEXT FEWLINES PRODUCE ERROR:
try {
dataInsertPs = conn.prepareStatement(«INSERT INTO MY_TABLE (aaa, bbb, ccc, ddd, eee) VALUES (?, ?, ?, ?, ? )»);
} catch (SQLException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, «Could not create prepared statement», ex);
}

ERROR:
databaseURL = jdbc:firebirdsql:embedded:V:TempDB.FDB
Oct 22, 2008 1:24:06 PM Main createPreparedStatement
SEVERE: Could not create prepared statement
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -204
Table unknown
MY_TABLE
At line 1, column 13
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:127)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:41)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.firebirdsql.jdbc.FBStatementFactory.createPreparedStatement(FBStatementFactory.java:90)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:869)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:824)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:817)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:293)
at Main.createPreparedStatement(Main.java:101)
at Main.main(Main.java:189)

I could establish the connection to a Firebird database with the following connection string:

ConnectionString = "User ID=SYSDBA;Password=masterkey;Database=localhost:C:\MyDb\mydb.FDB;DataSource=localhost;Charset=NONE;";

But when the C# code tries to execute the query the following error comes:

Dynamic SQL Error SQL Error Code = -204 Table unknown

The code that I’ve tried:

using FirebirdSql.Data.FirebirdClient;
...
FbConnection connection = new FbConnection(ConnectionString);
connection.Open();
FbCommand readCommand = new FbCommand("Select Name From Customer;", connection);
FbDataReader myreader = readCommand.ExecuteReader();

There definitely exists the Customer table (I’ve checked with IBExpert — in that I can read the data). I hardly found anything on Google.

Firebird 2.5 server is running on my Computer. What could be the problem?

Модераторы: kdv, Alexey Kovyazin

Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Table unknown. RDB$DATABASE.

через IBExpert дал Одной из ролей все права на чтение таблиц.
После этого к базе могу подключится только через SYSDBA.
Пользователи все подключаются через Роли.

если подключаться пользователем с ролью вылетает ошибка

Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
RDB$DATABASE.
At line 2, column 19.

Что делать?? в чем проблема???


kdv

Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение

kdv » 17 июн 2005, 10:36

нажал не ту нкопку, и создались не те права. см. в rdb$user_privileges



Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 17 июн 2005, 13:42

Удалил Роль из базы.
почистил все упоминания этой роли в rdb$user_privileges

не помогает.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 17 июн 2005, 14:05

Сделай backup-restore и больше не балуйся с правами на системные таблицы.


Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 20 июн 2005, 08:43

Да не трогал я системные таблицы.

Роли права назначал через IBExpert .

Это уже не первый раз. такое а бакап и ресторе 4Гига делать каждый раз. долговато.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 20 июн 2005, 12:54

Konstantin писал(а):Да не трогал я системные таблицы.

Трогал-трогал. Чудес не бывает.

Konstantin писал(а):
Роли права назначал через IBExpert .

Вот тут руки и не помыл. То ли сам назначил права на доступ к системеным таблицам, то ли Экспертовский автогрант помог.


Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 20 июн 2005, 13:08

Merlin писал(а): то ли Экспертовский автогрант помог.

А вот этим часто пользуемся.

Так как лечить то??? 4Гига сильно долго бакап ресторе делать.

Причем на убитой базе — удаляли все права кроме Sysdbа

назначали снова — через Эксперт все рано не коннктится.

мне нужно выснить причину что повлекло это.
и в следующий раз лечить это быстро.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 20 июн 2005, 13:48

select * from rdb$user_privileges where rdb$relation_name starting ‘RDB$’

По уму должен получить не больше 6 записей с доступом к RDB$ROLES — 5 на все права создателя базы (если он не SYSDBA) и 1 на чтение PUBLIC. Если что вылезет ещё — revoke. По идее должно оклематься, но я бы советовал всё-таки b/r — там остаются лишние записи в RDB$SECURITY_CLASSES, чем может аукнуться впоследствии — не знаю.


Submitted by: Schalk Lotz (schalklotz)

Duplicates CORE990

I was honored to inherit a legacy application from a college that left. The application is written in Borland C++, using a firebird database.

The problems are that when you run queries and commit it to the database; I get the following error message.

«Error : Dynamic SQL Error SQL error code = -204 Table unknown NUMBER at line 1, column 152»

Now NUMBER is a column in a table and not a table itself.

Now the killer is, it only happens on certain PC. All are XP service pack 2, but I can’t seem to find a difference that indicates what the problem is.
The fact that it only happens on certain PC makes me believe it is a environment / setup error, so before I start hacking into the code that is undocumented I thought to ask if anyone had something similar to this before, and if so what is the problem en how can we fix this.

All help will be appreciated
Kind regards
Schalk

Модераторы: kdv, Alexey Kovyazin

Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Table unknown. RDB$DATABASE.

через IBExpert дал Одной из ролей все права на чтение таблиц.
После этого к базе могу подключится только через SYSDBA.
Пользователи все подключаются через Роли.

если подключаться пользователем с ролью вылетает ошибка

Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Table unknown.
RDB$DATABASE.
At line 2, column 19.

Что делать?? в чем проблема???


kdv

Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение

kdv » 17 июн 2005, 10:36

нажал не ту нкопку, и создались не те права. см. в rdb$user_privileges



Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 17 июн 2005, 13:42

Удалил Роль из базы.
почистил все упоминания этой роли в rdb$user_privileges

не помогает.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 17 июн 2005, 14:05

Сделай backup-restore и больше не балуйся с правами на системные таблицы.


Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 20 июн 2005, 08:43

Да не трогал я системные таблицы.

Роли права назначал через IBExpert .

Это уже не первый раз. такое а бакап и ресторе 4Гига делать каждый раз. долговато.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 20 июн 2005, 12:54

Konstantin писал(а):Да не трогал я системные таблицы.

Трогал-трогал. Чудес не бывает.

Konstantin писал(а):
Роли права назначал через IBExpert .

Вот тут руки и не помыл. То ли сам назначил права на доступ к системеным таблицам, то ли Экспертовский автогрант помог.


Konstantin

Сообщения: 37
Зарегистрирован: 27 окт 2004, 06:01

Сообщение

Konstantin » 20 июн 2005, 13:08

Merlin писал(а): то ли Экспертовский автогрант помог.

А вот этим часто пользуемся.

Так как лечить то??? 4Гига сильно долго бакап ресторе делать.

Причем на убитой базе — удаляли все права кроме Sysdbа

назначали снова — через Эксперт все рано не коннктится.

мне нужно выснить причину что повлекло это.
и в следующий раз лечить это быстро.


Merlin

Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение

Merlin » 20 июн 2005, 13:48

select * from rdb$user_privileges where rdb$relation_name starting ‘RDB$’

По уму должен получить не больше 6 записей с доступом к RDB$ROLES — 5 на все права создателя базы (если он не SYSDBA) и 1 на чтение PUBLIC. Если что вылезет ещё — revoke. По идее должно оклематься, но я бы советовал всё-таки b/r — там остаются лишние записи в RDB$SECURITY_CLASSES, чем может аукнуться впоследствии — не знаю.


Sone4chko

0 / 0 / 0

Регистрация: 27.09.2009

Сообщений: 56

1

08.11.2011, 01:58. Показов 7874. Ответов 5

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Здравствуйте! Не могу понять почему не работает запрос по базе, созданной в InterBase. База подключена к программе на Builder C++. В коде запроса я прописала:

SQL
1
2
3
SELECT c1.club_name, c2.club_name 
FROM Championship, Club c1, Club c2
WHERE Championship.club1=c1.club_id AND Championship.club2=c2.club_id

Выдает ошибку Dynamic SQL Error. SQL Error Code = -204. Table unknown Championship.
Если Championship с Club поменять местами, будет писать Club.

подскажите пожалуйста в чем проблема.

0

1263 / 706 / 62

Регистрация: 21.12.2009

Сообщений: 2,255

08.11.2011, 06:15

2

Вы уверены, что в Вашей БД, которую вы создали и с которой соединяетесь есть таблицы Championship и Club

Цитата
Сообщение от Sone4chko
Посмотреть сообщение

Если Championship с Club поменять местами, будет писать Club

Как только при попытке исполнения запроса обнаруживается отсутствие объекта в БД сервер сообщает об ошибке и прекращает дальнейшую обработку запроса. Так, что тут никаких чудес нет!

0

0 / 0 / 0

Регистрация: 27.09.2009

Сообщений: 56

08.11.2011, 13:53

 [ТС]

3

да, я уверена, что таблицы существуют. они у меня тоже открыты в программе. И при создании запроса на боковой панели есть список всех таблиц в этой базе, среди них есть и Championship, и Club

0

1263 / 706 / 62

Регистрация: 21.12.2009

Сообщений: 2,255

08.11.2011, 15:36

4

Сколько-нибудь точных предположений по поводу Вашей проблемы нет, к сожалению. Рекомендации следующие
1. Попробуйте выполнить этот запрос, ничего в нем не меняя в среде IBExpert
2. Если и там обнаружатся глюки, то вниматально посмотрите скрипт этих таблиц. Посмотрите, не использовали ли Вы при создании таблиц и полей двойные кавычки при именовании объектов. Это может оказаться важным!

0

0 / 0 / 0

Регистрация: 27.09.2009

Сообщений: 56

08.11.2011, 19:50

 [ТС]

5

Проблема была действительно в ковычках. Спасибо!)

0

1263 / 706 / 62

Регистрация: 21.12.2009

Сообщений: 2,255

09.11.2011, 05:39

6

Цитата
Сообщение от Sone4chko
Посмотреть сообщение

Проблема была действительно в ковычках

В общем случае использовать кавычки при именовании объектов не рекомендуется. Их приходится использовать, если объектам БД присваиваются имена с использованием корилицы или используются зарезервированные слова. Но этого тоже делать не надо, ибо, как правило, порождает побочные эффкты!

0

INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Contact US

Thanks. We have received your request and will respond promptly.

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!

  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It’s Free!

*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

SQL error -204 «table unknown» (Delphi 5 Prof / IB open source)

SQL error -204 «table unknown» (Delphi 5 Prof / IB open source)

(OP)

19 Oct 02 04:15

Hi experts,

I have a problem connecting a DBGrid to an InterBase table. DB components used are:
— IBDataSet
— IBTransaction
— IBDatabase

All connected as described in the online help «InterBase Express Reference». When I at design time set IBDataset.Active to true I receive the following:
  Dynamic SQL Error
  SQL error code : -204
  Table unknown
  BANK.

The table exists in my local database, it can be used in the editor from IBDataSet.SelectSQL (string stored is «Select * from Bank»). Tried now for quite some time, incl. other components, but do not get any further.

Did anyone come across this as well, or has an idea what I possibly do wrong? Any help appreciated — Thanks!

Cheers,
   MatthiasB

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Join Tek-Tips® Today!

Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.

Here’s Why Members Love Tek-Tips Forums:

  • Tek-Tips ForumsTalk To Other Members
  • Notification Of Responses To Questions
  • Favorite Forums One Click Access
  • Keyword Search Of All Posts, And More…

Register now while it’s still free!

Already a member? Close this window and log in.

Join Us             Close

Понравилась статья? Поделить с друзьями:
  • Ошибка sql 1366 incorrect integer value
  • Ошибка spn 1378 fmi 31
  • Ошибка sql error code 104
  • Ошибка sql 1292 incorrect datetime value
  • Ошибка spn 1074 fmi 12 камаз евро 5