Zapytanie sql syntax exception

0

Dzień dobry, mam problem z wykonywaniem zapytań sql. Piszę program, dzięki któremu będę mógł odpalać skrypty sql z konsoli. Problem polega na tym że za każdym razem, niezależnie od składni mam taki exception

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE TABLE1 (COL1 VARCHAR2(10) NULL, COL2 CHAR(3) NULL)' at line 1

Sytuacja jest o tyle ciekawa, że takie samo zapytanie, jeśli jest w zmiennej :

$sql = "CREATE TABLE TABLE1 (" +
"COL1 VARCHAR2(10) NULL, " +
"COL2 CHAR(3) NULL)";

działa poprawnie - zapytanie się wykonuje i tabela jest tworzona w bazie danych.

Do odczytywania pliku sql wykorzystuje biblioteke "apache common IO".

Wykorzystuję bazę danych oracle mysql.

0

Z góry przepraszam za niepoprawną zmienną - powinno być - String sql = ...

0

Pokaż kod który ci nie działa.

0
File f = new File("src/" + fileName);
        StringBuilder stringBuilder = new StringBuilder();
        try (LineIterator lineIterator = FileUtils.lineIterator(f, "UTF-8")) {
            while (lineIterator.hasNext()) {
                stringBuilder.append(lineIterator.nextLine());
            }
        }
0

        StringBuilder stringBuilder = new StringBuilder();
        try (LineIterator lineIterator = FileUtils.lineIterator(new File("fileName.sql"), "UTF-8")) {
            while (lineIterator.hasNext()) {
                stringBuilder.append(lineIterator.nextLine());
            }
        }

Tym kodem pobieram content z pliku sql i zapisuje do zmiennej, później zwracam zmienną z kontentem (zdebugowałem w tym miejscu, kontent jest taki jaki powinien). Zmienną przekazuje do metody execute(), w tym miejscu jest błąd.

Jeśli do metody execute przekażę zapytanie znajdujące się w zmiennej to działa.

0

Dzięki za odpowiedź, przepraszam za posty.

  Statement stmt = connection.createStatement();
  stmt.execute(String.valueOf(sql));

Oto co robię ze string builderem. Jego wynik znajduje się w zmiennej "sql".

0

Gdy umieszczasz skrypt DDL w pliku to pamiętaj o kończeniu każdego polecenia średnikiem oraz umieszczaniu każdego kolejnego polecenia w nowej linii. W innym wypaku będziesz miał takie błędy jak powyżej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1