问题标签 [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.
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 和两者中,但这些设置都不起作用。
c# - 使用 .net core 和 Oracle.ManagedDataAccess.Core 从 Oracle 查询中获取 ID
我有以下代码:
在这里,我可以从我的集合中插入多行数据,但我需要以某种方式返回插入行的 ID。有人可以指出我正确的方向,或者是否有更好的方法来插入对象数组并取回 ID。
vb.net - Oracle.ManagedDataAccess.Client 并使用 addwithvalue / DBNull 添加参数
这是我的查询和参数列表,我得到了消息“并非所有变量绑定”
如果我在参数列表的查询中只使用了 client_name,那么它可以工作,但是当我使用 client_name 和产品时,我得到了消息“不是所有变量绑定”
c# - 使用事务与 Oracle.ManagedDataAccess.EntityFramework 获取插入记录的 ID 时出现问题
在一个.Net framework
项目中,我添加了一个EF 6.x DbContext Generator
using 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,或者从序列中选择是不准确的,并且是模糊的。
任何帮助将不胜感激。
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?
asp.net - Oracle 托管数据访问 - 如何在代码中动态配置 TNS_ADMIN?
有没有办法通过代码设置或更改 TNS_ADMIN 设置?其他人在这里问了这个问题,但没有回答。
asp.net - 用于 oracle 的 asp.net core 2.2 身份自定义存储提供程序
我一直在寻找,但到目前为止还没有找到处理核心 2.2 身份并为 oracle 创建自定义存储提供程序的示例(当前需要 ADO.net 和 CRUD 方法,而不是 EF)。
任何人都可以指出一个很好的例子或一个很好的参考吗?
c# - Oracle Managed Data Reader 为一个数据库表返回 DBNull
问题:
我正在使用 Oracle 托管数据访问客户端连接到 Oracle eBS 数据库。从一个表中选择一个值时,我得到一个结果;更改表时,我得到一个空值。
背景:
在我的 SQLDeveloper 客户端中,我可以连接到数据库并运行以下查询:
然后,在 C# 中,我使用完全相同的凭据连接到数据库(因此它不应该是数据库权限问题)。
运行此代码,我得到一个消息框,返回我所期望的:03F.211
但是在切换这些注释行的情况下运行代码,我收到一个错误,指示数据库为空:
什么会导致一个查询返回结果而另一个不返回?
(最后 - 如果以上任何内容都很丑陋,请原谅我对 C# 的无知。多年的 Oracle 经验 - 有史以来第一个 C# 程序...... :))
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?
c# - 在 EF Core 中扩展 DbSet 添加
使用 EfCore 2.2.4 我试图DbSet
在我的一个 Db 上下文中覆盖基本实现。
我正在使用Oracle.ManagedDataAccess.Core
2.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
实例,或者是否有一种更简单且仍然通用的方法来实现覆盖或扩展?OracleDbContext
DbContext
DbContext.Add()