| 
    
            
         
         | 
    
  | 
База Oracle как внешний источник данных | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Amfiaray    
     18.07.18 
            ✎
    15:45 
 | 
         
        Добрый день!
 
        Есть БД на Oracle. Добавил её как внешний источник данных, добавил таблицы и функции. При подключении ошибок нет, но если попытаться обратиться к функции или открыть таблицу выходит ошибка "Ошибка ODBC. SQLSTATE: HY000 Номер ошибки: 923 Описание: [Oracle][ODBC][Ora]ORA-00923: ключевое слово FROM не найдено там, где оно ожидалось". После удаления и нового добавления внешнего источника ситуация не изменилась. При этом добавление этого же источника на другой базе на этом же сервере прошло отлично, источник добавился и таблицы открываются. Подскажите как решить проблему?  | 
|||
| 
    1
    
        fedoss    
     18.07.18 
            ✎
    16:15 
 | 
         
        Тип СУБД точно "Oracle Database" стоит?     
         | 
|||
| 
    2
    
        Amfiaray    
     18.07.18 
            ✎
    16:23 
 | 
         
        (1) Да     
         | 
|||
| 
    3
    
        Amfiaray    
     18.07.18 
            ✎
    16:27 
 | 
         
        Очистил кэш - не помогло.
 
        Удалил информационную базу на сервере 1С и снова добавил - не помогло.  | 
|||
| 
    4
    
        fedoss    
     18.07.18 
            ✎
    16:31 
 | 
         
        Ну, как вариант, включить debug у ODBC драйвера и посмотреть, какой запрос уходит к СУБД и чем он отличается от успешного.     
         | 
|||
| 
    5
    
        Necessitudo    
     18.07.18 
            ✎
    17:08 
 | 
         
        А какой драйвер-то используете?     
         | 
|||
| 
    6
    
        Amfiaray    
     18.07.18 
            ✎
    17:16 
 | 
         
        (4) А как его включить?
 
        (5) DRIVER={Oracle in OraClient11g_home1}  | 
|||
| 
    7
    
        PloAl    
     18.07.18 
            ✎
    17:29 
 | 
         
        (0) В свойствах Таблиц, Полей заполнено "Имя в источнике данных"?     
         | 
|||
| 
    8
    
        Amfiaray    
     18.07.18 
            ✎
    17:35 
 | 
         
        (7) Да, всё заполнено
 
        Попробовал: 1. Удалить источник данных; 2. Сохранить конфигурацию; 3. Перезапустить сервер; 4. Снова добавить источник данных; Помогло, всё заработало, но после первого открытия таблицы из внешнего источника снова появилась ошибка и всё перестало работать.  | 
|||
| 
    9
    
        rsv    
     18.07.18 
            ✎
    17:42 
 | 
         
        Откройте excel на машине где клиент ораела стоит и через получение внешних данных цепанитесь к табличке .     
         | 
|||
| 
    10
    
        Amfiaray    
     19.07.18 
            ✎
    07:11 
 | 
         
        переделал всё на прямое подключение к БД и всё заработало, вот код:
 
        ТаблицаЗаписей = Новый ТаблицаЗначений; ТаблицаЗаписей.Колонки.Добавить("ID"); ТаблицаЗаписей.Колонки.Добавить("DOC_ID"); ТаблицаЗаписей.Колонки.Добавить("TYPE_ID"); ТаблицаЗаписей.Колонки.Добавить("XML_DATA"); Connect = ПолучитьПодключение(); Если Connect = Неопределено Тогда Сообщить("Не смогли подключиться"); Возврат; КонецЕсли; Command = Новый COMObject("ADODB.Command"); Command.ActiveConnection = Connect; Command.CommandText = "CORPORATE.PKG_WS.GETDOCUMENTSFORSEND"; Command.CommandType = 8; RecordSet = Новый COMОбъект("ADODB.RecordSet"); Попытка RecordSet = Command.Execute(); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Пока RecordSet.EOF() = 0 Цикл НоваяСтрока = ТаблицаЗаписей.Добавить(); Для i = 0 По RecordSet.Fields.Count-1 Цикл ИмяКолонки = RecordSet.Fields.Item(i).Name; НоваяСтрока[ИмяКолонки] = RecordSet.Fields.Item(ИмяКолонки).Value; КонецЦикла; RecordSet.MoveNext(); КонецЦикла; Появилась следующая проблема, в Oracle у поля XML_DATA тип CLOB, в 1С значение поля показывает как Неопределено. Есть возможность получить CLOB из 1С?  | 
|||
| 
    11
    
        catena    
     19.07.18 
            ✎
    07:54 
 | 
         
        Попросить автора GETDOCUMENTSFORSEND отдавать ее строкой. Обычный ltrim поможет.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |