Questions tagged «oracle»

所有版本的Oracle数据库。如果该上下文在问题中很重要,请添加特定于版本的标记,例如oracle-11g-r2。请勿用于Oracle产品(例如应用程序或中间件)或Oracle拥有的其他数据库产品(例如MySQL或BerkeleyDB)。

3
索引如何影响查询性能?
显然,保留几个不同的索引会对插入和删除性能产生负面影响。查询性能如何:在一个表上保留太多索引完全有意义吗?在任何情况下添加索引都会提高查询性能(当然,对于使用索引的查询而言)还是会因为索引过多而降低查询性能,因为有必要查询所有索引以获取索引。结果? 如果表上有不同的索引:是否会全部考虑这些索引,或者从优化程序的角度来看仅是最佳索引?Oracle是否实现多维索引?


2
对文本列使用自定义优先级进行排序
这是一个示例表: name | cat ---------- hugo | sal bob | mgr mike | dev jeff | mgr john | dev 这两个name和cat是VARCHAR。 cat 反映了这些名称的类别,但我想为其分配优先级,然后执行查询以列出所有名称,并以此优先级排序。 有什么可能的方法?我可以提取cat到第二个表,建立外键等,但考虑到我的应用程序是非常简单的结构可能是不可更改的:准备做什么,我必须列出的mgr名字,其次是dev名称,其次是sal名称?
12 oracle 

4
是否真的有可能无法保证针对此特定的冗余派生表的顺序?
在与Lukas Eder的Twitter交谈中,我偶然发现了这个问题。 尽管正确的行为是将ORDER BY子句应用于最外层查询,因为在这里,我们没有在最外层查询中使用DISTINCT,GROUP BY,JOIN或任何其他WHERE子句,因此RDBMS为什么不通过传入的数据是否由内部查询排序? SELECT * FROM ( SELECT * FROM table ORDER BY time DESC ) AS t 至少在PostgreSQL上运行此示例时,对于内部查询和此派生表示例,您将获得相同的执行计划,以及相同的结果集。 因此,我认为规划器将只丢弃最外面的查询,因为它是多余的,或者只是传递内部表的结果。 有人认为情况可能并非如此吗?

3
oracle预制虚拟机的默认用户名和密码是什么?
我从http://www.oracle.com/technetwork/database/enterprise-edition/databaseappdev-vm-161299.html下载了DeveloperDaysVM2016-06-02_13.ova,并将其成功加载到Virtual Box中。 我以“ oracle”用户身份登录,可以看到桌面。 在虚拟机中,我打开Firefox并导航至: http:// localhost:8080 / ords / hrrest / employees /,并成功接收JSON格式的员工列表。因此,我知道数据库已启动并正在运行。 我唯一的问题是我无法登录数据库。 我试过了: [oracle@vbgeneric oracle]$ sqlplus oracle SQL*Plus: Release 12.1.0.2.0 Production on Tue Jul 5 17:32:22 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Enter password: oracle ERROR: ORA-01017: invalid username/password; logon denied Enter user-name: 我的ORACLE_SID …

2
如何解决ORA-01031:Windows安装上权限不足错误?
我在Windows 2008 R2 Server上安装了Oracle 11G。我还使用单独的安装介质安装了Oracle Client Libraries。客户端安装后,当我尝试使用以下方法登录数据库时: C:\>sqlplus / as sysdba 我收到以下错误: ORA-01031:权限不足 这在客户端安装之前有效。我的帐户在ORA_DBA群组中。我的帐户也位于管理员组中。ORACLE_SID我的环境变量列表中没有设置。一定要吗?这在客户端安装之前有效,当时我也没有该变量。 UAC处于最低级别,我始终cmd以管理员身份运行。 我sqlnet.ora在文件夹中有一个像这样的文件: C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN sqlnet.ora # sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora # Generated by Oracle configuration tools. # This file is actually generated by netca. But if customers choose to # install "Software Only", this file wont …



4
为什么使用显式游标而不是常规循环?
我已经编写了一年的基本Web应用程序(针对Oracle数据库),并且由于功能非常简单,因此我们大多数人坚持使用常规的FOR循环来获取数据: for i in (select * from STUDENTS) loop htp.prn(i.student_last_name || ', ' || i.student_first_name || ' ' || i.student_dob); end loop; 但是,游标似乎是做事的“正确”方法。我可以找到许多有关什么是游标以及如何遍历游标的信息,但是我找不到在常规的FOR循环上使用游标的确凿的理由。是否取决于程序的需求?我应该了解哪些固有优势?
12 oracle  plsql 

