Oracle数据库中自带的4张表: dept、emp、bonus和salgrade是练习SQL查询的经典案例表,本文提供在MySQL中建这4张表的SQL语句 1....创建dept表 CREATE TABLE `dept`( `deptno` INT(2) NOT NULL, `dname` VARCHAR(14), `loc` VARCHAR...创建emp表 CREATE TABLE `emp` ( `empno` int(4) NOT NULL PRIMARY KEY, `ename` VARCHAR(10), `...创建bonus表 CREATE TABLE `bonus`( `ename` VARCHAR(10), `job` VARCHAR(9), `sal` INT, `comm...创建salgrade表 CREATE TABLE `salgrade` ( `grade` int, `losal` int, `hisal` int ) ENGINE
♣ 题目部分 在Oracle中,如何将RAC软件转换为单实例软件?...♣ 答案部分 在RAC环境中,只有在集群正常启动的情况下才能创建和启动单实例的数据库,否则报错: [oracle@raclhr-11gR2-N1 ~]$ sqlplus / as sysdba SQL...启动数据库 需要注意的是,在执行编译后,集群仍然能正常启动,但是集群中的RAC数据库不能正常启动,会报错: SYS@lhrrac11> startup ORA-01078: failure in processing...软件转换为单实例软件的更多内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2155632/。...本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
♣ 题目部分 在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢? ♣ 答案部分 1....停用备库MRP进程 对于将物理备库切换到逻辑备库,需要在主库构建LogMiner字典及启用补充日志,因此应先停用备库的MRP进程,避免产生额外的Redo Apply。...如果正在使用Broker管理现有的物理备库,应先在Broker中禁用目标数据库。...在主库上运行: create tablespace logmnrtbs datafile '+DATA' size 100m autoextend on next 5m maxsize 2000m; execute...关闭物理备库的2个节点数据库,然后在节点1上执行: ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE SID='*'; shutdown immediate
♣ 题目部分 在Oracle中,V$SESSION_LONGOPS视图的作用是什么?...♣ 答案部分 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控VSESSION_LONGOPS来观察,当某个操作执行时间超过6秒时,就会被记录在VSESSION_LONGOPS中,通常可以监控到全表扫描...SESSION_LONGOPS A WHERE A.TIME_REMAINING 0 ORDER BY A.TIME_REMAINING DESC, A.SQL_ID, A.SID; 本文选自《Oracle
Q 题目如下所示: 在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?...A 答案如下所示: 在使用RMAN命令(DELETE NOPROMPT ARCHIVELOG ALL;)删除归档信息后,VARCHIVED_LOG视图中的NAME列为空,但是依然可以查询到这些删除了的归档信息...,出现这样的现象是因为使用RMAN命令在删除归档日志的时候不会清除控制文件中的内容,导致VARCHIVED_LOG留下的过期的不完整的失效信息。...(11)”中的11代表的是归档文件(其实就是控制文件中的“record type”),那么其它数字分别代表什么含义呢?...其实,可以通过视图V$CONTROLFILE_RECORD_SECTION来查看: SYS@lhrdb> SELECT ROWNUM-1 "NUMBER", TYPE FROM V$CONTROLFILE_RECORD_SECTION
♣ 题目部分 在Oracle中,和视图相关的查询转换有哪些?...♣ 答案部分 (一)简单视图合并 CREATE OR REPLACE VIEW VW_SVM_LHR AS SELECT * FROM SCOTT.EMP WHERE EMPNO7369; SELECT...DEPTNO") 3 - filter("EMPNO"(+)7369) --视图含有2个表: CREATE OR REPLACE VIEW VW_SVM2_LHR AS SELECT /...DEPTNO") 6 - filter("EMPNO"7369) 可见,视图被保留了下来,单独执行。...JOB"='DBA') 本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。
♣ 题目部分 在Oracle中,如何预估即将创建索引的大小? ♣ 答案部分 如果当前表大小是1TB,那么在某一列上创建索引的话索引大概占用多大的空间?...对于这个问题,Oracle提供了2种可以预估将要创建的索引大小的办法: ① 利用系统包DBMS_SPACE.CREATE_INDEX_COST直接得到。...利用DBMS_SPACE.CREATE_TABLE_COST可以获得将要创建的表的大小。...第二种办法:Oracle 11g新特性:NOTE RAISED WHEN EXPLAIN PLAN FOR CREATE INDEX 这是一个非常实用的小特性,在Oracle 11gR2中使用EXPLAIN...& 说明: 有关如何预估即将创建索引的大小可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-1381160/ 本文选自《Oracle程序员面试笔试宝典
译:Data Pump New Diagnostic V$ Views For Performance Issues in 23c (Doc ID 2920029.1) 适用: Oracle...目的: 本文介绍在23c中用于Data Pump的新的DataPump (G)v$视图以及推荐使用。...范围: 本文的目标是为expdp和impdp提供一个数据收集方法论,以便诊断Oracle 23c中的Job性能问题。...细节: 在23c中,如下三个新视图被建立有助于更快的诊断Data Pump性能相关问题。...@orcl (DW00) 48 ACTIVE SYSTEM SYS_EXPORT_FULL_01 3891500 36244 82 02023-01-09 13:56:07 oracle@orcl
♣ 题目部分 在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢? ♣ 答案部分 1....停用备库MRP进程 对于将物理备库切换到逻辑备库,需要在主库构建LogMiner字典及启用补充日志,因此应先停用备库的MRP进程,避免产生额外的Redo Apply。...如果正在使用Broker管理现有的物理备库,应先在Broker中禁用目标数据库。...关闭物理备库的2个节点数据库,然后在节点1上执行: ALTER SYSTEM SET CLUSTER_DATABASE=FALSE SCOPE=SPFILE SID='*'; shutdown immediate...tuin=26507979、http://blog.itpub.net/26736162/viewspace-2158321/ 本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
♣ 题目部分 在Oracle中,与锁有关的数据字典视图有哪些?...可以通过ROW_WAIT_OBJ#、ROW_WAIT_FILE#、ROW_WAIT_BLOCK#和ROW_WAIT_ROW#这4个字段查询现在正在被锁的表的相关信息(ROWID),例如,表名、文件名及行号...V$SESSION视图中的P1和P2参数根据等待事件的不同所代表的含义也不同,可以从V$EVENT_NAME视图获知每个参数的含义。...在V$LOCK中,当TYPE列的值为TM锁时,则ID1列的值为DBA_OBJECTS.OBJECT_ID,ID2列的值为0;当TYPE列的值为TX锁时,则ID1列的值为视图V$TRANSACTION中的...ID2列的值为视图V$TRANSACTION中的XIDSQN字段(Sequence Number:事务对应的序列号)。
题目部分 在Oracle中,V$SESSION视图中有哪些比较实用的列? 答案部分 讲到Oracle的会话,就必须首先对V$SESSION这个视图中的每个列都非常熟悉。...该视图在Oracle 11gR2下包含97列,在Oracle 12cR2下增加了6列,共包含103列。下面作者以表格的形式对这个视图中的重要列做详细说明。...USERNAME VARCHAR2(30) Oracle用户名。 COMMAND NUMBER 正在执行的SQL语句类型(分析的最后一个语句)。...关于该列值的含义,请参阅V$SQLCOMMAND.COMMAND列。如果该列的值为0,那么表示并没有在V$SESSION视图里记录。...对于利用并行从服务器的操作,将这个值解释为一个4字节的值,其低位两字节表示会话号,而高位字节表示查询协调程序的实例ID。
♣ 题目部分 在Oracle中,V$SESSION_LONGOPS视图的作用是什么?...♣ 答案部分 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控V$SESSION_LONGOPS来观察,当某个操作执行时间超过6秒时,就会被记录在V$SESSION_LONGOPS中,...SESSION_LONGOPS A WHERE A.TIME_REMAINING 0 ORDER BY A.TIME_REMAINING DESC, A.SQL_ID, A.SID; 本文选自《Oracle
♣ 题目部分 在Oracle中,关于SESSION_PRIVS字典视图,哪个陈述是正确的? A)它包含当前用户会话授予其他用户的系统特权。 B)它包含用户会话中可用的当前系统权限。...C)它包含用户会话中可用的当前对象权限。 D)它包含当前用户会话授予其他用户的对象权限。 ♣ 答案部分 答案:B。...字典视图SESSION_PRIVS返回了当前用户会话中可以使用的系统权限,不包含对象权限。对象权限应该查询USER_TAB_PRIVS视图。...-- -------- ----- ----- --- --- LHRXXT SYS XXT SYS SELECT NO NO 本文选自《Oracle
Q 题目如下所示: 在Oracle中,怎样清除V$ARCHIVED_LOG视图中的过期信息?...A 答案如下所示: 在使用RMAN命令(DELETE NOPROMPT ARCHIVELOG ALL;)删除归档信息后,V$ARCHIVED_LOG视图中的NAME列为空,但是依然可以查询到这些删除了的归档信息...,出现这样的现象是因为使用RMAN命令在删除归档日志的时候不会清除控制文件中的内容,导致V$ARCHIVED_LOG留下的过期的不完整的失效信息。...(11)”中的11代表的是归档文件(其实就是控制文件中的“record type”),那么其它数字分别代表什么含义呢?...其实,可以通过视图V$CONTROLFILE_RECORD_SECTION来查看: SYS@lhrdb> SELECT ROWNUM-1 "NUMBER", TYPE FROM V$CONTROLFILE_RECORD_SECTION
♣ 题目部分 在Oracle中,DG中常常用到的比较有用的性能视图有哪些?...l V$ARCHIVED_LOG:在备库执行此查询时,显示该备库接收到的日志。 l V$LOG_HISTORY:包含归档历史的详细信息。...l V$DATAGUARD_STATUS:包含DG生成的消息,这些消息被写入该特定数据库(主库或备库)的告警日志或跟踪文件中。...l DBA_LOGSTDBY_EVENTS:包含最近的SQL Apply事件(例如异常终止)的记录,这些事件也存在于运行SQL Apply的数据库实例的告警日志中。...本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗 About Me:小麦苗 ● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用 ● 作者博客地址:http://blog.itpub.net
3.一张表所有字段在user_tab_cols中是按照行(column_name列)来存储的,我们现在其实需要的是将column_name列转换为行且用逗号分隔开。...检索了一些网上的资料,有些使用case when,有些使用decode函数,但这些前提是需要知道有多少列需要转换为行,现在我们的问题中是不知道这些,其实Oracle还是有行列转换的函数可以直接做这个工作...而且觉得较为好用,所以在应用程序编写过程中大量使用该函数,其结果是由于Oracle对该函数在后续版本中的修改(包括fix、增强)乃至于完全去掉这个函数都是有可能的。...我这使用的是11.2版本的库,因此这函数其实已经被删除了,所以才会报ORA-00904错误。 3.Oracle在11.2中其实还是推出了listagg函数,作为可以实现行列转换的新特性。...说的还是比较晦涩,现在暂时仅关注和这个需求有关的部分, ? 这么使用listagg函数,就可以将user_tab_cols的column_name字段行转换为列,并用逗号分开。
客户的存储过程逻辑并不复杂,就是通过查询系统视图 user_tab_columns 来获取用户的表名,然后再进行 SQL 拼接,完成后续的业务逻辑。 本文将针对这个问题进行相关的测试和验证。...SQL> 由此可见,在 Oracle 中,无论是 u1 还是 u2 用户,调用存储过程时都能正确返回表名,说明两者查询 user_tab_columns 视图的返回结果是一致的,这也是符合预期的。...OB 中虽然可以通过 conn 进行用户切换,切换后的用户也能访问自己的对象,但是在访问 USER_ 等视图时,返回结果与 Oracle 不同。...workaround:先创建一张表,用 to_lob 函数将 text 字段转换为 clob 类型,然后将 dba_views 拷贝到该表中,再通过以上 SQL 进行查询。...5问题总结 在 OB 中,普通用户查询 USER_TAB_COLUMNS 系统视图权限的逻辑与 Oracle 并不一致,导致查询结果有差异。
♣ 题目部分 在Oracle中,将单实例备份集恢复为rac数据库的步骤有哪些?...♣ 答案部分 将单实例备份集恢复为rac数据库的过程基本上就是先将备份集恢复为单实例的数据库,然后再将数据库转换为RAC库。...c2; } 将单实例备份集恢复为rac数据库常用的命令如下所示: ORACLE_SID=lhrdb ORACLE_SID=lhrrac21 mkdir +DATA/lhrrac2/ startup...-i lhrrac22 -n raclhr-11gR2-N2 srvctl config database -d lhrdb srvctl start db -d lhrdb ---重建集群相关的视图...@$ORACLE_HOME/rdbms/admin/catclust.sql & 说明: 有关将单实例备份集恢复为rac数据库的更多内容可以参考我的BLOG:http://blog.itpub.net
♣ 题目部分 Oracle中的视图分为哪几类? ♣ 答案部分 Oracle的视图大约可以分为以下几类: (1)简单视图,基于单个表所建视图,不包含任何函数、表达式及分组数据的视图。...在Oracle中,如果要在当前用户中创建视图,那么用户必须具有CREATE VIEW的系统权限。如果要在其他用户中创建视图,那么用户必须具有CREATE ANY VIEW的系统权限。...在Oracle中创建视图的语法如下所示: CREATE [ OR REPLACE ] [ FORCE ] VIEW [SCHEMA.]VIEW_NAME...② FORCE:强制创建视图,不考虑基表是否存在,也不考虑是否具有使用基表的权限。 ③ COLUMN1,COLUMN2,...:视图的列名,列名的个数必须与SELECT查询中列的个数相同。...在默认情况下,在增、删、改之前并不会检查这些行是否能被SELECT检索到。 ⑤ WITH READ ONLY:创建的视图只能用于查询数据而不能用于更改数据。
♣ 题目部分 在Oracle中,将RAC备份集恢复到单实例数据库的步骤有哪些?...♣ 答案部分 将RAC备份集恢复到单实例数据库的过程基本上就是先将备份集恢复为RAC数据库,然后再将数据库转换为单实例的数据库。...数据库的备份可以使用如下的脚本: run { allocate channel c1 type disk; allocate channel c2 type disk; backup database...c2; } 将RAC备份集恢复到单实例数据库可以分为恢复为ASM存储的单实例和FS存储的单实例,其处理过程分别不同。...1、rac恢复到ASM中 ORACLE_SID=lhrdbasm startup nomount; set dbid 2136828548 restore spfile to '/tmp/aabb.ora
领取专属 10元无门槛券
手把手带您无忧上云