我正在使用 oracle 11g 。我的存储过程正在返回,varchar2
但其值被截断oracle client
。下面是我的代码:
if ((ds != null) && (ds.Tables.Count > 0))
{
foreach (DataRow rw in ds.Tables[0].Rows)
{
OracleParameter param = new OracleParameter((rw["argument_name"]).ToString(), GetOracleType(rw["data_type"].ToString().ToUpper()));
param.Direction = GetParameterDirection((rw["in_out"]).ToString().ToUpper());
discoveryCommand.Parameters.Add(param);
if (param.Direction == ParameterDirection.Output && param.OracleType == OracleType.VarChar)
{
param.Size = 4000;
}
}
}
我将的值增加了param.size
,4000
但仍然值被截断了。有什么解决办法吗?在服务器上,我有 Oracle 12c
。我需要在不更新我的项目中oracle客户端版本的情况下获得解决方案,因为某些原因,这是不允许的。
以下是SP。我对其进行了修改,以返回硬编码的值。还是同样的问题。
PROCEDURE access_level (
p_emp_id IN employees.emp_id%TYPE,
p_id IN NUMBER,
p_type VARCHAR2,
p_access_level OUT VARCHAR2
) IS
BEGIN
p_access_level := 'X' || 'RO' || 'RW';
END IF;
我试图解决问题,通过迁移到ODP.NET
作为System.Data.OracleClient
正在被弃用Microsoft
提到这里 ,但没有解决问题。以下是解决问题的方法:
12.1.0.2.2
Output parameter truncation
错误在Oracle
文档中提到为Bug21616079
Oracle
已按照此处的文档中12.2.0.1.0
所述对版本进行了修复。Oracle
12.2.0.1.0
已从升级到版本,12.1.0.2.2
因为Oracle
仅对此版本提供了修复,在官方Oracle
文档中提到了此问题,我在上面提供了第3点的链接。客户端存储
在 osb 12 c. PLS-00653 中调用服务中的存储过程调用管道时遇到错误:PL/SQL 作用域中不允许使用聚合/表函数。如果有人以前遇到过或可以在这里提供帮助?
我们的产品有几个复杂的存储过程,它们利用(MSSQLS2008R2/2012)CTE和/或临时表/表变量来计算菜单或级联权限结构,以便使用系统。 我们通过SQL事件探查器注意到,有时过程可能需要比正常情况多几个数量级的时间才能返回。我们想知道采取行动的最佳原因,以便收集信息来确定什么是阻塞/争用。一个很好的例子是一个存储过程,如果我在query analyser中手动运行它,它需要222毫秒来运行
我使用。NET Core2.0和ASP.NET Core2.0进行应用程序开发。“测试”应用程序是一个。NET核心控制台应用程序。我正在编写的核心代码是一个类库。一旦适当的测试。我选择这样做是因为我暂时不会使用它(它正在替换旧的ASPNET代码)。 无论如何,由于我必须处理各种服务的大量API密钥,所以我决定使用Microsoft Azure Key Vault来存储密钥。我有这一切设置,并理解这
对于我的应用程序,我有一个服务器端数据库,在其中存储用户及其数据。我想知道如何跟踪哪个用户拥有哪个UUID。我想确保只有具有自己唯一UUID的同一用户才能访问数据库中的数据。 最好的方法是什么?
web应用允许使用浏览器提供的API实现将数据存储在用户电脑上。这种客户端存储相当于赋予了web浏览器记忆功能。比方说,web应用就可以用这些方式来“记住”用户的偏好甚至是用户的所有状态信息,以便准确地“回忆”起用户上一次访问的位置。客户端存储遵循“同源策略”,因此不同站点的页面是无法读取对于存储的数据。而同一站点的不同的页面之间是可以互相共享存储数据的,它为我们提供了一种通信机制,例如一个表单的