问题标签 [oracle11g]

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

sql-server - 大型数据库中的数据关联

我们正在尝试识别存储在我们企业中的某些信息的位置,以使其符合我们的数据政策。在文件端,我们使用 Nessus 搜索不同的文件,但我想知道在数据库端。

使用 Nessus 似乎在很大程度上毫无意义,因为它会输出原始数据并且不会告诉我们它在哪个表或行中,或者给我们很多有用的信息,特别是考虑到这些数据库非常大(数百 GB)。

另外值得注意的是,这个系统需要能够进行基于模式的匹配(例如使用正则表达式)。不仅仅是一个“愚蠢的搜索”引擎。

我已经调查了使用数据挖掘和数据仓库来查找这些数据,但似乎它们更多的是用于分析数据,而不仅仅是查找数据。

有没有更好的方法来搜索数据库中的大量数据以尝试找到这些信息?我们同时使用 Oracle 11g 和 SQL Server 2008 并且需要在两者上执行搜索,所以我想远离特定于服务器的范例(尽管如果我必须重写一些代码以从 T-SQL 转换为 PL /SQL,反之亦然,我不介意)

0 投票
8 回答
70777 浏览

sql - 如何解决 Oracle 错误 ORA-01790?

我有两个由“联合”加入的选择语句。在执行该语句时,我得到了:

错误报告:SQL 错误:ORA-01790:表达式必须与对应的表达式 01790 具有相同的数据类型。00000 - “表达式必须与对应的表达式具有相同的数据类型”

也许你可以给我一个关于如何诊断这个问题的建议?

0 投票
9 回答
4664 浏览

sql - 甲骨文错误?SELECT 不返回重复值,来自 SELECT 的 INSERT 有重复行

我正在处理的 Oracle 实例出现一些奇怪的行为。这是 Itanium 上的 11gR1,没有 RAC,没什么特别的。最终,我在数据仓库场景中将数据从一个 Oracle 实例移动到另一个实例。

我有一个通过数据库链接运行的半复杂视图;大型表上有 4 个内连接,中型表上有 5 个左连接。

这就是问题所在:当我在 SQL Developer(或 SQL*Plus)中测试视图时,它看起来很好,没有任何重复。但是,当我实际使用视图将数据插入表中时,我得到了大量的欺骗。

编辑: - 数据将进入一个空表。查询中的所有表都在数据库链接上。唯一传入查询的是日期(例如 INSERT INTO target SELECT * FROM view WHERE view.datecol = dQueryDate) -

我尝试将 ROW_NUMBER() 函数添加到 select 语句中,由视图的 PK 分区。所有行都返回编号为 1。同样,作为插入运行的相同语句会生成与以前相同的欺骗,现在方便地编号。每个键的重复行数不同。有些记录存在 4 次,有些只存在一次。

我发现这种行为非常令人困惑。:) 它让我想起了使用 Teradata,你有 SET 表(仅限唯一行)和 MULTISET 表(允许重复行),但 Oracle 没有这样的功能。

向客户端返回行的选择应该与将这些行插入另一个位置的行为相同。我无法想象发生这种情况的正当理由,但也许我正遭受想象力的失败。;)

我想知道是否有其他人经历过这种情况,或者这是否是该平台上的错误。

解决方案

感谢@Gary,我能够通过使用“EXPLAIN PLAN FOR {my query};”来解决这个问题。和“SELECT * FROM TABLE(dbms_xplan.display);”。实际用于INSERT的说明与 SELECT 非常不同。

对于 SELECT,大多数计划操作是 'TABLE ACCESS BY INDEX ROWID' 和 'INDEX UNIQUE SCAN'。“谓词信息”块包含查询中的所有连接和过滤器。最后它说“注意 - 完全远程声明”

对于 INSERT,没有对索引的引用。“谓词信息”块只有三行,一个新的“远程 SQL”块显示9个小 SQL 语句。

数据库已将我的查询拆分为 9 个子查询,然后尝试在本地加入它们。通过运行较小的选择,我找到了重复项的来源。

