Questions tagged «oracle»

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

3
将行旋转为多列
我有一个SQL Server实例,该实例具有一个链接服务器到Oracle服务器。Oracle服务器上有一个名为的表,PersonOptions其中包含以下数据: ╔══════════╦══════════╗ ║ PersonID ║ OptionID ║ ╠══════════╬══════════╣ ║ 1 ║ A ║ ║ 1 ║ B ║ ║ 2 ║ C ║ ║ 3 ║ B ║ ║ 4 ║ A ║ ║ 4 ║ C ║ ╚══════════╩══════════╝ 我需要透视这些数据,因此结果是: ╔══════════╦═════════╦══════════╦══════════╗ ║ PersonID ║ OptionA ║ Option B ║ …

14
舒适的sqlplus接口?
我发现sqlplus“界面相当过时。有一些命令或关键字可供使用,这很好,但是例如,上一个历史记录条目没有“向上箭头”键可用。 什么是好的替代品/扩展名sqlplus?命令行实用程序可以是GUI或更高版本(因此通过SSH仍然有用)。 SQL * Plus是用于Oracle数据库的主要命令行工具。
21 oracle  tools  sqlplus 

2
在功能/过程中进行DML操作后是否需要提交?
我想知道是否有必要在函数/过程中的插入/删除/更新之后写提交? 例: create or replace function test_fun return number is begin delete from a; return 0; end; 或程序 create or replace procedure aud_clear_pro as begin delete from a; end; 删除后需要提交吗? 无法了解以下情况: 如果我从SQL窗口调用函数/过程,则需要提交 但 如果我使用dbms_scheduler计划功能/过程并运行作业,则自动提交delete语句。 为什么?


2
如何仅捕获和处理特定的Oracle异常?
从这个和这个我猜想,对于ORA-00955没有预定义的命名系统异常。 如何重写以下内容以仅捕获错误ORA-00955? begin EXECUTE IMMEDIATE 'CREATE SEQUENCE S_TEST START WITH 1 INCREMENT BY 1'; exception when OTHERS then Null; end; BTW是否有仅通过提供错误代码来捕获错误的语法?
20 oracle  exception 

2
索引与分区
为什么不能仅通过索引来实现性能改进,所以其他技术(如表分区)变得必要吗?这个问题仅与性能有关,当然可以将不同的分区放入不同的表空间中,这还会产生其他索引无法实现的效果。 或者换句话说,仅在性能方面是明智的:索引是否可以实现与表分区相同的性能改进?


9
在标准版上监视Oracle数据库性能的工具
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 2年前关闭。 这是我在寻找的东西: 适用于标准版,即没有诊断包。 提供当前和历史绩效数据。 良好的视觉效果,可轻松发现趋势并将其呈现给管理层。 如果您使用过该工具,那么我会对您发现的优缺点感兴趣。我可以拿出一个清单,但是实际使用该工具的见解要有价值得多。

4
带有Oracle的SSD
我们一直在研究将SSD与Oracle结合使用以加快测试迁移的速度。目前,迁移过程需要12到18个小时才能完成,具体取决于数据量(我们显然也在做很多性能调整)。我们有许多用于各种运行和分析的廉价linux机器。 戴尔直接提供的SSD成本过高。我想知道是否有人使用过消费级固态硬盘(例如Crucial / Micron)。 我意识到在Linux(使用Centos)上,TRIM支持将是一个问题。有没有人在Windows 7上使用它们来解决这个问题?


2
如何在Oracle中声明和使用变量?
我的主要技能是使用SQL Server,但是有人要求我对Oracle查询进行一些调优。我编写了以下SQL: declare @startDate int select @startDate = 20110501 我得到这个错误: declare @startDate int select @startDate = 20110501 Error at line 1 ORA-06550: line 1, column 9: PLS-00103: Encountered the symbol "@" when expecting one of the following: begin function package pragma procedure subtype type use <an identifier> <a double-quoted delimited-identifier> …

3
缩小VARCHAR列的大小有什么意义吗?
到处搜寻有关VARCHAR2Oracle 的列大小是否影响性能的报告似乎不一。 我想VARCHAR稍微谈谈大小问题,并希望对此有所了解: 给定要存储在(Oracle)数据库中的(多行)自由文本字段(不是名称之类的简短内容),在没有达到最大VARCHAR容量(VARCHAR2(4000)在Oracle上)的情况下(在性能或其他方面)有什么意义(选择Oracle)较小的值,例如1024或512,因为无论如何在98%的情况下,这可能就足够了。


6
在Oracle中删除大型记录集的最佳方法
我管理着一个应用程序,该应用程序具有非常大的Oracle数据库后端(一个表中的数据接近1TB,行数超过5亿)。数据库实际上并没有做任何事情(没有SProcs,没有触发器或任何东西),它只是一个数据存储。 每个月我们都需要从两个主表中清除记录。清除的标准各不相同,并且是行龄和几个状态字段的组合。通常,我们最终每月清除10到5000万行(我们每周通过导入增加大约3-5百万行)。 当前,我们必须批量删除约50,000行(即删除50000,提交,删除50000,提交,重复)。尝试一次全部删除整个批处理会使数据库在大约一个小时内无响应(取决于行数)。像这样批量删除行在系统上非常困难,我们通常必须在一周的时间内“在时间允许的情况下”进行删除。允许脚本连续运行可能会导致用户无法接受的性能下降。 我相信这种批量删除还会降低索引性能,并产生其他影响,最终导致数据库性能下降。一张表上有34个索引,索引数据的大小实际上大于数据本身。 这是我们的一位IT人员用来清除此错误的脚本: BEGIN LOOP delete FROM tbl_raw where dist_event_date < to_date('[date]','mm/dd/yyyy') and rownum < 50000; exit when SQL%rowcount < 49999; commit; END LOOP; commit; END; 该数据库必须达到99.99999%,并且我们每年只有一次2天维护窗口。 我正在寻找一种删除这些记录的更好的方法,但是我还没有找到任何记录。有什么建议么?

6
如何摆脱ORA-28002消息密码将在6天内过期?
我有一个用户收到ORA-28002,该密码指示密码将在六天内过期。我执行以下操作: ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 但是,当我尝试以用户身份登录时,该消息仍然存在。执行此: select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME'; 显示值实际上已更改为UNLIMITED。
18 oracle  security 

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.