问题标签 [oracle-manageddataaccess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4019 浏览

c# - Web.Config 中的 Oracle.ManagedDataAccess TNS_ADMIN

我正在尝试将使用 Oracle.ManagedDataAccess 库的解决方案配置为在连接字符串中使用 TNS 名称而不是显式数据源。在进行任何更改之前,程序运行正常,但我所有配置 TNS 设置的尝试都失败了。

我在我的计算机上本地有我的 TNS 文件,用于在 C:\oracle\tns\tnsnames.ora 上进行开发。

我已经更新了 web.config 中的连接字符串,以使用 TNS 文件中存在的别名:

还添加了 configSection 以及库的配置:

当我尝试运行程序时,虽然我得到了错误ORA-12154: TNS:could not resolve the connect identifier specified。我不确定我配置不正确,因为它没有提供太多信息。

需要注意的一点是,该解决方案由一个带有 web.config 的 MVC 项目和一个处理数据库访问的类库组成。引用Oracle.ManagedDataAccess在类库中。我曾尝试将 Oracle 配置部分(及其 configSection)放在 web.config、app.config 和两者中,但这些设置都不起作用。

0 投票
1 回答
336 浏览

c# - 使用 .net core 和 Oracle.ManagedDataAccess.Core 从 Oracle 查询中获取 ID

我有以下代码:

在这里,我可以从我的集合中插入多行数据,但我需要以某种方式返回插入行的 ID。有人可以指出我正确的方向,或者是否有更好的方法来插入对象数组并取回 ID。

0 投票
1 回答
2742 浏览

vb.net - Oracle.ManagedDataAccess.Client 并使用 addwithvalue / DBNull 添加参数

这是我的查询和参数列表,我得到了消息“并非所有变量绑定”

如果我在参数列表的查询中只使用了 client_name,那么它可以工作,但是当我使用 client_name 和产品时,我得到了消息“不是所有变量绑定”

0 投票
1 回答
282 浏览

c# - 使用事务与 Oracle.ManagedDataAccess.EntityFramework 获取插入记录的 ID 时出现问题

在一个.Net framework项目中,我添加了一个EF 6.x DbContext Generatorusing Visual Studio,它添加了一个.edmx包含一些.tt文件的文件;实现了我的database first结构。

然后我连接到我的oracle数据库并使用如下模型将我的表添加到其中:

Oracle.ManagedDataAccess.EntityFramework安装了 Nuget 包。

两个表都具有ID作为主键,trigger并且sequence将为ID列提供唯一值。

现在我想开始一个事务以在相关的表中插入一些记录:

问题是在db.USER_TYPES.Add(userType); db.SaveChanges()我们知道userType.ID遗嘱仍然存在之后0(因为我们使用的是 oracle)。

网络上有一些解决方案建议通过执行选择最大 ID 查询来获取最新插入的 ID,或者在插入之前获取下一个序列值。但是当我们使用Transaction时,db 中并没有实际的记录来选择 max,或者从序列中选择是不准确的,并且是模糊的。

任何帮助将不胜感激。

0 投票
4 回答
3494 浏览

c# - Getting output buffer from DBMS_OUTPUT.GET_LINES in C#

I'm trying to get the output from the DBMS_OUTPUT.PUT_LINE() method in my anonymous PL/SQL block through C#. I've looked at a couple of other related questions here, but am still having trouble. The return code of executing the anonymous block is returning -1, which should be correct based on the docs.

I'm setting the DBMS_OUTPUT.ENABLE() to NULL in order to not set a specific buffer size, then using the DBMS_OUTPUT.GET_LINES() method in order to get the lines from that buffer.

It returns nothing in the buffer (An empty OracleString[]) and returns 0 lines. My anonymous PL/SQL block is simple like this, but should work for any.

What am I missing?

0 投票
0 回答
61 浏览

asp.net - Oracle 托管数据访问 - 如何在代码中动态配置 TNS_ADMIN?

有没有办法通过代码设置或更改 TNS_ADMIN 设置?其他人在这里问了这个问题,但没有回答。

将设置放入代码 - Oracle Managed Data Access

0 投票
2 回答
477 浏览

asp.net - 用于 oracle 的 asp.net core 2.2 身份自定义存储提供程序

我一直在寻找,但到目前为止还没有找到处理核心 2.2 身份并为 oracle 创建自定义存储提供程序的示例(当前需要 ADO.net 和 CRUD 方法,而不是 EF)。

任何人都可以指出一个很好的例子或一个很好的参考吗?

0 投票
1 回答
179 浏览

c# - Oracle Managed Data Reader 为一个数据库表返回 DBNull

问题:

我正在使用 Oracle 托管数据访问客户端连接到 Oracle eBS 数据库。从一个表中选择一个值时,我得到一个结果;更改表时,我得到一个空值。

背景:

在我的 SQLDeveloper 客户端中,我可以连接到数据库并运行以下查询:

然后,在 C# 中,我使用完全相同的凭据连接到数据库(因此它不应该是数据库权限问题)。

运行此代码,我得到一个消息框,返回我所期望的:03F.211

但是在切换这些注释行的情况下运行代码,我收到一个错误,指示数据库为空:

DbNull 错误

什么会导致一个查询返回结果而另一个不返回?

(最后 - 如果以上任何内容都很丑陋,请原谅我对 C# 的无知。多年的 Oracle 经验 - 有史以来第一个 C# 程序...... :))

0 投票
1 回答
2990 浏览

oracle - 无法在 Powershell 中使用加载的 Oracle.ManagedDataAccess 程序集

我正在尝试使用 Powershell 和 Oracle.ManagedDatabaseAccess.dll 连接到现有的 oracle 数据库。我使用相同的库在 C# 中运行代码。程序集已加载,但我无法使用它。

我正在使用 Win10 和 Powershell ISE。我还使用 VS2017/15.3.2 和 .Net 4.7.02046。

我尝试使用根本不起作用的“Add-Type -AssemblyName”和“Add-Type -Path”。两个选项都立即显示错误。

我可以打电话

但我得到了:

我使用 gcautil 手动将程序集添加到 GAC。现在我明白了

现在当我打电话时:

我收到以下错误:

我阅读了有关编译小型 C# 控制台应用程序(因为它有效)并从 powershell 调用它的解决方案。这可能是可行的,但是我真的很想了解这里的问题。任何帮助是极大的赞赏。

更新/编辑:

Netstandard2.0.0.0 是 Oracle.ManagedDataAccess.dll 的要求,它也必须安装在我的 VS 项目中。

System.IO.Stream 应该在 PS 中可用而无需加载。可能是版本冲突,因为我的主要开发环境是 .Net 4.7.02046?

0 投票
0 回答
1035 浏览

c# - 在 EF Core 中扩展 DbSet 添加

使用 EfCore 2.2.4 我试图DbSet在我的一个 Db 上下文中覆盖基本实现。

我正在使用Oracle.ManagedDataAccess.Core2.18.6,如果我尝试调用context.Customer.Add(new Customer());(客户中的所有字段都可以为参数,除了主键RECORDNO)我得到错误:

无法将 NULL 插入 (SCHEMA.CUSTOMER.RECORDNO)

RECORDNO我意识到在通过 EfCore 提交更改之前,我需要计算出序列值并将其添加到实体中,并希望通过DbSet.Add如下扩展来做到这一点:

但是,当我现在调用context.Customer.Add(new Customer());该值为 null 时context.Customer

我如何正确地注册aswell 的DbContext实例,或者是否有一种更简单且仍然通用的方法来实现覆盖或扩展?OracleDbContextDbContextDbContext.Add()