问题标签 [oracle11gr2]

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 回答
1441 浏览

oracle - 哪些语句将导致在 PL/SQL 过程中提交?

我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有truncate, createorcommit声明,但会话仍在提交中。我正在使用 SQL Developer 和 PL/SQL Developer。

有人可以告诉我哪些语句会导致过程或函数内的提交吗?

0 投票
1 回答
15803 浏览

nhibernate-mapping - 路径位置:Oracle.Driver (Oracle.DataAccess.dll) for Oracle 11g Standard Edition Release 2

我已经安装了 Oracle 11g 标准版第 2 版。我正在使用 nhibernate 2.2。我已经花了很多时间,但我在安装的文件中找不到 Oracle Driver dll 文件(Oracle.DataAccess.dll)的位置。请帮助我。提前致谢。

萨塔迪普

0 投票
1 回答
2893 浏览

oracle - 查询导致 DB 失败并出现 ORA-0113

我需要从内联视图中的集合中的元素创建一个集合。我尝试使用 collect 和 table 函数对集合进行解聚合并再次聚合它,但它因 ORA-03113 而失败。

下面是导致问题的查询的简化版本。

在我的实现中,我将在单个查询中加入多个级别的嵌套查询与联合,该查询应该将所有集合聚合到一个集合中。出于性能原因(昂贵的上下文切换),实现 PL/SQL 代码来聚合集合不是一种选择。

非常感谢您的反馈/建议。

脚本


结果


0 投票
2 回答
2710 浏览

sql - 将任何字符串转换为整数

简单地说,我希望能够将任何字符串转换为整数,最好能够限制整数的大小并确保结果始终相同。换句话说,Oracle 是否支持一个散列函数,它返回一个数值并且该值可以有最大值吗?

如果需要,为了提供一些上下文,我有两个表,它们具有以下简化格式:

该列sequence_numbernumber(3)表1和varchar2(11)表2中;它是两个表中主键的一部分。

数据由外部提供,无法更改;我相信在表 1 中它是由一个简单的序列创建的,但在表 2 中是有意义的。数据是虚构的,但具有代表性。

有人承诺我们会输出一个number(3)字段。虽然这对于第一个表中的列来说很好,但它会导致第二个表出现问题。

我希望能够转换sequence_number为整数(容易),小于 1000(更难),并且如果可能的话是恒定的(似乎不可能)。这意味着我'2QD44561'永远回来586。如果两个字符串返回相同的数字,这并不重要。

只需转换为我可以使用的整数utl_raw.cast_to_number()

但正如你所见,这不少于 1000

我也一直在玩dbms_cryptoutl_encode看看我是否能想出一些东西,但我没有设法得到一个小整数。有办法吗?

0 投票
2 回答
1147 浏览

sql - distinct + rank 高于 join

假设我们有一个包含以下列的表 BNK_ACCT_GRP_ST:

它填充了 bnk_accts 数据:

示例#1:

和示例#2:

在哪里:

  • BNK_ACCT_GRP_ST_ID 是自增字段,
  • BNK_ACCT_ID 实际上是银行账户#id,
  • BNK_ACCT_GRP_ID 是 grp id(总是增加),
  • BNK_ACCT_GRP_ST_CD、BNK_ACGRP_ST_SRC_EVNT_TYP_CD 和 BNK_ACGRP_ST_SRC_TRAN_ID 是一些用于反式目的的 id,
  • FNCL_GRP_ID - 该银行账户所属银行机构的 ID

我需要什么:创建一个查询以根据 FNCL_GRP_ID 为每个 BNK_ACCT_ID 提取最新的 BNK_ACCT_GRP_ID。这里一个银行账户可以属于一个或多个然后一个 fncl 机构,所以查询应该返回这个输出:

例如#1:

例如#2:

我最近尝试了很多东西,比如组合

但没有运气。

0 投票
3 回答
2991 浏览