1
我可以出于自己的培训目的使用Oracle标准版或企业版吗?
问题是关于Oracle许可条款。 我想了解有关Oracle数据库管理的更多信息。不幸的是,我使用的是LInux的32位版本,因此无法安装Oracle 11 XE(尽管我找不到32位版本)。 可以,如果我在个人笔记本电脑上下载并安装了Oracle Standard或Entrprise,并且无需支付额外费用和隐藏许可证费用就可以使用它,那有可能吗?我不会将其用于任何商业,甚至是开源项目-我只会使用此安装来提高我的DBA技能。

2
从何处开始?
这个问题的答案是社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 这个问题只需要一个答案:甲骨文入门的大量资源清单,包括数据库管理,PL / SQL和SQL。 您可能会发现您的问题已作为该问题的副本被关闭,如果是的话,请不要生气:我们正在竭尽所能提供帮助,而不会稀释该站点的专家重点。要结束与此问题的重复,我们要说:“您真正需要的是花一些时间阅读一些最佳的可用资源,而不是立即回答您的特定问题。如果您确实掌握了这些资源,很快还会有更多高级问题!
11 oracle  plsql 

1
时间有效性和主/外键关系
我通读了一些有关时间有效性和时间特性的oracle教程。但是,在我阅读的示例中,演示表中没有使用主键。 http://docs.oracle.com/cd/E16655_01/appdev.121/e17620/adfns_design.htm#ADFNS1005 http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/ilm /temporal/temporal.html 是否应将主键添加到这些表?我之所以问是因为我想知道另一个表应该如何引用这些临时表之一。我可以将外键从一个时态表添加到另一个时态表吗? 如果我添加一个pk /外键关系,然后用pk更新表中的引用,则带有fk的表指向不再相关的记录.... 时间数据是否破坏了常规主键-外键关系?如果是这样,这对性能有何影响,我是否只将普通列用作“外键”并在查询中为参考时间段选择正确的列? 是否有人知道或有任何示例或教程可以轻松地显示具有正常或伪正常pk / fk用法的时间数据? 谢谢


1
为什么在触发器中没有出现变异表错误?
众所周知(或至少是这样),您不能在触发器内的变异表上使用DML语句。Oracle文档摘录: 变异表是由UPDATE,DELETE或INSERT语句修改的表,或者是可能由DELETE CASCADE约束的影响而更新的表。 发出触发语句的会话无法查询或修改变异表。此限制可防止触发器看到不一致的数据集。 但是,我无法理解为什么当我insert into emp使用SQL Developer或SQL * Plus 执行此演示触发器时不会出现“突变表”错误: CREATE OR REPLACE TRIGGER emp_bri BEFORE INSERT ON emp FOR EACH ROW BEGIN SELECT max(id) + 1 INTO :NEW.id FROM emp; UPDATE emp SET salary = 5000; END emp_bri; 插入成功完成并显示下一个id值,并更新所有emp记录。我正在使用Oracle Database 11g企业版11.2.0.1.0。我已经阅读了有关复合触发器的信息,但样本未使用它们。

2
通过数据库链接查询是否超时?
编辑/前言: 该问题已从SO迁移过来,因为我对DB链接查询超时问题特别感兴趣。SO所提供的解决方法是可以的,但是我对这个问题本身很感兴趣。 动机: 我有一个查询“永远”运行(超过2天,直到终止会话),它使用数据库链接。问题似乎是远程数据库变得不可用,并且由于某些未知原因ORA-02068(没有在这里讨论)而没有提出(查询在此等待)。 (该查询是由dbms_scheduler作业发出的,该作业在PL / SQL程序包中执行一个过程。因此,该作业也被卡住了。但这对于此问题的核心没有特别的兴趣) 我已经通过将我的一个测试数据库置于静默模式并通过数据库链接对其进行查询来模拟这种情况。如预期的那样,查询一直在等待,直到手动取消或取消取消远程DB。 问题: 我无法控制远程数据库的行为和正常运行时间,因此我正在寻找某种可能性来设置使用数据库链接的查询的超时时间。 我已经研究过配置文件(CPU_PER_CALL等),sqlnet.ora参数,将本地命名参数直接添加到连接字符串中(例如添加(connect_timeout=10)到数据库链接定义中),使用运行命令... for update wait 1,但是它们对于繁忙或空闲会话均有效,但不适用于等待中的会话。 因此,我正在数据库链接的“本地”侧搜索某些选项,该选项为通过数据库链接的查询设置超时。由于我对这些特定的DB没有DBA权限,因此 喜欢alter session set xyz或喜欢一些解决方案select ... from a@b "wait 100" --(yes, I know this syntax doesn't exist)。 我目前使用的是10gR2,但将在几周内升级到11gR2,因此使用这些版本中的任何一个都将很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.