我相信这是 Oracle 编译器中围绕远程链接的错误。重写 SQL 时会产生逻辑缺陷。基本上编译器没有正确应用 WHERE 子句。我只是在测试它并给它一个包含 5 个键的 IN 列表以恢复。SELECT 带回 5 行。INSERT 将 77,000 多行放入目标中,并完全忽略 IN 列表。

{仍在寻找一种强制正确行为的方法,我可能不得不要求在远程数据库上创建视图,尽管从开发的角度来看这并不理想。当我让它工作时,我会编辑它…}

0 投票
5 回答
2296 浏览

sql - 如何通过将元数据放入 Oracle 表中来生成 HTML 新行

我们有一个 CRM 解决方案,其中所有元数据都存储在 Oracle 表中(不要问我为什么)。

我正在发布一条更新语句,但是当从数据库中获取数据时,我在前端看到的 '\n' 作为文本的一部分而不是新行(如 HTML's <br/>)。

我试图
直接放入描述中,但它在前端显示为 br/。

我应该在更新语句中输入什么转义字符?

0 投票
3 回答
380 浏览

oracle - PLSQL 与 Oracle 11g

我在 Oracle 10g 中有好几行 PL/SQL 代码,我们将转向 11g。我希望我的代码也可以在那里工作,但是:

  • 有没有可以期待的陷阱,你遇到了什么问题?
  • 您正在使用哪些新功能?
0 投票
2 回答
4052 浏览

sql - 规范化 ORACLE 11g 中的列名

我需要从架构中许多表中的列名称中删除引号。有什么方法可以自动化这个过程吗?oracle 中的任何函数或一些允许我更改删除引号的列的名称的工具。我正在使用 oracle 11g。

更新

对不起,我不得不重新提出我的问题。

提前致谢。

0 投票
5 回答
42668 浏览

database - Oracle -- 将数据导入到具有不同名称的表中?

我有一个从 Oracle 表导出的大型(多 GB)数据文件。我想将此数据导入另一个 Oracle 实例,但我希望表名与原始表不同。这可能吗?如何?

导入和导出系统都是 Oracle 11g。该表包括一个 BLOB 列,如果这有什么不同的话。

谢谢!

更新

这里的想法是更新表,同时将使用它的系统的停机时间降至最低。解决方案(基于Vincent Malgrat的回答和APC的更新)是:

  1. 假设我们的表名是A
  2. 制作临时架构TEMP_SCHEMA
  3. 将我们的数据导入TEMP_SCHEMA.A
  4. CREATE REAL_SCHEMA.B AS SELECT * FROM TEMP_SCHEMA.A
  5. DROP TABLE REAL_SCHEMA.A重命名REAL_SCHEMA.AREAL_SCHEMA.A_OLD
  6. 重命名REAL_SCHEMA.BREAL_SCHEMA.A
  7. DROP REAL_SCHEMA.A_OLD

这样,停机时间仅在第 4 步和第 5 步期间,两者都应该与数据大小无关。如果这不起作用,我会在这里发布更新:-)

0 投票
4 回答
32902 浏览

oracle - ORACLE 11g 默认不区分大小写

我在这篇文章中发现,从 ORACLE 10g 开始,有一种方法可以使特定的连接会话不区分大小写,而不需要任何疯狂的 SQL 函数,使用ALTER SESSION.

有谁知道,在 11g 中,是否有一种方法可以使数据库在默认情况下对所有新的连接会话始终以这种模式运行,从而消除ALTER SESSION每次连接时都运行 s 的需要?

或者,您可以在连接字符串上指定一个附加参数来打开相同的功能?

0 投票
3 回答
6563 浏览

oracle - oracle 中的复合触发器

我有一个复合触发器,在 after 语句中,我更新了另一个也有复合触发器的表,如下面的代码所示:

更新只是一个简单的,看看是否有效。我希望它在 THEOTHERTABLE 上触发触发器,但只有在触发器不是复合的情况下才会触发。

这是 Oracle 复合触发器的问题,还是我不理解的一个特性?

0 投票
5 回答
12428 浏览

c# - 通过代码获取文件 tnsnames.ora 的位置

如何tnsnames.ora在安装了 Oracle 客户端的机器中通过代码获取文件的位置?

是否有指示此文件位置的 Windows 注册表项?