sql - 根据第一行中的值选择组中的第二行

假设我们在这里有一个表,其中填充了以下数据:

每个账户都有多个 acc_id,但参数代码是固定的。我试图仅检索遵循此规则的那些帐户:如果最大(最新)acc_grp_id1 具有 param1 = 2 和 param2 = 166,则两行都应该存在。如果最大(最新)参数等于不同的代码,则仅填充最新的。

它应该是这样的:

实际输出是来自 5 个表的连接。

任何想法,将不胜感激。

0 投票
1 回答
1751 浏览

bash - Oracle expdp CentOS 6.2 Shell 脚本异常行为 - 新行给出命令未找到

我的第一篇文章要温柔。

我有下面的脚本,它是从 RedHat 5.3 框中取出来备份 Oracle 数据库的。该脚本在 Redhat 5.3 机器上运行良好。然后,我将其用作在 centos 6.2 机器上备份 oracle 数据库的参考,并根据需要对其进行了修改。

奇怪的行为是,当我执行脚本时,新行会导致找不到命令错误,并且连接被合并,如下所示。

与其他文本合并的日期不是错字,即回显输出。

我在开头添加了 set -x ,这是输出

等待回复...

0 投票
2 回答
1260 浏览

oracle - 将双拉丁字母转换为 US7ASCII

如何在 oracle 中将Æ(latin capital letter ae)转换为AE(US7ASCII)。我尝试过以下查询:

但它给了我作为输出,但相同的查询适用于单个字符,如下所示:

0 投票
1 回答
643 浏览

java - SQL中的maxdrawdown计算

好吧,假设我有一个来自交易账户的简单表格,其中包含所有典型的交易信息:

我在这里需要的是仅使用 sql 计算最大回撤。我可以在 java 上轻松地做到这一点(运行一个循环),但这应该是一个大查询的一部分,计算不同的 acc 参数。

所以让我解释一下公式:对于数据库中所有可用的 acc 记录,最大回撤是一个显示最大余额下降到负数的值。看看上面的 ex,第一个回撤是 400 美元(第一个负 100 美元部分),第二个更大,它是 1200 美元(第二个)。如您所知,这些回撤经常发生,因此 acc 历史应该有很多,而不仅仅是此处显示的 2 次。通常它会在一个巨大的数据集上计算这种数据,从 100,000 条记录开始。

env 是 oracle 11gr2,只读访问。任何聪明的想法将不胜感激!

好的,看起来系统会覆盖编辑,所以我必须将其放入 1 个合并中。我尝试添加一个 artif 列,其中映射负数交易为“Y”,并试图找到一种方法如何在它之后对它们执行 sum()。这里的问题是任何单个记录都可以超过任何结果记录的 sum()。

0 投票
3 回答
7315 浏览

sql - 在没有 LISTAGG 的 Oracle SQL 中按字符串列表排序

我正在使用两个实体:ItemAttribute,它们看起来如下所示:

一个Itemhas Attributes,在关联表中指定:

当此数据到达客户端时,它将显示为每Item行,每行将有一个Attribute按名称列出的 s 列表。例如:

用户可以选择对Attributes列进行排序,因此我们需要能够按如下方式对数据进行排序:

目前,我们每ItemAttribute行获取一行数据。基本上:

这会产生如下结果:

实际ORDER BY子句基于用户输入。它通常是单列,因此排序很简单,处理结果集的应用程序端循环将Attribute名称组合成一个逗号分隔的列表,以便在客户端显示。但是当用户要求对该列表进行排序时,最好让 Oracle 对结果进行排序,这样——使用上面的示例——我们会得到:

oracle的LISTAGG函数可以用来生成排序前的属性列表;然而Attribute.name可以是一个很长的字符串,并且组合列表可能大于 4000 个字符,这会导致查询失败。

是否有一种干净、有效的方法可以使用 Oracle SQL (11gR2) 以这种方式对数据进行排序?