如何从C#编译存储过程?

时间:2011-04-21 12:55:57

标签: c# oracle

我想设计一个存储过程/函数创建程序,用户可以在其中创建存储过程 程序和功能。我想从我的C#程序编译sp或函数。如果发现任何错误,我想向用户显示。怎么做? Toad或SQL Navigator中提供了相同的功能。

2 个答案:

答案 0 :(得分:3)

如果您有一个实现IDbCommand的c#命令对象,那么您可以在其上调用.Prepare()方法来预编译SP并获取任何错误以反馈给用户:

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

答案 1 :(得分:1)

我手边没有可用的示例,但您可以使用execute immediate轻松运行DDL。

如果你的DDL是> 32K,你在11g,只需使用clob来存储DDL。疼痛开始w /> 32 K和10g或以下。在那里你必须使用DBMS_SQL.parse并将你的DDL作为数组传递。

为了显示编译错误,您可以首先捕获运行DDL时抛出的任何异常。然后查询'ALL_ERRORS'以查找详细的编译器消息。