Я хочу экспортировать таблицы своей базы данных H2 в отдельные файлы CSV.
Я делаю это, добавляя в конец файла. sql методы CSVWRITE, например:
CALL CSVWRITE ('table.csv', 'SELECT * FROM TABLE ORDER BY ID', 'charset=UTF-8');
CALL CSVWRITE ('table1.csv', 'SELECT * FROM TABLE1 ORDER BY ID', 'charset=UTF-8');
Проблема в том, что иногда таблица может не существовать, и я получаю следующее исключение:
Exception in thread "main" org.h2.jdbc.JdbcSQLException: Table "TABLE" not found; SQL statement:
SELECT * FROM TABLE ORDER BY ID [42102-197]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.command.Parser.readTableOrView(Parser.java:5920)
at org.h2.command.Parser.readTableFilter(Parser.java:1430)
at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:2138)
at org.h2.command.Parser.parseSelectSimple(Parser.java:2287)
at org.h2.command.Parser.parseSelectSub(Parser.java:2133)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1946)
at org.h2.command.Parser.parseSelect(Parser.java:1919)
at org.h2.command.Parser.parsePrepared(Parser.java:463)
at org.h2.command.Parser.parse(Parser.java:335)
at org.h2.command.Parser.parse(Parser.java:307)
at org.h2.command.Parser.prepareCommand(Parser.java:278)
at org.h2.engine.Session.prepareLocal(Session.java:611)
at org.h2.engine.Session.prepareCommand(Session.java:549)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247)
at org.h2.jdbc.JdbcStatement.executeQuery(JdbcStatement.java:78)
at org.h2.tools.Csv.write(Csv.java:167)
at org.h2.expression.Function.getValueWithArgs(Function.java:1556)
at org.h2.expression.Function.getValue(Function.java:567)
at org.h2.command.dml.Call.query(Call.java:65)
at org.h2.command.CommandContainer.query(CommandContainer.java:114)
at org.h2.command.Command.executeQuery(Command.java:202)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:227)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:205)
at org.h2.tools.RunScript.process(RunScript.java:262)
at org.h2.tools.RunScript.process(RunScript.java:192)
at org.h2.tools.RunScript.process(RunScript.java:329)
at org.h2.tools.RunScript.runTool(RunScript.java:143)
at org.h2.tools.RunScript.main(RunScript.java:70)
Как я могу проверить, существует ли таблица, прежде чем я вызову CSVWRITE?
Спасибо!