Я хочу выполнить некоторые программные манипуляции со схемой в базе данных оракула на С#. Поэтому я борюсь с некоторыми основными проблемами.
Операторы ddl sql находятся в файле сценария. Я не хочу использовать sqlplus.exe, но хочу использовать OracleCommand из сборок ODP.NET (System.Oracle.DataAccess). Вот пример моего файла сценария:
скрипт.sql:
DROP TABLE ABCDEF;
DROP TABLE GHIJKL;
Я хочу отметить:
- Сценарий содержит операторы DDL (язык определения данных)
- Скрипт содержит пустые строки
- Сценарий содержит более одного оператора.
Следующий код должен выполнить мой скрипт:
var content = File.ReadAllText("script.sql");
using (var oracleConnection = new OracleConnection(_connectionString))
{
oracleConnection.Open();
using (var command = new OracleCommand(content) { Connection = oracleConnection })
{
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
}
Выполняя этот код, я получаю ошибку оракула:
Oracle.DataAccess.Client.OracleException: ORA-00911: недопустимый символ
Я думаю, может быть, есть какая-то проблема с форматированием утверждений. Любая подсказка приветствуется. Спасибо.
---ИЗМЕНИТЬ---
Подводя итог моим потребностям простым способом: я ищу подход для выполнения любого сценария sql/ddl, который выполняется SQL Plus, программно с помощью C#.