Я пытаюсь выполнить весь каталог файлов .SQL
на Java.Создание хранимой процедуры из файла
Я изо всех сил пытаюсь выполнить хранимую процедуру. Я до сих пор нашел this (самое полезное), включая, к сожалению, мертвую ссылку. Я также загрузил Liquibase, но я не могу понять, как я должен использовать его для этой цели.
В моем текущем коде, я разделить файлы, включая процедуры в различные заявления:
(Заявления расщепляются в векторе [String] и выполняются в цикле)
Пример:
//File f;
//Statement st;
Vector<String> vProcedure = getProcedureStatements(f, Charset.defaultCharset(), "//");
for (Iterator<String> itr = vProcedure.iterator(); itr.hasNext();)
st.execute(itr.next());
System.out.println(f.getName() + " - done executing.");
Вектор содержит четыре элемента (см. SQL-код #SPLIT x).
DROP PROCEDURE IF EXISTS `Add_Position`; #SPLIT 1
DELIMITER // #SPLIT 2
CREATE PROCEDURE `Add_Position`
(
IN iO_ID INT,
IN iCID INT,
IN iWID INT,
IN iA INT
)
BEGIN
#statements;
END
// #SPLIT 3
DELIMITER ; #SPLIT 4
Result при попытке выполнить #SPLIT 2:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'DELIMITER //' at line 1
Q: Может ли кто-нибудь сказать мне, если есть Exteral библиотека, я мог бы использовать, или как LiquiBase работает? Я не могу заставить его работать на JDBC-пути.
Просто для того, чтобы понять, что вы разделили файл .sql на отдельные утверждения и затем выполнили их. Какую ошибку вы получаете? Какой вызов JDBC вы используете? Вот пример кода JDBC http://www.xyzws.com/javafaq/how-to-use-jdbc-java-to-dynamically-create-a-stored-procedure/171 – Mike
Что вы подразумеваете под _ «Я могу 't заставить его работать JDBC-way "_ –
Обновлен мой вопрос. – Blacktempel