gpt4 book ai didi

asp.net - 使用asp.net从windows服务器连接到Red hat linux上的oracle 11g

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:39 27 4
gpt4 key购买 nike

我们使用 sql server 2008r2 在 Windows 服务器上使用 ASP.NET 开发和测试了我们的应用程序。现在我们有一个需求,将数据库从windows迁移到red hat linux上的oracle。

我们还没有设置基础设施来测试它。同时我想知道是否有人成功地做过这种事情。指向任何资源的指针将是一个很大的优势。

更改连接字符串是唯一需要做的事情,还是 Linux 中有任何特定配置允许这样做?

一旦我准备好环境,我会验证这一点,但如果有人有任何类似的经验,请分享。

提前致谢。

P.S:为了将表结构、存储过程等迁移到 Oracle,我们将使用 Sql Developer 工具。

最佳答案

我想回答我的问题,因为迁移到 oracle 并不是那么简单,但是有一些技巧可能会帮助任何人在 windows 或 linux 上迁移到 oracle 而不那么头疼。

首先,Sql 开发人员工具很好地将 sqlserver 模式和数据迁移到 oracle,包括存储过程、约束、触发器等。

它在数据类型映射方面也做得很好,并在需要时提供重新映射数据类型的选项。

一些注意事项和预防措施。

  1. Oracle 对存储过程名称的长度有大约 30 个字符的限制。这是您需要进行一些手动重命名的区域,因为当迁移 SP 或名称超过 30 个字符的标识符可能会被截断时。

  2. 您可能面临的另一个常见问题是日期插入和格式设置。您可以使用以下代码片段来避免头痛。常见错误是“无效月份”。

OracleConnection conn = new OracleConnection(oradb);//C#conn.Open();OracleGlobalization session = conn.GetSessionInfo();session.DateFormat = "DD.MM.RR";//在这里根据需要更改格式conn.SetSessionInfo(session);

  1. 最烦人的错误是在插入或更新数据或相关错误时将字符转换为数字。

这里的问题是,当您将参数添加到 sql 提供程序的命令对象时,绑定(bind)是按名称进行的,但对于 Oracle.DataAccess,默认绑定(bind)是按位置进行的。这是让我头疼的帖子。 ODP .NET Parameter problem with uint datatype

你可以做的是设置command.BindByName = true;

  1. 迁移返回数据的 SP 时,oracle 创建一个输出参数引用游标。在构造命令参数时需要注意这一点。

例如 OracleParameter refp = new Oracle.DataAccess.Client.OracleParameter("cv_1", OracleDbType.RefCursor, ParameterDirection.InputOutput);

命令.参数.Add(refp);

  1. 此外,sqlserver 要求 SP 的参数以“@”为前缀,而 oracle 则不需要。这可以在您的数据层中轻松解决。

  2. 此外,由于 Oracle 中没有位数据类型,number(1) 可以正常工作。如果需要,您可能需要将 bool 值转换为数字。

希望这有助于避免迁移问题。如果遇到问题,我会发布更多问题。

关于asp.net - 使用asp.net从windows服务器连接到Red hat linux上的oracle 11g,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com