Страница 1 из 1

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

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

ЗЫ: в форуме народ советует (у кого первасив) просто изменить имя поля, но в таблице katpodr поле HOUR[1] это продолжительность смены, там хоть и нули, вообщем как-то стремно.Есть ли какой-то не такой радикадьный способ?

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

Проверь, наверняка, в самом ORACLE поля эти называются что-то типа HOUR#1# - в SQL так.
Соотв. в запросе или в ACCESS можно юзать именно так.

Добавлено: 27 дек 2005, 11:03
Andrey
To Johny: Да, имеется в виду что через ODBC, если без проблем подскажите как. Делаю в Access: Внешние данные-Связь с таблицами-ODBC-Oracle.dsn-указываю таблицу-и система выдает ошибку-таблицы нет.

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

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

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

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

Если же наборот, в галку надо всасывать из Access, то тут сходу ничего не скажу.

Добавлено: 27 дек 2005, 13:09
Andrey
задача не " В таблу под Access" а в Access создать связь с внешними данными, которыми являются оракловые таблицы имена полей которых имеют в названии квад.скобки

Добавлено: 27 дек 2005, 13:51
Johny
так, я кажеться зациклился. Как я понял, поля без скобок вытаскиваются без проблем?
Еще раз говорю скобки надо менять на решетки.
Так не сработало (с решетками) ?

Добавлено: 27 дек 2005, 14:39
Andrey
а где менять?

Добавлено: 18 июн 2009, 14:26
jpoint
Спустя много лет топик ожил!

(oracle) как же всетаки обратиться к полю, содержащему в имени квадратные скобки, например, KAUKS[1] ? замена на # не помогает..

Добавлено: 18 июн 2009, 15:10
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
/

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