[ОТВЕТИТЬ]
Опции темы
31.03.2010 10:30  
Vlad_German
Добрый день. Может немного не по теме вопрос. Есть база в Oracle9i Release 9.2.0.8.0. Есть 1С 8.1. Пытаемся по ADO получить данные через MS OLE DB provider for Oracle. Строка соединения
СтрСоединения = "Provider=MSDAORA.1;Data Source=" + Спис.Получить(0) + ";User ID="+ Спис.Получить(3) + ";Password=" + Спис.Получить(4)+";Persist Security Info=true";
Соединение проходит. Дальше открываем подключение и даем команду на получение данных в рекордсет
СоединениеSQL = Новый COMObject("ADODB.Command");
СоединениеSQL.ActiveConnection = Подключение;
СоединениеSQL.CommandType = 1;
СоединениеSQL.CommandText = "SELECT * FROM SUPERMAG.DATA_POST where DATA_DOC>= "+ Формат(ДатаНачала,"ДФ=yyyy-MM-dd")+"T00:00:00+03:00";
И при выполнении команды
ЗаписиSQL = Новый ComObject("ADODB.RecordSet");
ЗаписиSQL = СоединениеSQL.Execute();
На последней строке вылетаем с ошибкой ORA-00933 команда к ораклу в собранном виде получается такая
SELECT * FROM SUPERMAG.DATA_POST where DATA_DOC>= 2010-03-31T00:00:00+03:00
SQL плюс ее отрабатывает без ошибок. Никто ни писал импорт через ADO? Второй день синтаксис подобрать не можем.
 
31.03.2010 10:48  
OlegON
пишите принудительное приведение типа данных, в этом случае, судя по всему, to_date.
Цитата:
desc SUPERMAG.DATA_POST
в плюсе сделай
 
31.03.2010 11:00  
Vlad_German
Это во вью которая DATA_POST мне нужно DATA_DOC сделать примерно таким: decode(SMDOCUMENTS.CREATEDAT,TO_DATE('99990101 00:00','YYYYMMDD HH24:MI'),NULL,SMDOCUMENTS.CREATEDAT) Data_Doc?
 
31.03.2010 11:06  
OlegON
какой-то ты бред написал... desc сделай, будет видно какой запрос надо
 
31.03.2010 11:07  
Mtirt
А просто "To_date(DATA_DOC, 'DD.MM.YYYY H24:Mi:SS')>=To_date("+Формат(ДатаНачала,"ДФ=yyyy-MM-dd")+" 00:00:00+03:00"+" 'DD.MM.YYYY H24:Mi:SS')"
 
31.03.2010 11:15  
Vlad_German
1 SELECT * FROM SUPERMAG.DATA_POST where DATA_DOC>= 2010-03-31T00:00:00+03:00 desc data_post
2* run
sP2-0552: Переменная привязки "00" не описана.
sQL>

Это я уже видел, насколько я понимаю неправильный формат времени? Особо не пинайте я всю жизнь на MS SQL сижу.
 
31.03.2010 11:29  
Vlad_German
Цитата:
Сообщение от Mtirt
А просто "To_date(DATA_DOC, 'DD.MM.YYYY H24:Mi:SS')>=To_date("+Формат(ДатаНачала,"ДФ=yyyy-MM-dd")+" 00:00:00+03:00"+" 'DD.MM.YYYY H24:Mi:SS')"
если так то ORA-00907: отсутствует правая скобка
полная строка запроса: SELECT * FROM SUPERMAG.DATA_POST where To_date(DATA_DOC, 'DD.MM.YYYY H24:Mi:SS')>= To_date(31-03-2010 00:00:00+03:00 'DD.MM.YYYY H24:Mi:SS')
 
31.03.2010 11:34  
Mtirt
вторая часть так: To_date('31.03.2010 00:00:00', 'DD.MM.YYYY H24:Mi:SS')
 
31.03.2010 11:43  
Vlad_German
SELECT * FROM SUPERMAG.DATA_POST where To_date(DATA_DOC, 'DD.MM.YYYY H24:Mi:SS')>= To_date(31-03-2010 00:00:00 'DD.MM.YYYY H24:Mi:SS')
И все равно ORA-00907
 
31.03.2010 11:47  
Mtirt
Кавычки специально пропустил?
И запятую...
 
 


Опции темы



Часовой пояс GMT +3, время: 11:00.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.