TABLE OF VARCHAR2的输出参数 Oracle odp.net
我有这种类型: TYPE tipo_TableVarchar2 IS TABLE OF VARCHAR2(1000) INDEX BY BINARY_INTEGER; 和过程get_array (p_arr out TableVarchar2 )是... OracleParameter param = new OracleParameter(); param.OracleDbType = OracleDbType.Varchar2; param.CollectionType = OracleCollectionType.PLSQLAssociativeArray; param.ParameterDirection = ParameterDirection.Output; cm.Parameters.Add(param); 如何使用OracleParameter的输出获取值? 解决方案 查看Oracle 11G ODP.NET驱动程序,该驱动程序使您可以通过O
0 2023-05-19
编程技术问答社区
一个有嵌套表参数的Oracle存储过程能否从ODP.NET中调用?
我有一个存储过程,该过程具有几个嵌套表的参数. CREATE TYPE FOO_ARRAY AS TABLE OF NUMBER; CREATE TYPE BAR_ARRAY AS TABLE OF INTEGER; CREATE PROCEDURE Blah( iFoos IN FOO_ARRAY, iBars IN BAR_ARRAY, oResults OUT SOMECURSORTYPE ) AS BEGIN OPEN oResults FOR SELECT * FROM SomeTable T JOIN TABLE(iFoos) foos ON foos.column_value = T.foo JOIN TABLE(iBars) bars ON bars.column_value = T.bar; END 使用odp.net(oracle.dataaccess.dll),有没有办法调用此存储过程并将数组传递到
0 2023-05-19
编程技术问答社区
如何从C#向Oracle存储过程传递一个表值参数
我有一个名为CREATE_CASE_EXL的Oracle存储过程: PROCEDURE CREATE_CASE_EXL(P_RICdata RICTab, P_sACTION_TYPE IN VARCHAR2); 其中RICTab是一种自定义类型: TYPE RICTab IS TABLE OF MMSRRicRec INDEX BY BINARY_INTEGER; TYPE MMSRRicRec IS RECORD ( RIC VARCHAR2(32), FID_NO NUMBER(8), REC_ID NUMBER(8), MMS_ACTION VARCHAR2(1) ); 我在pl/sql中运行此代码以执行CREATE_CASE_EXL: DECLARE pTE_RICS RICTab BEGIN pTE_RICS(1).RIC :
0 2023-05-19
编程技术问答社区
实体数据模型向导中没有Oracle数据源
我正在使用odp.net,我需要从数据库中生成ORM. 我已经安装了: Visual Studio 2010 Ultimate ODAC1120250BETA_ENTITYFRAMEWORK_X64.ZIP 在服务器导出器中,我可以看到Oracle数据库的数据源,并且可以连接到远程Oracle服务器并运行查询. 当我添加ado.net实体数据模型并想从数据库生成代码时,我看不到像服务器资源管理器中的oracle的数据源. 您是否需要下载一些额外的东西来使用odp.net运行实体框架? 编辑: 使用最新版本的odp.net 取消选中Microsoft Transaction Server的Oracle Services ....在安装期间 解决方案 您必须安装ODAC 11.2.0.2.2.30或更高版本, 32位版本. 早期版本中不支持实体框架,目前在64位ODAC中不支持它. 看: https://forums.oracle.com
6 2023-05-14
编程技术问答社区
如何卸载已废弃的Oracle数据提供者?
我正在尝试为Visual Studio 2015安装Oracle开发人员工具,以便我可以从DEV Machine从SSRS/Visual Studio Projects连接到远程11G数据库.当我进入下载页面时,我会看到: 所以我去了Visual Studio确定我是否已经有ODT,并找到了这一点: 但是,我认为我没有安装此ODP,它只是带有Visual Studio安装.有没有办法卸载此提供商,还是可以在顶部安装新的ODT?最后,当我对这篇文章进行更多研究时,我变得更加不确定:ODAC是否包括ODP.NET? 谢谢. 解决方案 Microsoft OLE DB Provider for Oracle和.NET Framework Data Provider for Oracle是来自Microsoft的提供商,即它们是Windows安装的一部分. 的确,它们是从很多年来贬低的,但是没有理由将其删除.他们只是两个小dll. 从Oracle安装Oracle
0 2023-05-14
编程技术问答社区
具有Oracle高级安全选项的管理型Oracle客户端
10月14日,Oracle发布了其Oracle托管客户端的最新版本,该版本被描述为支持网络数据加密. technetwork/topics/dotnet/tech-info/odac12cr4ds-2704217.pdf https://www.nuget.orget.org/packages/oracle.manaveddataaccess/P> 尽管由于某种原因尝试了多种配置,但我们仍然无法使其正常工作.我们不断获得臭名昭著的ORA-12570: Network Session: Unexpected packet read error例外The provider did not return a ProviderManifestToken string.警报日志中的错误是以下TNS-12599: TNS:cryptographic checksum mismatch 我们确实与DBA确认了我们正在使用支持的加密算法. 此时,我唯一的其他设置如下:
0 2023-05-14
编程技术问答社区
在安装了oracle instant client for 11g之后,asp.net应用程序仍然无法连接到oracle 11g。
我有一个使用Oracle 11G数据库的ASP.NET MVC应用程序.在开发计算机中,每个事情都可以正常工作,但是在生产服务器ASP.NET应用程序中部署它时,应用程序无法连接到数据库服务器.它总是抛出一个空的例外. 我还编写了一个简单的控制台应用程序来测试数据库连接性.它也不起作用.然后我意识到这是因为机器没有安装Oracle客户端.因此,我为11G数据库32位版本安装了Oracle Instant Client.此后,控制台应用程序开始工作,但Web应用程序仍无法连接. i Google lot,最后决定使用流程监视器分析.在过程监视器中,我发现Web应用程序(IIS)正在寻找oraclient12.dll. 此oraclient12.dll是12C数据库的Oracle客户端的一部分.我不明白为什么要寻找此dll. 在安装12G的Oracle数据库客户端后,上述oraclient12.dll的问题已修复.但是IIS现在无法找到oraclsce12.dll.
6 2023-05-14
编程技术问答社区
Oracle客户端和ODP.NET版本兼容性
我们已将Oracle升级为19C,还将Oracle.ManagedDataAccess软件包升级到19.6.但是,当我们尝试在Oracle数据库12上打开应用程序时,则显示错误,因为某些机器仍然具有Oracle 12(旧)数据库. 有人可以与Oracle客户端分享Oracle数据提供商(ODP.NET)兼容性详细信息吗? 解决方案 错误消息没有表明任何不相容性.看起来Oracle.managedDataAccess驱动程序找不到您的tnsnames.ora文件 请看 .NET,托管驱动程序配置 您是否定义了TNS_ADMIN环境变量? 您的注册表中是否定义了TNS_ADMIN HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\OraClient19Home1 resp. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Oracle\OraClient19Home1_32bit? 文档指出注册表没有读取,但
18 2023-05-14
编程技术问答社区
Visual Studio ODP未管理的驱动程序-未能找到默认的tnsnames.ora文件(12c )
我正在开发Visual Studio 2013中的应用程序,该应用程序连接到Oracle数据库.我必须使用"不受管理的驱动程序".当我尝试在数据集中创建新连接时,当我选择"托管驱动程序"时,所有工作正常:找到tnsnames.ora.但是,当我选择"未托管驱动程序"都失败时,它会向我发送一条诸如"未能找到默认的tnsnames.ora文件"的消息 我已经 - 卸载所有旧的Oracle客户 - 清洁所有环境变量 - 重新安装Oracle客户端,Visual Studio的ODP工具 似乎没有任何作用.有任何想法吗 ? 解决方案 您应该转到包含机器文件文件的文件夹.此文件在%windir%\Microsoft.NET\Framework64\[version]\config\machine.config 中找到 确保您具有以下值.
0 2023-05-14
编程技术问答社区
ODP.NET Oracle.ManagedDataAcess 随机 ORA-12570 错误
我正在尝试从非管理版本中迁移到oracle.manageddataacess,并接收随机ORA-12570 TNS:数据包读取器失败. 我不知道为什么此错误启动,但是一旦开始,每个后续请求都会在10-30分钟内给出相同的错误,然后再进行10-30分钟的工作. . 因此,这是一段时间后续失败的随机失败,然后随后的成功 已经尝试了很多事情来恢复: 环境: Oracle.ManagedDataAcess版本12.1.2400(4.121.2.20150926)(Nuget)(服务器上未安装的GAC参考可以覆盖bin版本) Oracle Server Oracle Database 12C Enterprise Edition版本12.1.0.2.0-64位生产 Windows 2012(Windows Update OK) 检查: 防火墙:这不是防火墙问题 机器错误:我的机器,Azure WebApp和AWS EC2实例上也发生了同样的问题
6 2023-05-14
编程技术问答社区
ORA_ASPNET_MEM_GETALLUSERS必须被声明为ASP.NET MVC Oracle提供商
按,我正在尝试设置我的应用程序,以使用Oracle成员资格,角色和州提供商.在设置会员资格的过程中,使用ASP.NET Admin工具,单击"安全性"选项卡时会出现以下错误: ORA-06550:第1行,第15列:PLS-00201:标识符'ORA_ASPNET_MEM_GETALLUSERS'必须声明为ORA-06550:第1行,第7行,第7列:PL/SQL:PL/SQL:语句忽略 我可以确认标识符确实存在于DB中. 我正在使用与网站的其余部分以及与SQL Developer连接时的成员资格提供者的凭据完全相同. . 解决方案 如果有人想知道,解决方案是首先执行以下步骤此处概述 授予新数据库用户的特权,因此它可以为ASP.NET提供商创建架构并存储网站状态: 将对象类型设置为用户,然后将用户设置为ASPNET_DB_USER(或您选择的用户). 通常所需的特权包括: 更改通知 创建作业 创建过程 创建公共同义词 创建角色 创建会话 创
0 2023-05-14
编程技术问答社区
VB.NET连接到Oracle 11g的问题
OS: Windows 7 64bit VB: Visual Studio 2010 Oracle Client: 11g 我正在开发连接到Oracle 11G服务器的应用程序.我能够通过Oracle SQL开发人员(在SYSWOW64)和VB Server Explorer中连接到Oracle服务器. 我正在使用.NET参考oracle.dataAccess位于:c:\ oracle \ product \ 11.2.0 \ client_32 \ odp.net \ bin \ bin \ 2.x \ 2.x \ oracle.dataaccess.dll 我尝试按照其他问题建议将.dll文件添加到我的bin文件夹中,但这不起作用. 有人还有其他建议吗? 运行应用程序时,我会得到以下内容: 这是详细信息: System.TypeInitializationException was unhandled Message=The type in
2 2023-05-14
编程技术问答社区
向Oracle存储过程的游标传递可数据化的信息
我正在使用ODP.NET和Oracle 11G客户端.我将数据词传递给具有refcursor作为输入的过程. dtSample是DataTable,带有四个列,称为Type,Name,Name,Size和Description. 我有错误 无效的参数绑定,参数名称:parametername 在线 db.ExecuteNonQuery(oracleCommand); 完整代码: OracleCommand oracleCommand = new OracleCommand(); oracleCommand.CommandType = CommandType.StoredProcedure; oracleCommand.CommandText = "PCK_ADMIN.PROC_INS"; oracleCommand.Parameters.Add("P_USERID", OracleDbType.Varchar2).Value = "abcd"; o
2 2023-05-14
编程技术问答社区
我怎样才能让旧版本的OracleClient在本地与.NET协同工作?
使用oracle.dataaccess.dll创建一个新的.NET应用程序时,它可以正常工作.但是,我需要使用安装了oracle.dataaccess.dll的旧版本编辑现有的Web应用程序,当我尝试在本地运行它时,它会抛出我们的老朋友,"提供商与Oracle Client的版本不兼容"例外. 应用程序上的现有版本为2.112.1.2.我有两个版本; 4.112.4.0和2.112.4.0. (我创建的应用程序使用4.112.4.0.)"显而易见的"答案是使用我的应用程序中的4.112.4.0版本,但是该应用程序称为DLL,我无法更改它也使用2.112.1.2. 如何使应用程序正确连接到Oracle而不需要更改基础DLL?请注意,我正在使用11GR2和Visual Studio2013. 解决方案 在您的*.csproj中,resp. *.vbproj编辑您对ODP.NET的引用:
0 2023-05-14
编程技术问答社区
ORA 03134连接ODP.NET 12 (VS2012)和Oracle数据库11的错误
尝试使用odp.net 12从VS2012连接到Oracle 9.2时,我收到了此消息: ORA-03134:与此服务器版本的连接不再支持 我已经安装了odp.net 11,尽管与蟾蜍连接在一起,但我遇到了相同的错误. 有什么想法? 解决方案 i解决了问题,卸载了ODP.NET的版本12,因为版本12不支持Oracle 9.2数据库. odp.net版本11与版本9.2及以上一起使用.
2 2023-05-14
编程技术问答社区
C#/ODP.NET:大型IN子句的变通方法
我们有一个C#组件,该组件可以将任意尺寸的元素列表处理为半肢体sql SELECT查询的子句中.从本质上讲,这归结为接受以下内容: SELECT COUNT(*) FROM a WHERE b IN (...) ..." ..."是允许组件修改的查询的唯一部分. 当前,组件将插入一组逗号分隔的命名绑定参数,然后将相应的IDBDataParameter对象连接到命令并执行;该组件知道其必须绑定的参数的类型.这效果很好,直到呼叫代码提供比数据库愿意接受的参数集更大的参数集.这里的目的是通过ODP.NET进行如此大的集合,以针对Oracle 11gr2进行查询. 通过设定要求的人认为无法接受的以下方法有些复杂: 全球临时表 存储过程 任何需要执行的任何需要CREATE TYPE的东西 不需要仅执行一个查询. 我正在尝试使用从其他地方来源的代码将条款绑定为数组来完成这项工作: IList values; //... Oracl
0 2023-05-14
编程技术问答社区
在实体框架中设置取值大小
我正在将ado.net代码转换为使用EF.在我的ado.net代码中,我设置了dataReader.FetchSize = command.RowSize * 1000,这大大提高了默认提取大小的性能. 当我将代码转换为EF时,性能与ADO.NET代码相当,在该代码中我没有指定Fetch大小,即,对于大记录而言,它非常慢. 我可以指定用于检索EF中的记录的摘要? 解决方案 使用实体框架时,您可以在注册表或.NET配置文件中设置odp.net fetchsize.这将在您的所有ODP.NET实例(如果是注册表)或您的应用程序(如果是App/web.config)中进行标准化. http://docs.oracle.com/CD/E48297_01/doc/win.121/e41125/futsconfig.htm Christian Shay oracle 其他解决方案 我遇到了一个类似的问题,但不想更改整体提取大小,而是想更改每个查询的提取.
0 2023-05-14
编程技术问答社区
ORA | 12571: TNS:用ASP.NET写数据包失败
我的开发团队使用ASP.NET 3.5和4.0对Oracle 11G遇到了许多ORA-12571: TNS:packet writer failure错误.这些错误对于何时发生并不一致,并且由许多应用程序产生.在调用随机存储过程,数据包和内联SQL语句时发生此例外. Oracle 11客户端安装在Web服务器上.一些应用程序使用Microsoft System.data.oracleclient连接到Oracle,有些应用程序使用Oracle(ODP.NET)提供的.NET组件.两个数据访问对象都有相同的错误. 还有其他非.NET应用程序在其他Web服务器上运行,但使用相同的数据库服务器.这些应用没有任何此类问题.我最初的想法是,使用Oracle客户端在Web服务器上进行了错误配置. 其他人是否收到此错误?您做了什么来修复它? ORA-12571: TNS:packet writer failure 堆栈跟踪: at System.Data.OracleCli
0 2023-05-14
编程技术问答社区
ODP.NET错误 无法找到所需的.Net框架数据提供者
我正在尝试使用Oracle 11G Express和.NET 4.0框架开发ASP.NET MVC 4.0应用程序.我可以使用ODP.NET提供商连接到数据库,还可以针对数据库生成我的EDMX.我无法做的是使用实体框架查询基础数据库.使用ConnectInsTring Visual Studio生成的ConnectTring Visual Studio实例化我的DBContext时,我会收到以下错误: 无法找到所需的.NET框架数据提供商.它可能不会安装 但是,它是因为 而安装的 我可以在GAC中看到DLL. 在Machine.config中提到. 我的项目引用了它. 我实际上使用它来从数据库生成我的EDMX. 我已经验证了我在无处不在的正确版本(4.112.3.0) 我在卡西尼(Cassini)上本地运行代码,而我的硬件是32位体系结构,所以我假设我只能使用32位DLL,所以这不是架构问题. 代码的特定位就是这样: public class M
0 2023-05-14
编程技术问答社区
将System.Data.OracleClient替换为Oracle.DataAccess(ODP.NET)。
我有一个正在使用system.data.oracleclient的项目,并且由于它正在弃用,因此我想切换到ODP.NET最新版本的Oracle 11G.请让我知道以下步骤是否对我有效,或者是否还有其他某些行动才能使其无需任何错误: 删除对System.Data.oracleClient的引用 将引用添加到oracle.dataaccess dll 用oracledBtype替换Ocletype Enum,并将引用到Datatypes从Varchar到Varchar2等. 解决方案 您已经知道了. 这是我在执行此操作时遵循的oracle写作:其他两件事要做: 修复连接字符串. 使用OracleCommand.BindByName = true 告诉您要绑定参数而不是位置的oraclecommand实例 建议:修复连接字符串时,通过将整个连接字符串直接放在程序中来摆脱tnsnames.ora的任何依赖.
2 2023-05-14
编程技术问答社区