Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешние источники данных (Oracle)

Внешние источники данных (Oracle)
Я
   trooba
 
11.12.20 - 15:39
Создан внешний источник данных в клиент-серверной базе 1с 8.2.19.130. Производится попытка выполнить код:

Если ВнешниеИсточникиДанных.СПР.ПолучитьСостояние()=СостояниеВнешнегоИсточникаДанных.Отключен Тогда
        
        ПараметрыПодключения=ВнешниеИсточникиДанных.СПР.ПолучитьОбщиеПараметрыСоединения();
        ПараметрыПодключения.СтрокаСоединения="DRIVER={Microsoft ODBC for Oracle}; UID=Пользователь; PWD=Пароль; SERVER=Сервер;";
        ПараметрыПодключения.СУБД="Oracle";
        ВнешниеИсточникиДанных.СПР.УстановитьОбщиеПараметрыСоединения(ПараметрыПодключения);
    
    КонецЕсли;
    
    ВнешниеИсточникиДанных.СПР.УстановитьСоединение();
    
    Query = Новый Запрос;

Query.Текст = "ВЫБРАТЬ
                  |    FIDCMN.DOC_NUMBER,
                  |    FIDCMN.DOC_DATE,
                  |    FIBDOC.IS_UNLOAD
                  |ИЗ
                  |    ВнешнийИсточникДанных.СПР.Таблица.APR_FIDCMN КАК FIDCMN
                  |        ЛЕВОЕ СОЕДИНЕНИЕ ВнешнийИсточникДанных.СПР.Таблица.APR_FIBDOC КАК FIBDOC
                  |        ПО FIBDOC.DOC_CODE = FIDCMN.DOC_CODE
                  |ГДЕ
                  |    FIDCMN.RECORDID_DCTP = 722
                  |    И НЕ FIDCMN.DOC_NUMBER ЕСТЬ NULL
                  |    И FIDCMN.DOC_DATE МЕЖДУ &Нач И &Кон";    

Query.УстановитьПараметр("Нач",НачалоПериода.Дата);
    Query.УстановитьПараметр("Кон",КонецДня(КонецПериода.Дата));
    
    Выборка=Query.Выполнить().Выбрать();


Выдается ошибка, что это может быть и как лечить? Сразу оговорюсь, что можно через ADO, но хотелось через ВИД.

по причине:
Ошибка выполнения запроса
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 42000
Номер ошибки: 907
Описание: [Microsoft][ODBC driver for Oracle][Oracle]ORA-00907: missing right parenthesis
   ДНН
 
1 - 11.12.20 - 15:45
(0) Возьми все условия в скобки
   acht
 
2 - 11.12.20 - 15:48
(0) > что это может быть
8.2.19.130
   trooba
 
3 - 11.12.20 - 15:49
(1) Делал, не помогает
   ДНН
 
4 - 11.12.20 - 15:52
(3)  ПО FIBDOC.DOC_CODE = FIDCMN.DOC_CODE
это тоже?

Попробуй оставить одну таблицу и без условий, проверь. Если ошибки не будет то добавь соединение, снова проверь. Потом условия и т.д.
   trooba
 
5 - 11.12.20 - 15:53
(4) С одной работает, проблема в соединении, как я понял
   trooba
 
6 - 11.12.20 - 15:54
(4) Все в скобках, это тоже, ошибка такая же, тип соединения меняешь, код ошибки становится 0
   trooba
 
7 - 11.12.20 - 16:16
Через ADO запрос работает успешно, текст

    Query = "Select fidcmn.doc_number,
            | fidcmn.doc_date, 
            | fibdoc.doc_number,
            | fibdoc.is_unload
            |    from apr.fidcmn 
            |    left outer join apr.fibdoc
            |    on fibdoc.doc_code = fidcmn.doc_code
            |    where fidcmn.recordid_dctp = 722 and fidcmn.doc_number is not null
          |    and fidcmn.doc_date >= to_date('@@@@','DD-MM-YYYY') 
            |    and fidcmn.doc_date <= to_date('####','DD-MM-YYYY')";
   trooba
 
8 - 14.12.20 - 09:08
Подниму, может у кого еще мысли появятся...
   mikecool
 
9 - 14.12.20 - 09:31
(8) не смущает, что запросы разные? попробуй свои параметры к ту_дейт привести
   trooba
 
10 - 14.12.20 - 09:36
(9) Они были 1 в 1, толку не было, что смущает? Что тут отличается? То, что период по другому или, что номер убран, который не нужен? Проблема возникает именно в соединении, как ждая из таблиц по отдельности данные выводит
   trooba
 
11 - 14.12.20 - 09:37
(9) К ту дейт? Как? В таком же формате в текст запроса? Нет- ошибка, запросы 1с не позволяют этого делать
   Конструктор1С
 
12 - 14.12.20 - 16:24
Твой запрос можно переписать на внутреннее соединение
   Конструктор1С
 
13 - 14.12.20 - 16:25
А не, вру, фильтруется только по правой таблице
   trooba
 
14 - 14.12.20 - 16:25
(12) изменял вид соединения- дает ошибку с кодом 0
   Конструктор1С
 
15 - 14.12.20 - 16:31
Попробуй через другой драйвер коннектиться
   trooba
 
16 - 14.12.20 - 16:49
(15) Через этот драйвер, через ado все работает.
   Конструктор1С
 
17 - 15.12.20 - 03:45
(16) ВИД сам по себе драйвера не поставляет, а коннектится через имеющиеся. У нас ВИД к Oracle через OraOLEDB.Oracle.1 коннектится
   sdf
 
18 - 15.12.20 - 08:18
(0) мало исходных данных:
-другие запросы работают?
-в пользовательском режиме 1с видит эти таблицы?
-если условие убрать - запрос выполнится?
-даты в оракле в каком формате?

поддерживаю идею насчет драйвера - лучше использовать нативный оракловый
   trooba
 
19 - 16.12.20 - 09:57
(18) Все да. "поддерживаю идею насчет драйвера - лучше использовать нативный оракловый" Который именно?
   trooba
 
20 - 16.12.20 - 09:59
(18) через адодб все круто, все работает. Заморочился и решил переписать на ВИД. Не выходит каменный цветок.
   trooba
 
21 - 16.12.20 - 10:00
(18) В запросе же видно, что подменяю текст с датой.... на "ДД-ММ-ГГГГ"
   Конструктор1С
 
22 - 16.12.20 - 13:29
(19) поэкспериментируй, попробуй несколько различных. Сейчас у тебя мелкософтовский, воткни оракловский


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.