首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ODP.NET过程编译

ODP.NET过程编译
EN

Stack Overflow用户
提问于 2010-05-05 07:08:21
回答 2查看 1K关注 0票数 3

当我尝试使用ODP.NET执行create procedure时,返回ORA-24344: success with compilation error。但是,当我在SQL Developer中运行相同的语句时,它编译成功。有人知道我需要修改什么才能编译我的过程吗?是字符集问题吗?

我使用的是Oracle10gExpress、.NET 3.5SP1和ODP.NET 2.111.7.20 (来自Oracle.DataAccess.dll的版本)

代码语言:javascript
复制
    [TestMethod]
    public void OdpNet_CreateProcedure()
    {
        ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["ODP.NET"];
        using (var con = new OracleConnection(settings.ConnectionString))
        {
            con.InfoMessage += new OracleInfoMessageEventHandler(con_InfoMessage);
            con.Open();

            var cmd = new OracleCommand();
            cmd.Connection = con;

            cmd.CommandText = @"
                CREATE OR REPLACE PROCEDURE TABLE1_GET
                (
                  P_CURSOR OUT SYS_REFCURSOR
                )
                IS
                BEGIN

                  OPEN P_CURSOR FOR
                  SELECT * 
                  FROM TABLE1;

                END;";

            cmd.ExecuteNonQuery(); // ORA-24344: success with compilation error

            cmd.CommandText = @"ALTER PROCEDURE TABLE1_GET COMPILE";
            cmd.ExecuteNonQuery(); // ORA-24344: success with compilation error
        }
    }

    void con_InfoMessage(object sender, OracleInfoMessageEventArgs eventArgs)
    {
        System.Diagnostics.Debug.WriteLine(eventArgs.Message);
    }
EN

回答 2

Stack Overflow用户

发布于 2010-05-05 09:47:53

解决方案是:

代码语言:javascript
复制
cmd.CommandText = cmd.CommandText.Replace("\r\n", "\n");
票数 5
EN

Stack Overflow用户

发布于 2010-05-05 08:15:53

执行SELECT * FROM USER_ERRORS命令,您应该会看到记录为错误的内容。可能会有一些奇怪的人物潜入..

PS。在应用程序中创建过程似乎很奇怪。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2769561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档