Questions tagged «oracle»

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

5
无法删除不存在的约束,也不能创建约束
在使用生产数据的副本测试某些迁移脚本(脚本与开发数据运行良好)时,我发现了一个奇怪的情况。约束已更改,因此我正在发出DROP + ADD命令: ALTER TABLE A_DUP_CALLE DROP CONSTRAINT A_DUP_CALLE_UK1; ALTER TABLE A_DUP_CALLE ADD CONSTRAINT A_DUP_CALLE_UK1 UNIQUE ( CONTROL_ID, CALLE_AYTO_DUPL ) ENABLE; DROP命令工作正常,但添加命令失败。现在,我陷入了一个恶性循环。我不能删除该约束,因为它不存在(初始删除按预期方式工作): ORA-02443:无法删除约束-不存在约束 我无法创建它,因为名称已经存在: ORA-00955:名称已被现有对象使用 我输入A_DUP_CALLE_UK1到SQL Developer的“ 搜索”框中,然后就可以了!所有者,表名,表景...一切都匹配:它不是具有相同名称的其他对象,这是我的原始约束。该表出现在约束详细信息中,但约束没有出现在表的详细信息中。 我的问题: 这有什么解释? 在实时服务器中进行真正的升级时,如何确保不会发生这种情况? (服务器为10g XE,我没有足够的声誉来创建标签。)

6
Oracle是否可以免费下载?
我是Java开发人员,目前使用PostgreSQL作为RDBMS。但是,我也想学习Oracle。那么,我可以免费下载Oracle(11g)的最新版本吗? 我找到了此链接:Oracle Database 11g第2版下载,并且似乎可以下载。但是,我知道Oracle Server是专有的。那如何运作? 此外,随Oracle 11g的下载一起提供PL / SQL吗?
15 oracle  plsql 

2
“ ORA-01950:对表空间'SYSTEM'没有权限”:这是什么错误?
之前我创建了一个用户: SQL>create user suhail identified by password SQL>User created. SQL>Grant create session,create table to suhail; SQL>Grant Succeeded. 但是当我登录为suhail并尝试创建一个时table,出现错误提示ORA-01950: no privileges on tablespace 'SYSTEM'。这是什么错误?为什么会发生? SQL> connect suhail Enter password: Connected. SQL> create table suhail_table(name char(10)); create table suhail_table(name char(10)) * ERROR at line 1: ORA-01950: no privileges on tablespace 'SYSTEM' 我正在使用Oracle …

3
为什么必须从对偶表中进行选择?
这适用于最可能出现在StackOverflow / dba.stackexchange上的主要关系数据库管理系统,它们是SQL Server,MySQL,PostgreSQL和SQLite(WebSQL)。 select 'abc' abc, 1 def; 它在Oracle上不起作用。为什么我们需要从Oracle的DUAL中进行选择?SQL的ISO / ANSI标准是否需要SELECT语句的FROM子句? 编辑: 根据Per Bacon Bit的回答,SQL标准似乎确实需要这样做。 因此,在现实中,因为DUAL名字是这样的用词不当,如果我要创建一个表,并将其命名为Atom或ONE,如create table one (atom int);.. select 'abc' abc, 1 def FROM one;-有没有比较的性能损失SELECT .. FROM DUAL?
15 oracle  select 

4
使用包含空格,分号和正斜杠的SQLPlus执行脚本
有时候,我会获得一个脚本,该脚本可以在SQL Developer或Toad中正常运行,但是需要修改才能从SQL * Plus成功运行。这是最坏的情况示例,其中包含多个带有空行,分号和正斜杠的语句: INSERT INTO t1 VALUES ('a ; / '); INSERT INTO t1 VALUES ('b ; / '); DELETE FROM t1 WHERE c1 = 'c ; / '; 由于各种原因,这些语句需要从SQL * Plus运行。用简单的...即可轻松解决空白行。 set sqlblanklines on 我知道sqlterminator可以更改和/或关闭它们,但是两者都需要修改代码,前者在不解决问题的情况下解决了问题,也没有解决嵌入式斜杠问题。 最好的答案是一种通过以某种方式更改环境(如sqlblanklines所做的那样)而无需修改即可运行这些语句的方法。如果这不可能,那么也许可以通过编程方式修改脚本。我正在尝试避免手动更改。

