Я пытаюсь создать сквозной оператор SQL из моего MS Access 2003 (да, я знаю, что это oldschool, но мои руки связаны: /) с БД Oracle на сервере.
Короче говоря, серверная таблица содержит модели морозильников, где каждая модель существует от 1 до 5 раз с идентификатором, перед которым стоит значение, указывающее ее состояние. Проблема в том, что я должен получить все «версии» морозильника. В Access я бы написал что-то вроде:
SQL = "SELECT Right(FREEZERS.ID,4) FROM FREEZERS WHERE Right(FREEZERS.ID,4) = '" & myID & "'"
Но это вызывает ошибку в моем сквозном запросе к Oracle. Можно ли даже написать подобные выражения в сквозном запросе?
Я использую vba и QueryDef с строкой подключения к серверу (которая прекрасно работает, если я убираю выражение Right () -), а затем открываю набор записей с результатом.
Заранее спасибо, Вигго
EDIT:
Ах, прости ..
Взял последний гугл и выскочил ответ:
Очевидно, что Oracle имеет другой синтаксис для некоторых из этих функций. В этом случае я обнаружил, что в Oracle есть SUBSTR-функция и LENGTH-функция, что решает мою проблему ..
Для других в поиске: ключ ищет синтаксис Oracle, а не сквозной синтаксис.
Источник:
http://peoplesofttipster.com/2008/08/18/substringing-and-oracle-sql-basic-trick/
Надеюсь, это может помочь кому-то еще:)