Связь с таблицами(Oracle) из Access через ODBC?

Администрирование баз данных (Pervasive.SQL, MS SQL, Oracle, утилита Support)

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Andrey
Местный житель
Сообщения: 702
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина, Запорожска яобласть, г.Днепрорудный

Связь с таблицами(Oracle) из Access через ODBC?

Сообщение Andrey »

Добрый день. 7.11+Оракл. Пытаюсь построить вышеуказанный доступ, часть таблиц без проблем, а на некоторых(Katmc, Katpodr) Access ругается на не правильное название полей в таблицах: 'FHOUR[1]' is not valid. Это как то можно победить?

ЗЫ: в форуме народ советует (у кого первасив) просто изменить имя поля, но в таблице katpodr поле HOUR[1] это продолжительность смены, там хоть и нули, вообщем как-то стремно.Есть ли какой-то не такой радикадьный способ?
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Я не очень понял саму суть вопроса, что значит построить доступ? Сформировать запрос с такими "классными" названиями полей? (Имеется в виду, что сам ODBC без проблем)
Если пытаться создать поля с символами [] в ACCESS то проблемы будут, он их считает спецсимволами или чем там. Заменяй на решетку.

Проверь, наверняка, в самом ORACLE поля эти называются что-то типа HOUR#1# - в SQL так.
Соотв. в запросе или в ACCESS можно юзать именно так.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Andrey
Местный житель
Сообщения: 702
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина, Запорожска яобласть, г.Днепрорудный

Сообщение Andrey »

To Johny: Да, имеется в виду что через ODBC, если без проблем подскажите как. Делаю в Access: Внешние данные-Связь с таблицами-ODBC-Oracle.dsn-указываю таблицу-и система выдает ошибку-таблицы нет.
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

Так, по порядку. В чем проблема, я чего-то нить потерял.
Дано: база Галы под Oracle, готовое ODBC соединение, MS Access
Задача: В таблу под Access вытащить данные из таблы в Гале?

В чем проблема?
Тут вроде все нормально.
Делаем запрос к серверу, в нем указываем строку подключения ODBC
в запросе пишем, например,

select f$hour#1# from t$katpodr; //вариант под SQL, как в Oracle таблы называются, надо смотреть отдельно, но думаю с подобными префиксами.

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

Если же наборот, в галку надо всасывать из Access, то тут сходу ничего не скажу.
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Andrey
Местный житель
Сообщения: 702
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина, Запорожска яобласть, г.Днепрорудный

Сообщение Andrey »

задача не " В таблу под Access" а в Access создать связь с внешними данными, которыми являются оракловые таблицы имена полей которых имеют в названии квад.скобки
Johny
Местный житель
Сообщения: 291
Зарегистрирован: 29 мар 2005, 17:49
Откуда: С-Петербург
Контактная информация:

Сообщение Johny »

так, я кажеться зациклился. Как я понял, поля без скобок вытаскиваются без проблем?
Еще раз говорю скобки надо менять на решетки.
Так не сработало (с решетками) ?
Безвыходных ситуаций не бывает: DO LOOP WHILE TRUE
Andrey
Местный житель
Сообщения: 702
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина, Запорожска яобласть, г.Днепрорудный

Сообщение Andrey »

а где менять?
jpoint
Новичок
Сообщения: 20
Зарегистрирован: 07 мар 2007, 12:12

Сообщение jpoint »

Спустя много лет топик ожил!

(oracle) как же всетаки обратиться к полю, содержащему в имени квадратные скобки, например, KAUKS[1] ? замена на # не помогает..
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

Проблема не в оракле а в MsAccess.
Для того чтобы обратиться к таким не стандартным полям -
создайте свою View в оракле, замените [] на чтонить удобоваримое и открывайте ее в акцессе.

Код: Выделить всё

CREATE OR REPLACE VIEW V_KATPODR
(SYS#UL, FNREC, FATL_LASTDATE, FATL_LASTTIME, FATL_LASTUSER, 
 FATL_ORIGINOFFICE, FATL_OWNER, FATL_BRANCH, FLASTUSER, FLASTTIME, 
 FLASTDATE, FFILIALNO, FCODE, FCPODR, FISLEAF, 
 FCREC, FNAME, FNAME$UP, FKOD, FKOD$UP, 
 FFIO, FCUSER, FADDR, FTEL, FSKLAD, 
 FVOLUME, FCRESHR, FCGRPODR, FSKPRIOR, FINTERN, 
 FCFUNC, FSMEN, FHOUR_1_, FHOUR_2_, FHOUR_3_, 
 FMINUT_1_, FMINUT_2_, FMINUT_3_, FUCHPRC, FPRSKLAD, 
 FTYPEUCH, FCPRICEL, FCGRAFIK, FCCALENDAR, FCMNFSTRC, 
 FFIO_GB, FCORG, FISARCH, FCKPP)
AS 
SELECT sys#ul, fnrec, fatl_lastdate, fatl_lasttime, fatl_lastuser,
          fatl_originoffice, fatl_owner, fatl_branch, flastuser, flasttime,
          flastdate, ffilialno, fcode, fcpodr, fisleaf, fcrec, fname,
          fname$up, fkod, fkod$up, ffio, fcuser, faddr, ftel, fsklad, fvolume,
          fcreshr, fcgrpodr, fskprior, fintern, fcfunc, fsmen, "FHOUR[1]",
          "FHOUR[2]", "FHOUR[3]", "FMINUT[1]", "FMINUT[2]", "FMINUT[3]",
          fuchprc, fprsklad, ftypeuch, fcpricel, fcgrafik, fccalendar,
          fcmnfstrc, ffio_gb, fcorg, fisarch, fckpp
     FROM e.katpodr k
/


GRANT SELECT ON  V_KATPODR TO PUBLIC
/
jpoint
Новичок
Сообщения: 20
Зарегистрирован: 07 мар 2007, 12:12

Сообщение jpoint »

Проблема была в том, как обратиться к такому полю средствами самого оракла, например sqlplus. По вашему ответу - взяв поле в кавычки, что мне и помогло. Благодарю!)
Ответить