2
在SQL查询(或视图定义)中术语“投影”指的是什么
在Oracle的文档的查询优化器,在视图合并,我发现下面的信息 视图合并优化适用于仅包含选择,投影和联接的视图。也就是说,可合并视图不包含集合运算符,聚合函数,DISTINCT,GROUP BY,CONNECT BY等。 (强调我的) 但是,我只能猜测这种预测实际上是指什么。
15 oracle  select 

2
司法删除/更新数据
我需要从甲骨文中取证删除数据。如果我只是删除它,我的理解是数据将实际上仍然存在于数据文件中,直到重新使用该空间为止。我不在乎重做/归档/撤消空间,那些空间会很快老化。 有什么方法可以确保实际上已从数据文件中删除数据?
15 oracle  security 

3
最有效的UUID列类型是什么
为了存储128位UUID,有多种存储选项: 字节[16]列 两个bigint / long(64位)列 CHAR(36)列-32个十六进制数字+ 4个破折号。 UUID数据库特定的列(如果数据库支持) 从索引的角度来看,哪些是最有效的?如果数据库不支持专用的uuid类型,则1,2,3中的哪一个是最佳候选者?

2
为什么截断DDL?
我有一个面试问题,在面试过程中被问到。我回答了这个问题,但是面试官对我的回答并不那么确信。那么,有人请以我的理解纠正我吗? 问:为什么截断是DDL,而删除是DML?两者都做几乎相同的工作(删除行) Ans。当我们使用Truncate时,我们将取消分配数据分配的整个空间,而不保存到undo-table-space中。但是,在Delete的情况下,我们将所有数据放入undo表空间,然后删除所有数据。 请,如果有人知道上述最佳答案,请解释。
15 oracle  delete  ddl  truncate 

3
选择最晚日期或最晚日期
这是两个表。 学校员工 SCHOOL_CODE + STAFF_TYPE_NAME + LAST_UPDATE_DATE_TIME + PERSON_ID ================================================================= ABE Principal 24-JAN-13 111222 ABE Principal 09-FEB-12 222111 人事 PERSON_ID + NAME ================= 111222 ABC 222111 XYZ 这是我的oracle查询。 SELECT MAX(LAST_UPDATE_DATE_TIME) AS LAST_UPDATE, SCHOOL_CODE, PERSON_ID FROM SCHOOL_STAFF WHERE STAFF_TYPE_NAME='Principal' GROUP BY SCHOOL_CODE, PERSON_ID ORDER BY SCHOOL_CODE; 这给出了这个结果 LAST_UPDATE SCHOOL_CODE PERSON_ID ===========+===========+========= …


2
Oracle PL / SQL是否具有标准的ASSERT例程?
我想使用一种ASSERT例程,其功能与其他语言中发现的例程类似,即一种构造(它是一种过程,语法...) ASSERT( <condition>, <msg>) 这样,当<condition>传入的第一个参数为false时,将使用指定的<msg>描述性消息引发异常。 我知道手工完成这项工作很简单,但是我想问一下DBMS是否提供了一个标准的工具。 必须编写我自己的一个或从3rdy-party包中导入一个是不切实际的,因为我需要它对于我正在研究的每个项目都具有完全可移植性和透明性。

2
如何释放磁盘空间?哪些日志/目录要清除?
我想释放Linux机器上的磁盘空间。我仔细研究了空间使用情况,发现以下目录的大小很大 /u01/app/11.2.0/grid/cv/log /u01/app/11.2.0/grid/log/diag/tnslsnr/r1n1/listener_scan2/alert (Contains xml files) /u01/app/11.2.0/grid/rdbms/audit(Contains .aud files) /home/oracle/oradiag_oracle/diag/clients/user_oracle/host_XXXXXXXXXX/alert(Contains xml files) /u01/app/oracle/diag/rdbms/crimesys/crimesys1/alert (Contains xml files) 我可以从这些目录中删除内容吗?注意:我的意思是内容而不是目录。

5
PL / SQL:计算数组中元素的最佳方法?
鉴于这种: DECLARE TYPE T_ARRAY IS TABLE OF VARCHAR2(2000) INDEX BY BINARY_INTEGER; MY_ARRAY T_ARRAY; V_COUNT INTEGER; 我想要做: BEGIN -- ... some code filling the MY_ARRAY array -- obviously COUNT_ELEMENTS() does not exists, this is what I'm looking for :-) V_COUNT := COUNT_ELEMENTS(MY_ARRAY); DBMS_OUTPUT.PUT_LINE('My array containts ' || V_COUNT || ' elements.'); …
14 oracle  plsql 


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.