从c#将数据库程序(包,函数或脚本)应用到oracle数据库中

时间:2013-07-01 10:54:06

标签: c# oracle odp.net

我试图通过将odp.net应用到我的oracle数据库中来应用一个函数,但我不能,你介意请帮帮我吗? 该程序假设将我的所有后端对象应用到我的数据库中。(包含多个ddl脚本[insert,create table或delete and alter table]的文件,应用函数,过程或包)

我正在为客户端的自动应用对象执行此活动。

该软件应与PLEdit软件一样工作。

textbox1.text:

create or replace FUNCTION bfn_severity_temp (p_severity                CMMT_FIX_MASTER.N_severity%TYPE)
    RETURN VARCHAR2

    IS
   BEGIN
        IF p_severity = 1 THEN
            RETURN 'Mission Critical';
        ELSIF p_severity = 2 THEN
            RETURN 'High';
        ELSIF p_severity = 3 THEN
            RETURN 'Medium';
        ELSIF p_severity = 4 THEN
            RETURN 'High';
        END IF;
   END;

我的c#代码如下:

try{
        OracleConnection oConn = new OracleConnection(ConnectionString);

            //OracleTransaction trans = oConn.BeginTransaction(IsolationLevel.ReadCommitted);

            OracleCommand oc = new OracleCommand();
            //oc.CommandType = CommandType.TableDirect;
            oc.CommandText = textBox1.Text;
            //oc.Transaction = trans;
            oc.Connection = oConn;
            int i  = 0;
            oConn.Open();
            i = oc.ExecuteNonQuery();
            oConn.Close();
            MessageBox.Show(i.ToString());
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            MessageBox.Show(ex.Message);
        }

1 个答案:

答案 0 :(得分:1)

  1. 请记住,在DDL中,您可以在连接定义的模式中创建对象。如果你连接的超级用户是“系统”,那么就是寻找你的对象的地方。

  2. 您的对象在创建后可能无效,但会在第一次使用时编译(如果对象是可编译的) 或者,您可以添加以下alter function <name> compile