问题标签 [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 投票
3 回答
4515 浏览

asp.net - 远程 ORACLE 服务器连接字符串

我有一台 winxp 远程 Oracle 服务器和一台装有 IIS 的 Windows 7 机器。

我将在 win7 机器上托管一个站点,从我的 winxp 机器上的 Oracle DB 获取信息。

但是,当我加载我的网页时,我得到 ORA-12154: TNS:could not resolve the connect identifier specified

在我的 Tnsname.Ora 上,我得到以下信息:

奇怪的是,当我尝试从 WIN7 通过 sqlplus 进行连接时,我可以通过提供以下凭据来做到这一点:

$ sqlplus MyUser/MyPass@ORCL

我得到的 ConnectionString 如下:

有谁知道可能出了什么问题?

连接字符串在我的本地开发机器上工作,带有一个看起来几乎相同的 tnsnames.ora 文件。

任何帮助,将不胜感激!

0 投票
2 回答
862 浏览

oracle - 有趣的 Oracle 分析查询挑战

我对 Oracle 分析功能相当有经验,但这个让我很难过。如果有明显的解决方案,我会踢自己:)

我有一个表 JOURNAL,它在另一个表上记录插入、更新和删除。

它作为日记帐的表是 BOND_PAYMENTS,它表示 PAYMENTS 和 BONDS 之间的链接;它存储从特定付款(由 PAYMENT_ID 标识)分配给特定债券(由 BOND_NUMBER 标识)的金额(AMOUNT)。此外,它还记录了它被分配给 (BOP_DOMAIN) 的债券的哪个方面,可能是“BON”、“PET”或其他代码。BOND_PAYMENTS 表有一个代理键 (BOP_ID)。

因此,对于每个 BOP_ID,我的日志表通常会有 1 条或多条记录——首先是一个 INSert,然后可能是一些 UPDates,然后可能是一个 DELete。

这是期刊表:

以下是一些示例数据:

现在,我需要从该日记帐表中提取一整套数据,但格式略有不同。主要要求是我们不再希望日志表记录 BOP_DOMAIN - 它只是不需要。

我需要为每条 BOND_PAYMENT 记录生成总金额的历史记录。我不能使用 BOND_PAYMENT 表本身,因为它只显示每条记录的最新状态。我需要从期刊中挖掘这些信息。

我不能只接受一个SUM(amount) over(partition by payment_id, bond_number),因为一个单独的 BOP_ID 可能会更新多次;因此,在任何一个时刻,都应该使用为该 BOP_ID 记录的最新金额。

鉴于上述示例数据,这是我期望产生的说明:

样本数据和预期结果

在这里,我在左侧复制了示例数据,用于两个示例付款。在右边我有“Running Total”,这是预期的输出。旁边(红色)是它如何计算每一行的运行总计的逻辑。

“运行总计”是 PAYMENT_ID 和 BOND_NUMBER 组合的总金额在日记帐分录时间点的快照。请记住,一个特定的 BOP_ID 可能会被更新多次;总金额必须只考虑该 BOP_ID 的最新记录。

任何可行的解决方案都是可以接受的,但我怀疑分析函数(或分析函数的组合)将是解决这个问题的最佳方法。

0 投票
1 回答
36447 浏览

oracle - 在 Oracle 中将列添加到现有索引

我有一个相对较大的表(81M 行)和一个索引。

我想向现有索引添加一列。

我在谷歌上搜索它,但我找不到它的方法。

我在某处读到,将列添加到索引的唯一方法是删除并重新创建它。

但是,这里它说将列添加到现有索引是常见的做法。(虽然作者不推荐。)

那么,是否可以向现有索引添加列,如果可能的话,这是一种好的做法吗?

0 投票
3 回答
126 浏览

sql - 使用 SQL 查找重症监护婴儿的数量

我有一个大的:

这是一张包含大约 500 家医院一年内的医疗手术记录的表格。大约有 3 亿行。

我的问题是:

对于每家 X 医院,有多少婴儿在同一家医院出生后立即(同一天)接受了重症监护?

例如,在 A 医院,100 名婴儿出生,其中 20 名婴儿在同一天在同一家医院被送往重症监护室。

P619920 是出生的操作ID。记录母亲的身份信息是为了出生,而不是婴儿。

