问题标签 [oracle]

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 投票
10 回答
209636 浏览

oracle - 如何在不同的表空间中导入 oracle 转储

我想将 oracle 转储导入不同的表空间。

我有一个用户 A 使用的表空间 A。我已经撤销了该用户的 DBA 并给了他授权连接和资源。然后我用命令转储了所有东西

exp a/*** 所有者=a 文件=oracledump.DMP 日志=log.log 压缩=y

现在我想将转储导入用户 B 使用的表空间 B。所以我给了他连接和资源的授权(没有 DBA)。然后我执行了以下导入:

imp b/*** 文件=oracledump.DMP 日志=import.log fromuser=a touser=b

结果是一个有很多错误的日志:

IMP-00017:以下语句失败并出现 ORACLE 错误 20001:“BEGIN DBMS_STATS.SET_TABLE_STATS IMP-00003:遇到 ORACLE 错误 20001 ORA-20001:输入值无效或不一致

之后,我尝试了相同的导入命令,但使用了选项 statistics=none。这导致了以下错误:

ORA-00959: 表空间 'A_TBLSPACE' 不存在

这应该怎么做?

注意:很多列都是 CLOB 类型的。看起来问题与此有关。

注意 2:oracle 版本是 9.2、10.1 和 10.1 XE 的混合版本。但我认为这与版本无关。

0 投票
6 回答
4503 浏览

.net - 使用 Oracle 10g 保存和检索二进制文件的最佳方式是什么?

我即将在我们的应用程序中实现一项功能,该功能允许用户“上传”PDF 或 Microsoft PowerPoint 文档,然后应用程序将在查看器中将其提供给其他用户(因此他们无法“下载”它在“另存为..”的意义上)。

我已经知道如何在数据库列中保存和检索任意二进制信息,但由于这将是我们应用程序的一个常用功能,我担心该解决方案会导致数据库表非常大(我们知道我们的一个客户会想把PowerPoint 文档中的视频)。

我知道有一种方法可以在 Oracle 中创建一个“目录”对象,但是有没有一种方法可以使用此功能来存储和检索保存在数据库服务器上其他地方的二进制文件?

还是我对数据库大小过于偏执?

(为了完整起见,我们的应用程序是使用CoreLab / DevArt OraDirect.Net 驱动程序到 Oracle 10g的 .Net WinForms )

0 投票
2 回答
6749 浏览

java - 使用 JPA/Toplink 进行批量插入

我有一个通过 HTTP 接口接收消息的 Web 应用程序,例如:

该请求包含发件人的 ID、收件人的 ID 和消息的文本。

此消息应按如下方式处理:

  • 从数据库中查找源和目标的匹配用户对象
  • 创建对象树:包含消息文本字段的 Message 和用于源和目标的两个 User 对象
  • 将此树持久化到数据库中。

树将由我无法触及的其他应用程序加载。

我使用 Oracle 作为后备数据库,使用 JPA 和 Toplink 进行数据库处理任务。如果可能的话,我会留在这些地方。

如果没有太多优化,我可以在我的环境中实现约 30 个请求/秒的吞吐量。这并不多,我需要约 300 个请求/秒。所以我测量了性能瓶颈在哪里,发现调用em.persist()占用了大部分时间。如果我简单地注释掉该行,吞吐量将远远超过 1000 个请求/秒。

我尝试编写一个小型测试应用程序,它使用简单的 JDBC 调用将 100 万条消息持久保存到同一个数据库。我使用了批处理,这意味着我做了 100 次插入然后提交,并重复直到所有记录都在数据库中。在这种情况下,我测量了大约 500 个请求/秒的吞吐量,这可以满足我的需求。

很明显,我需要在这里优化插入性能。然而,正如我之前提到的,我想继续使用 JPA 和 Toplink,而不是纯粹的 JDBC。

你知道用 JPA 和 Toplink 创建批量插入的方法吗?您能否推荐任何其他技术来提高 JPA 持久性性能?

附加信息:

“请求/秒”在这里表示:请求总数/从测试开始到最后一条记录写入数据库的总时间。

我试图em.persist()通过在 servlet 内容和持久化程序之间创建一个内存队列来进行异步调用。对演出有很大帮助。然而,队列确实增长得非常快,因为应用程序将连续接收约 200 个请求/秒,这对我来说不是一个可接受的解决方案。

在这种分离的方法中,我收集了 100 毫秒的请求,并em.persist()在提交事务之前调用了所有收集的项目。EntityManagerFactory 在每个事务之间缓存。

0 投票
1 回答
1441 浏览

java - Oracle 8.x 系列中如何以编程方式替换字符

由于我们的 Java 应用程序之一出现重复错误:

我需要在 Oracle 数据库中“修复”一些 Unicode 字符,最好是以编程方式。一旦确定,“搜索和替换”它的简单方法是什么?

0 投票
7 回答
6916 浏览

database - 从 oracle 数据库获取数据作为 CSV 文件(或任何其他自定义文本格式)

连接到 oracle 数据库、执行简单的 SELECT 查询并将结果以 CSV 格式输出到标准输出的示例 perl 脚本会很棒。Python 或任何其他在典型的 unix 发行版中可用的语言也可以。

请注意,我只是从头开始,只使用远程 Oracle 数据库的用户名/密码。除了拥有正确的 oracle 连接库之外,还有更多的东西吗?

如果有一种方法可以直接在mathematica 中执行此操作,那将是理想的(大概使用J/Link (mathematica 的java 集成事物)应该是可能的)。

0 投票
3 回答
2168 浏览

oracle - 如何从 Lisp 运行 Oracle plsql 过程?

我该如何开始?

0 投票
4 回答
8056 浏览

database - 如何在没有性能和可扩展性问题的情况下审核数据库活动?

我需要审核所有数据库活动,无论它来自应用程序还是通过其他方式发出某些 sql 的人。所以审计必须在数据库级别进行。有问题的数据库是Oracle。我考虑通过触发器以及 Oracle 提供的称为细粒度审计的东西来实现它。在这两种情况下,我们都打开了对特定表和特定列的审计。然而,我们发现当我们使用这两种方法时,性能真的很糟糕。

由于围绕数据隐私的规定,审计是绝对必须的,我想知道在不显着性能下降的情况下,最好的方法是什么。如果有人在这方面有 Oracle 的特定经验,那将会很有帮助,但如果不仅仅是围绕数据库活动审计的一般实践也可以。

0 投票
5 回答
17617 浏览

sql - 使用 sqlplus 或 rman 进行 oracle 10g 测试的备份/恢复数据库

将 Oracle 10g 与我们的测试服务器一起使用是最有效/最简单的备份和恢复数据库到静态点的方法,假设您总是希望在创建备份后返回给定点。

示例用例如下

  1. 安装和配置所有软件
  2. 修改数据到基础测试点
  3. 以某种方式进行备份(这是问题的一部分,如何做到这一点)
  4. 做测试
  5. 返回第3步状态(恢复到备份点,这是问题的另一半)

理想情况下,这将通过 sqlplus 或 rman 或其他一些可编写脚本的方法来完成。

0 投票
1 回答
1123 浏览

c# - 从 C# 监视 Oracle DB 中最后一个 INSERT/UPDATE 的片段?

我正在寻找一个简单的 C# 代码示例片段来监视 Oracle 数据库并基本上检查它的最后更新。它可以是命令行(非常适合将来与 Nagios 集成)或 GUI。我已经做了一些原型,但代码往往会变得很长,因为我还在学习这门语言。

任何建议/评论将不胜感激。

0 投票
24 回答
9076 浏览

sql - 你用什么来编写和编辑 Oracle 中的存储过程?

在 Oracle 中编辑和编写存储过程有很多选择;什么是最适合您的工具,为什么?(每个答案一个工具。)