【问题标题】:apply a database program (package, function or script )into oracle database from c#从 c# 将数据库程序(包、函数或脚本)应用到 oracle 数据库中
【发布时间】:2013-07-20 10:26:17
【问题描述】:

我正在尝试通过使用 odp.net 将一个函数应用到我的 oracle 数据库中,但我不能,您能帮帮我吗? 该程序假设为我将所有后端对象应用到我的数据库中。(一个包含多个 ddl 脚本[插入、创建表或删除和更改表]、应用函数、过程或包的文件)

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

这个软件应该和PLEdit软件一样工作。

文本框1.文本:

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);
        }

【问题讨论】:

  • 那么问题出在哪里?您看到异常了吗?
  • 您遇到什么错误?我注意到您正在丢弃 try catch 块中的异常...也许您可以尝试添加 MessageBox.Show(ex.Message);
  • @Belogix 我是 -1 并且我没有收到任何异常,还有一件事我无法将 PLedit 中的函数视为有效或无效对象。
  • 您的连接字符串是否指定了一个有足够权限执行您正在尝试的操作的有效用户?
  • 是的,我正在使用超级用户,正如我所说我可以打开连接和关闭连接,但问题是我的结果是 -1,我在应用函数列表中看不到我的函数...

标签: c# oracle odp.net


【解决方案1】:
  1. 请记住,查看 DDL 您在连接定义的架构中创建对象。如果你连接的超级用户是“系统”,那就是寻找你的对象的地方。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 2013-07-21
    • 2011-03-30
    • 2018-06-15
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多