Mirki, mam taki problem. Próbuję stworzyć kwerendę przekazującą w MS Access i wrzucić do niej zapytanie SQL, połączenie przez ODBC do bazy Oracle.
Zapytanie działa w narzędziach Oracle (SQL Developer), ale podczas komunikacji via ODBC jest problem.
Moje zapytanie zawiera konstrukcję CASE (...) END. Słówko END jest mylnie interpretowane przez sterownik ODBC (albo jakąś inną część tego mechanizmu) na jakimś metapoziomie jako koniec jakiejś metainstrukcji i wywala błąd.
@blinkin: Luknij tu. MS Access nie obsługuje wyrażenia CASE, z poziomu SQL Developera CASE działa bo zapytanie uruchamiane jest w silniku oracle więc interpreter wie, że taka konstrukcja jest dozwolona. Możesz spróbować funkcji switch jeśli spełni wymagania w kontekście zapytania lub IIF() ale switch jest bardziej elastyczny jeśli chodzi o większą liczbę warunków. Funkcje dostępne w MS Access SQL.
@Supaplex: @Esharell: Dzięki za pomoc, znalazłem rozwiązanie. Sterownik ODBC Oracle nie pozwala na wstawienie średnika jeśli w treści zapytania pojawia się słowo END. Usunąłem średnik i działa (⌐͡■͜ʖ͡■)
@blinkin: Nie pracowałem nigdy w konfiguracji Access -> ODBC -> Oracle więc sugerowałem się odpowiedziami ze stackoverflow. Dobrze, że napisałeś w czym tkwił problem.
Próbuję stworzyć kwerendę przekazującą w MS Access i wrzucić do niej zapytanie SQL, połączenie przez ODBC do bazy Oracle.
Zapytanie działa w narzędziach Oracle (SQL Developer), ale podczas komunikacji via ODBC jest problem.
Moje zapytanie zawiera konstrukcję CASE (...) END. Słówko END jest mylnie interpretowane przez sterownik ODBC (albo jakąś inną część tego mechanizmu) na jakimś metapoziomie jako koniec jakiejś metainstrukcji i wywala błąd.
Jakiś pomysł jak to obejść?
#access #bazydanych #oracle #office
Potwierdzenie przyczyny mojego błędu:
http://stackoverflow.com/questions/27062730/ora-00911-invalid-character-via-odbc-adhoc-sql-within-comments
Sterownik ODBC Oracle nie pozwala na wstawienie średnika jeśli w treści zapytania pojawia się słowo END. Usunąłem średnik i działa (⌐ ͡■ ͜ʖ ͡■)