Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получить метаданные таблиц по запросу Oracle / 6 сообщений из 6, страница 1 из 1
05.06.2018, 17:13
    #39655818
dMazay82
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
Всем привет
Есть примерно такая процедура, запрос не обязательно такой, но суть отображает

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public void GetLog(DataSet dataSet, string userCase){
  OracleCommand cmd = new OracleCommand();
  cmd.Connection = conn;
  tmpSql = @"select * from table1 t1
  join table2 on t1.key=t2.key 
  where 1=1 and "+userCase
  cmd.CommandType = CommandType.Text;
  adapter = new OracleDataAdapter(cmd);
  adapter.SelectCommand = cmd;
  adapter.Fill(dataSet, tableName);
}



Проблема заключается в следующем, обе таблицы могут иметь одинаковые поля, для примера возьмем Name, и когда на вход в userCase приходит что-то типа name='блаблабла' возникает эксепшен "ora-00918 column ambiguously defined" условие должно быть table1.name='блаблабла'. На вход может придти любое поле из таблиц, не обязательно то которое есть в обеих.

Можно ли как то получить мета данные по запросу, чтобы определить какой столбец, какой таблице принадлежит?
Если по запросу нельзя, можно как вариант по отдельным таблицам?
...
Рейтинг: 0 / 0
05.06.2018, 17:16
    #39655822
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
Опять за рыбу деньги.

Забыть конструкцию " SELECT * " как страшный сон!
...
Рейтинг: 0 / 0
05.06.2018, 17:18
    #39655825
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
...
Рейтинг: 0 / 0
06.06.2018, 09:36
    #39656124
dMazay82
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
Shocker.ProОпять за рыбу деньги.
Забыть конструкцию " SELECT * " как страшный сон!
Почему, может быть имелось в виду " SELECT * ", то да согласен

Shocker.Pro http://www.sql.ru/forum/1294583/poluchenie-imen-poley-iz-zaprosa?hl=select
особо тоже, но на мысль навело

Код: sql
1.
2.
3.
4.
select * from (
  select t.name, t1.f1, t2.f2, t2.f3... from table1 t1
    join table2 on t1.key=t2.key 
  ) where name='блаблабла' 
...
Рейтинг: 0 / 0
06.06.2018, 09:42
    #39656133
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
У тебя проблема не тут. Не должно dMazay82на вход в userCase приходит что-то типа name=где name ambiguously.

А приходит из-за того, что используется select * вместо нормального перечня полей с псевдонимами
...
Рейтинг: 0 / 0
06.06.2018, 09:53
    #39656144
dMazay82
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить метаданные таблиц по запросу Oracle
Shocker.Pro,
все норм, может слишком общий вопрос сформулировал...
Да скорее всего надо поменять способ формирования sql, он полуавтоматический, и дописывать алиасы.
В общем мысль понятна, спасибо.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Получить метаданные таблиц по запросу Oracle / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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