I552015 是重症监护的手术 ID。记录婴儿的身份证信息。

首先,我通过以下方式隔离医院 A:

医院_A的模式是这样的:

我试图匹配:

a) 婴儿和母亲的姓氏

b) 操作日期。

这给了我 20 行。

但是,当我对 BIGTABLE 应用相同的查询时,医院 A 有 81 行。

我理解这种差异源于在其他医院出生但在同一天被送往医院 A 接受重症监护的婴儿。

在 BIGTABLE 中,模式类似于:

因此,BIGTABLE 的结果与孤立的 hospital_A 表不同,因为它包含医院 B。

我对 BIGTABLE 的查询应该提取在同一家医院发生的同一天出生的重症监护组合。

结果表:

0 投票
4 回答
1337 浏览

oracle - DBMS_DATA_MINING.CREATE_MODEL 在 11.2.0.1.0 64b 上导致“ORA-40103: invalid case-id column: TID”,但在 10g 上正常

我对 11.2 版的 DBMS_DATA_MINING.CREATE_MODEL 有疑问。在 10g 上,下面的代码可以正常工作,我很确定在 11.1 上它也可以。

原因:

为了确定:

返回:

来自的示例代码dmardemo.sql会导致相同的错误。我不知道出了什么问题。请帮忙。

0 投票
2 回答
29322 浏览

oracle - 使用 11g 客户端从 Oracle 10g 数据库导出

数据库版本:10g 企业版 Release 10.2.0.4.0

客户端版本:11g企业版Release 11.2.0.1.0(windows 7 64bit)

当我尝试从数据库中导出(exp)表时:

我收到以下错误:

EXP-00008: 遇到 ORACLE 错误 904

ORA-00904: "POLTYP": 无效的标识符

EXP-00000:导出未成功终止

我在网上搜索了一下,我知道问题是版本不兼容。

你建议我怎么做?

注意:我也尝试使用数据泵导出,但它给出了:

0 投票
1 回答
4900 浏览

oracle - Oracle 11gR2 加载多个文件:sqlldr 还是外部表?

我有 471 个文件,总计约 100GB。这些文件以“\t”分隔,交易数据采用以下格式:

文件中事务的顺序很重要,需要保留,最好使用主键 ID。最初,我使用 sqlldr 加载了这些文件,但这需要很长时间。我最近了解了外部表。从战略角度来看,哪种方法更好?外部表如何工作?谢谢你。

0 投票
1 回答
926 浏览

xml - 通过 PL SQL 读取 XML(存储在 Long 变量中)

我们使用的是 Oracle 11g2 数据库。我们在 Long 列/变量中有一些 xml 内容。

谁能帮我读取 xml 属性值?

例如。

我们要读取 旁边的值<variable name= "L_LPN">。需要以K01-4713BE编程方式返回。

0 投票
2 回答
3252 浏览

oracle - 在块中查找游标或表列的数据类型

是否可以在不使用系统表的情况下找出块内游标或变量列的数据类型?虽然我知道我可以使用系统表来查找这些信息,但速度会慢很多。

就像是,

如果不诉诸 ,我找不到任何方法dbms_sql,这对于我的最终目的来说太过分了。

但是,甲骨文已经掌握了所有信息。如果我尝试将 a 分配varchar2给 anumber那么它会立即抱怨,因此它知道数据类型是什么。

而且,是的,我知道 Oracle 的版本数量很荒谬,但这就是我们目前所拥有的数量...... 9i 很快就会有利于 11,但如果我能找到答案,这段代码将立即在 9i 上运行!但我包括了 11 个,因为如果需要,我可以等待更好的解决方案,

0 投票
3 回答
12200 浏览

oracle - SQL*Loader:处理数据中的分隔符

我正在通过 SQLLDR 将一些数据加载到 Oracle。源文件是“管道分隔的”。

但是有些记录在数据中包含管道字符,而不是作为分隔符。因此,它会破坏记录的正确加载,因为它将indata管道字符理解为字段终止符。

你能给我一个解决这个问题的方向吗?

数据文件大约 9 GB,因此很难手动编辑。

例如,

加载行:

ABC|1234567|STR 9 R 25|98734959,32|28.12.2011

拒绝行:

DE4|2346543|我们| 454|956584,84|28.11.2011

错误:

DATE_N 列是最后一列。