Как скомпилировать хранимую процедуру из C #? - PullRequest
1 голос
/ 21 апреля 2011

Я хочу разработать программу создания хранимых процедур / функций, в которой пользователь может создавать хранимые процедуры и функции.Я хочу скомпилировать sp или функцию из моей программы на C #.Если обнаружена какая-либо ошибка, я хочу показать ее пользователю.Как это можно сделать?Та же функциональность доступна в Toad или SQL Navigator.

Ответы [ 2 ]

3 голосов
/ 21 апреля 2011

Если у вас есть объект команды c #, который реализует IDbCommand, вы можете вызвать для него метод .Prepare (), чтобы предварительно скомпилировать SP и получить любые ошибки для обратной связи с пользователем:

http://msdn.microsoft.com/en-us/library/system.data.idbcommand.prepare(v=vs.71).aspx

1 голос
/ 21 апреля 2011

У меня нет рабочего примера под рукой, но вы можете довольно легко запустить DDL с помощью execute immediate.

Если ваш DDL> 32K, а вы на 11g, просто используйте clobхранить DDL.Боль начинается с> 32 К и 10 г или ниже.Там вам нужно будет использовать DBMS_SQL.parse и передать свой DDL в качестве массива.

Чтобы показать ошибки компиляции, вы можете сначала перехватить любые исключения, выданные при запуске DDL.Затем запросите «ALL_ERRORS», чтобы найти подробные сообщения компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...