Добрый день. Может немного не по теме вопрос. Есть база в 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? Второй день синтаксис подобрать не можем.
Это во вью которая DATA_POST мне нужно DATA_DOC сделать примерно таким: decode(SMDOCUMENTS.CREATEDAT,TO_DATE('99990101 00:00','YYYYMMDD HH24:MI'),NULL,SMDOCUMENTS.CREATEDAT) Data_Doc?
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 сижу.
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')
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