问题标签 [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.
oracle - 哪些语句将导致在 PL/SQL 过程中提交?
我在 Oracle 11g 中编写了一个 PL/SQL 过程。我没有truncate
, create
orcommit
声明,但会话仍在提交中。我正在使用 SQL Developer 和 PL/SQL Developer。
有人可以告诉我哪些语句会导致过程或函数内的提交吗?
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)的位置。请帮助我。提前致谢。
萨塔迪普
oracle - 查询导致 DB 失败并出现 ORA-0113
我需要从内联视图中的集合中的元素创建一个集合。我尝试使用 collect 和 table 函数对集合进行解聚合并再次聚合它,但它因 ORA-03113 而失败。
下面是导致问题的查询的简化版本。
在我的实现中,我将在单个查询中加入多个级别的嵌套查询与联合,该查询应该将所有集合聚合到一个集合中。出于性能原因(昂贵的上下文切换),实现 PL/SQL 代码来聚合集合不是一种选择。
非常感谢您的反馈/建议。
脚本
结果
sql - 将任何字符串转换为整数
简单地说,我希望能够将任何字符串转换为整数,最好能够限制整数的大小并确保结果始终相同。换句话说,Oracle 是否支持一个散列函数,它返回一个数值并且该值可以有最大值吗?
如果需要,为了提供一些上下文,我有两个表,它们具有以下简化格式:
该列sequence_number
在number(3)
表1和varchar2(11)
表2中;它是两个表中主键的一部分。
数据由外部提供,无法更改;我相信在表 1 中它是由一个简单的序列创建的,但在表 2 中是有意义的。数据是虚构的,但具有代表性。
有人承诺我们会输出一个number(3)
字段。虽然这对于第一个表中的列来说很好,但它会导致第二个表出现问题。
我希望能够转换sequence_number
为整数(容易),小于 1000(更难),并且如果可能的话是恒定的(似乎不可能)。这意味着我'2QD44561'
想永远回来586
。如果两个字符串返回相同的数字,这并不重要。
只需转换为我可以使用的整数utl_raw.cast_to_number()
:
但正如你所见,这不少于 1000
我也一直在玩dbms_crypto
,utl_encode
看看我是否能想出一些东西,但我没有设法得到一个小整数。有办法吗?
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:
我最近尝试了很多东西,比如组合
但没有运气。
sql - 根据第一行中的值选择组中的第二行
假设我们在这里有一个表,其中填充了以下数据:
每个账户都有多个 acc_id,但参数代码是固定的。我试图仅检索遵循此规则的那些帐户:如果最大(最新)acc_grp_id1 具有 param1 = 2 和 param2 = 166,则两行都应该存在。如果最大(最新)参数等于不同的代码,则仅填充最新的。
它应该是这样的:
实际输出是来自 5 个表的连接。
任何想法,将不胜感激。
bash - Oracle expdp CentOS 6.2 Shell 脚本异常行为 - 新行给出命令未找到
我的第一篇文章要温柔。
我有下面的脚本,它是从 RedHat 5.3 框中取出来备份 Oracle 数据库的。该脚本在 Redhat 5.3 机器上运行良好。然后,我将其用作在 centos 6.2 机器上备份 oracle 数据库的参考,并根据需要对其进行了修改。
奇怪的行为是,当我执行脚本时,新行会导致找不到命令错误,并且连接被合并,如下所示。
与其他文本合并的日期不是错字,即回显输出。
我在开头添加了 set -x ,这是输出
等待回复...
oracle - 将双拉丁字母转换为 US7ASCII
如何在 oracle 中将Æ(latin capital letter ae)
转换为AE(US7ASCII)
。我尝试过以下查询:
但它给了我?作为输出,但相同的查询适用于单个字符,如下所示:
java - SQL中的maxdrawdown计算
好吧,假设我有一个来自交易账户的简单表格,其中包含所有典型的交易信息:
我在这里需要的是仅使用 sql 计算最大回撤。我可以在 java 上轻松地做到这一点(运行一个循环),但这应该是一个大查询的一部分,计算不同的 acc 参数。
所以让我解释一下公式:对于数据库中所有可用的 acc 记录,最大回撤是一个显示最大余额下降到负数的值。看看上面的 ex,第一个回撤是 400 美元(第一个负 100 美元部分),第二个更大,它是 1200 美元(第二个)。如您所知,这些回撤经常发生,因此 acc 历史应该有很多,而不仅仅是此处显示的 2 次。通常它会在一个巨大的数据集上计算这种数据,从 100,000 条记录开始。
env 是 oracle 11gr2,只读访问。任何聪明的想法将不胜感激!
好的,看起来系统会覆盖编辑,所以我必须将其放入 1 个合并中。我尝试添加一个 artif 列,其中映射负数交易为“Y”,并试图找到一种方法如何在它之后对它们执行 sum()。这里的问题是任何单个记录都可以超过任何结果记录的 sum()。
sql - 在没有 LISTAGG 的 Oracle SQL 中按字符串列表排序
我正在使用两个实体:Item
和Attribute
,它们看起来如下所示:
一个Item
has Attributes
,在关联表中指定:
当此数据到达客户端时,它将显示为每Item
行,每行将有一个Attribute
按名称列出的 s 列表。例如:
用户可以选择对Attributes
列进行排序,因此我们需要能够按如下方式对数据进行排序:
目前,我们每ItemAttribute
行获取一行数据。基本上:
这会产生如下结果:
实际ORDER BY
子句基于用户输入。它通常是单列,因此排序很简单,处理结果集的应用程序端循环将Attribute
名称组合成一个逗号分隔的列表,以便在客户端显示。但是当用户要求对该列表进行排序时,最好让 Oracle 对结果进行排序,这样——使用上面的示例——我们会得到:
oracle的LISTAGG
函数可以用来生成排序前的属性列表;然而Attribute.name
可以是一个很长的字符串,并且组合列表可能大于 4000 个字符,这会导致查询失败。
是否有一种干净、有效的方法可以使用 Oracle SQL (11gR2) 以这种方式对数据进行排序?