데이터 베이스 MySQL 튜토리얼 ORACLE常用问题1000问(摘CSDN

ORACLE常用问题1000问(摘CSDN

Jun 07, 2016 pm 03:26 PM
oracle 일반적으로 사용되는 질문

ORACLE常用傻瓜问题1000问 作者: CCBZZP 1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? administrator/administrator 3. oracle 8.0.

ORACLE常用傻瓜问题1000问
作者:  CCBZZP
1. Oracle安装完成后的初始口令?
    internal/oracle
  sys/change_on_install
  system/manager
  scott/tiger
  sysman/oem_temp
2. ORACLE9IAS WEB CACHE的初始默认用户和密码?
     administrator/administrator
3. oracle 8.0.5怎么创建数据库?
     用orainst。如果有motif界面,可以用orainst /m
4. oracle 8.1.7怎么创建数据库?
     dbassist
5. oracle 9i 怎么创建数据库?
     dbca
6. oracle中的裸设备指的是什么?
     裸设备就是绕过文件系统直接访问的储存空间
7. oracle如何区分 64-bit/32bit 版本?
$ sqlplus '/ AS SYSDBA'
SQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003
(c) Copyright 2001 Oracle Corporation. All rights reserved。
Connected to:
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
With the Partitioning option
JServer Release 9.0.1.0.0 - Production
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
PL/SQL Release 9.0.1.0.0 - Production
CORE 9.0.1.0.0 Production
TNS for Solaris: Version 9.0.1.0.0 - Production
NLSRTL Version 9.0.1.0.0 - Production
SQL>
8. SVRMGR什么意思?
svrmgrl,Server Manager    9i下没有,已经改为用SQLPLUS了
sqlplus /nolog   变为归档日志型的
9. 请问如何分辨某个用户是从哪台机器登陆ORACLE的?
SELECT machine ,terminal FROM V$SESSION;
10. 用什么语句查询字段呢?
desc table_name 可以查询表的结构
select field_name,... from ... 可以查询字段的值
select * from all_tables where table_name like '%'
select * from all_tab_columns where table_name='??'
11. 怎样得到触发器、过程、函数的创建脚本?
desc user_source
user_triggers
12. 怎样计算一个表占用的空间的大小?
select owner,table_name,NUM_ROWS,BLOCKS*AAA/1024/1024 "Size M",EMPTY_BLOCKS,LAST_ANALYZED
from dba_tables
where table_name='XXX';
Here: AAA is the value of db_block_size;
XXX is the table name you want to check
13. 如何查看最大会话数?
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';
SQL>
SQL> show parameter processes
NAME                    TYPE  VALUE
------------------------------------ ------- ------------------------------
aq_tm_processes            integer  1
db_writer_processes         integer  1
job_queue_processes         integer  4
log_archive_max_processes   integer  1
processes                  integer  200
这里为200个用户。
Select * from v$license;
其中sessions_highwater纪录曾经到达的最大会话数
14. 如何查看系统被锁的事务时间?
select * from v$locked_object ;
15. 如何以archivelog的方式运行oracle?
init.ora
log_archive_start = true
RESTART DATABASE
16. 怎么获取有哪些用户在使用数据库?
select username from v$session;
17. 数据表中的字段最大数是多少?
表或视图中的最大列数为 1000
18. 怎样查得数据库的SID ?
select name from v$database;也可以直接查看 init.ora文件
19. 如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ?
select sys_context('userenv','ip_address') from dual;
如果是登陆本机数据库,只能返回127.0.0.1
20. UNIX 下怎么调整数据库的时间?
su -root
date -u 08010000
21. 在ORACLE TABLE中如何抓取MEMO类型栏为空的资料记录?
select remark from oms_flowrec where trim(' ' from remark) is not null ;
22. 如何用BBB表的资料去更新AAA表的数据(有关联的字段)
UPDATE AAA SET BNS_SNM=(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO) WHERE BBB.DPT_NO IS NOT NULL;
23. P4计算机安装方法
     将SYMCJIT.DLL改为SYSMCJIT.OLD
24. 如何查询SERVER是不是OPS?
     SELECT *  FROM V$OPTION;
     如果PARALLEL SERVER=TRUE则有OPS能
25. 如何查询每个用户的权限?
     SELECT *  FROM DBA_SYS_PRIVS;
26. 如何将表移动表空间?
     ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
27. 如何将索引移动表空间?
     ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;
28. 在LINUX,UNIX下如何启动DBA STUDIO?
     OEMAPP  DBASTUDIO
29. 查询锁的状况的对象有?
     V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS ;
      查询锁的表的方法:
SELECT S.SID SESSION_ID,S.USERNAME,DECODE(LMODE,0,'None',1,'Null',2,'Row-S (SS)',3,'Row-X (SX)',4,'Share',

5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR(LMODE)) MODE_HELD,DECODE(REQUEST,0,'None',1,'Null',2,'Row-S (SS)',

3,'Row-X (SX)',4,'Share',5,'S/Row-X (SSX)',6,'Exclusive',TO_CHAR(REQUEST)) MODE_REQUESTED,

O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')',S.TYPE LOCK_TYPE,L.ID1 LOCK_ID1,L.ID2 LOCK_ID2 FROM V$LOCK L,

SYS.DBA_OBJECTS O,V$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;
30. 如何解锁?
     ALTER SYSTEM KILL SESSION  ‘SID,SERIR#’;
31. SQLPLUS下如何修改编辑器?
DEFINE _EDITOR=""  -- 必须加上双引号来定义新的编辑器,也可以把这个写在$ORACLE_HOME/sqlplus/admin/glogin.sql

里面使它永久有效。
32. ORACLE产生随机数的函数?
     DBMS_RANDOM.RANDOM
33. LINUX下查询磁盘竞争状况命令?
     sar  -d
33. LINUX下查询CPU竞争状况命令?
     sar   -r
34. 查询当前用户对象?
     SELECT *  FROM USER_OBJECTS;
     SELECT *  FROM DBA_SEGMENTS;
35. 如何获取错误信息?
     SELECT *  FROM  USER_ERRORS;
36. 如何获取链接状况?
     SELECT * FROM DBA_DB_LINKS;
37. 查看数据库字符状况?
     SELECT *  FROM NLS_DATABASE_PARAMETERS;
     SELECT *  FROM V$NLS_PARAMETERS;
38. 查询表空间信息?
     SELECT *  FROM  DBA_DATA_FILES;
39. ORACLE的INTERAL用户要口令?
     修改 SQLNET.ORA
     SQLNET.AUTHENTICATION_SERVICES=(NTS)
40. 出现JAVA.EXE的解决办法?
     一般是将ORACLEORAHOMEXIHTTPSERVER改成手工启动可以的,X是8或9
41. 如何给表、列加注释?
SQL>comment on table 表 is '表注释';
注释已创建。
SQL>comment on column 表.列 is '列注释';
注释已创建。
SQL> select * from user_tab_comments where comments is not null;
42. 如何查看各个表空间占用磁盘情况?
SQL> col tablespace format a20
SQL> select
      b.file_id         文件ID号,
      b.tablespace_name       表空间名,
      b.bytes         字节数,
      (b.bytes-sum(nvl(a.bytes,0)))   已使用,
             sum(nvl(a.bytes,0))     剩余空间,
      sum(nvl(a.bytes,0))/(b.bytes)*100   剩余百分比
    from dba_free_space a,dba_data_files b
    where a.file_id=b.file_id
    group by b.tablespace_name,b.file_id,b.bytes
           order by b.file_id
43. 如把ORACLE设置为MTS或专用模式?
#dispatchers="(PROTOCOL=TCP) (SERVICE=SIDXDB)"
加上就是MTS,注释就是专用模式,SID是指你的实例名。
44. 如何才能得知系统当前的SCN号 ?
select max(ktuxescnw * power(2,32) + ktuxescnb) from x$ktuxe;
45. 请问如何在ORACLE中取毫秒?
9i之前不支持,9i开始有timestamp。
9i可以用select systimestamp from dual;
46. 如何在字符串里加回车?
     select 'Welcome to visit'||chr(10)||'www.CSDN.NET' from dual ;
47. 中文是如何排序的?
     Oracle9i之前,中文是按照二进制编码进行排序的。
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值:
SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序
     SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序
     SCHINESE_PINYIN_M 按照拼音排序
48.  Oracle8i中对象名可以用中文吗?
     可以
49. 如何改变WIN中SQL*Plus启动选项?
SQL*PLUS自身的选项设置我们可以在$ORACLE_HOME/sqlplus/admin/glogin.sql中设置。
50. 怎样修改oracel数据库的默认日期?
    alter session set nls_date_format='yyyymmddhh24miss';
    或可以在init.ora中加上一行 nls_date_format='yyyymmddhh24miss'
51. 如何将小表放入keep池中?
alter table xxx storage(buffer_pool keep);
52. 如何检查是否安装了某个patch?
     check that  oraInventory
53. 如何使select语句使查询结果自动生成序号?
select rownum,COL from table;
54. 如何知道数据裤中某个表所在的tablespace?
select tablespace_name from user_tables where table_name='TEST';
select * from user_tables中有个字段TABLESPACE_NAME,(oracle);
select * from dba_segments where …;
55. 怎么可以快速做一个和原表一样的备份表?
     create table new_table as (select * from old_table);
55. 怎么在sqlplus下修改procedure?
     select line,trim(text) t from user_source where name =’A’ order by line;
56. 怎样解除PROCEDURE被意外锁定?
     alter system kill session ,把那个session给杀掉,不过你要先查出她的session id
     或把该过程重新改个名字就可以了。
57. SQL Reference是个什么东西?
    是一本sql的使用手册,包括语法、函数等等,Oracle官方网站的文档中心提供下载。
58. 如何查看数据库的状态?
UNIX下
ps -ef | grep ora
Windows下
看服务是否起来;是否可以连上数据库
59. 请问如何修改一张表的主键?
alter table aaa
drop constraint aaa_key ;
alter table aaa
add constraint aaa_key primary key(a1,b1) ;
60. 改变数据文件的大小?
用 ALTER DATABASE .... DATAFILE .... ;
手工改变数据文件的大小,对于原来的 数据文件有没有损害。
61. 怎样查看ORACLE中有哪些程序在运行之中?
     查看v$sessions表
62. 怎么可以看到数据库有多少个tablespace?
select  *   from dba_tablespaces;
63. 如何修改oracle数据库的用户连接数?
修改initSID.ora,将process加大,重启数据库。
64. 如何查出一条记录的最后更新时间?
     可以用logminer 察看
65. 如何在PL/SQL中读写文件?
UTL_FILE包允许用户通过PL/SQL读写操作系统文件。
66. 怎样把“&”放入一条记录中?
insert into a values (translate ('at{&}t','at{}','at'));
67. EXP 如何加QUERY参数?
EXP USER/PASS FILE=A.DMP TABLES(BSEMPMS)
QUERY='"WHERE EMP_NO=/'S09394/'/"﹔
68. 关于oracle8i支持简体和繁体的字符集问题?
     ZHS16GBK可以支持
69. Data Guard是什么软件?
就是Standby的换代产品
70. 如何创建SPFILE?
SQL> connect / as sysdba
SQL> select * from v$version;
SQL> create pfile from spfile;
SQL> CREATE SPFILE FROM PFILE='E:/ora9i/admin/eygle/pfile/init.ora';
文件已创建。
SQL> CREATE SPFILE='E:/ora9i/database/SPFILEEYGLE.ORA' FROM PFILE='E:/ora9i/admin/eygle/pfile/init.ora';
文件已创建。
71. 内核参数的应用?
shmmax
  含义:这个设置并不决定究竟Oracle数据库或者操作系统使用多少物理内存,只决定了最多可以使用的内存数目。这个设置也不影响操作

系统的内核资源。
  设置方法:0.5*物理内存
  例子:Set shmsys:shminfo_shmmax=10485760
  shmmin
  含义:共享内存的最小大小。
  设置方法:一般都设置成为1。
  例子:Set shmsys:shminfo_shmmin=1:
  shmmni
  含义:系统中共享内存段的最大个数。
  例子:Set shmsys:shminfo_shmmni=100
  shmseg
  含义:每个用户进程可以使用的最多的共享内存段的数目。
  例子:Set shmsys:shminfo_shmseg=20:
  semmni
  含义:系统中semaphore identifierer的最大个数。
  设置方法:把这个变量的值设置为这个系统上的所有Oracle的实例的init.ora中的最大的那个processes的那个值加10。
  例子:Set semsys:seminfo_semmni=100
  semmns
  含义:系统中emaphores的最大个数。
  设置方法:这个值可以通过以下方式计算得到:各个Oracle实例的initSID.ora里边的processes的值的总和(除去最大的Processes参数)

+最大的那个Processes×2+10×Oracle实例的个数。
  例子:Set semsys:seminfo_semmns=200
  semmsl
  含义:一个set中semaphore的最大个数。
  设置方法:设置成为10+所有Oracle实例的InitSID.ora中最大的Processes的值。
  例子:Set semsys:seminfo_semmsl=-200
72. 怎样查看哪些用户拥有SYSDBA、SYSOPER权限?
SQL>conn sys/change_on_install
SQL>select * from V_$PWFILE_USERS;
73. 如何单独备份一个或多个表?
exp 用户/密码 tables=(表1,…,表2)
74. 如何单独备份一个或多个用户?
     exp system/manager owner=(用户1,用户2,…,用户n) file=导出文件
75. 如何对CLOB字段进行全文检索?
SELECT * FROM A WHERE dbms_lob.instr(a.a,'K',1,1)>0;
76. 如何显示当前连接用户?
     SHOW  USER
77. 如何查看数据文件放置的路径?
col file_name format a50
SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;
78. 如何查看现有回滚段及其状态?
SQL> col segment format a30
SQL> SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS
79. 如何改变一个字段初始定义的Check范围?
SQL> alter table xxx drop constraint constraint_name;
之后再创建新约束:
SQL> alter table xxx add constraint constraint_name check();
80. Oracle常用系统文件有哪些?
通过以下视图显示这些文件信息:v$database,v$datafile,v$logfile v$controlfile v$parameter;
81. 内连接INNER JOIN?
select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no;
82. 如何外连接?
     select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+);
     select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no;
83. 如何执行脚本SQL文件?
     SQL>@$PATH/filename.sql;
84. 如何快速清空一个大表?
SQL>truncate table table_name;
85. 如何查有多少个数据库实例?
     SQL>SELECT * FROM V$INSTANCE;
86. 如何查询数据库有多少表?
SQL>select * from all_tables;
87. 如何测试SQL语句执行所用的时间?
SQL>set timing on;
     SQL>select * from tablename;
88. CHR()的反函数?
     ASCII()
     SELECT CHAR(65) FROM DUAL;
     SELECT ASCII('A') FROM DUAL;
89. 字符串的连接
     SELECT CONCAT(COL1,COL2) FROM TABLE;
     SELECT COL1||COL2 FROM TABLE;
90. 怎么把select出来的结果导到一个文本文件中?
     SQL>SPOOL C:/ABCD.TXT;
     SQL>select * from table;
     SQL >spool off;
91. 怎样估算SQL执行的I/O数 ?
     SQL>SET AUTOTRACE ON ;
     SQL>SELECT * FROM TABLE;
     或
     SQL>SELECT *  FROM  v$filestat;可以查看IO数
92. 如何在sqlplus下改变字段大小?
     alter table table_name modify (field_name varchar2(100));
     改大行,改小不行(除非都是空的)
93. 如何查询某天的数据?
     select * from table_name where trunc(日期字段)=to_date('2003-05-02','yyyy-mm-dd');
94. sql 语句如何插入全年日期?
create table BSYEAR (d date);
insert into BSYEAR
select to_date('20030101','yyyymmdd')+rownum-1
from all_objects
where rownum 95. 如果修改表名?
     alter table old_table_name rename to new_table_name;
96. 如何取得命令的返回状态值?
sqlcode=0
97. 如何知道用户拥有的权限?
     SELECT * FROM dba_sys_privs ;
98. 从网上下载的ORACLE9I与市场上卖的标准版有什么区别?
        从功能上说没有区别,只不过oracle公司有明文规定;从网站上下载的oracle产品不得用于商业用途,否则侵权。
99. 怎样判断数据库是运行在归档模式下还是运行在非归档模式下?
进入dbastudio,历程--〉数据库---〉归档查看。
100. sql>startup pfile和ifile,spfile有什么区别?
pfile就是Oracle传统的初始化参数文件,文本格式的;
ifile类似于c语言里的include,用于把另一个文件引入;
spfile是9i里新增的并且是默认的参数文件,二进制格式;
startup后应该只可接pfile。
101. 如何搜索出前N条记录?
SELECT * FROM empLOYEE WHERE ROWNUM ORDER BY empno;
102. 如何知道机器上的Oracle支持多少并发用户数?
     SQL>conn internal  ;
SQL>show parameter processes ;
103. db_block_size可以修改吗?
     一般不可以﹐不建议这样做的。
104. 如何统计两个表的记录总数?
     select (select count(id) from aa)+(select count(id) from bb) 总数 from dual;
105. 怎样用Sql语句实现查找一列中第N大值?
     select * from
(select t.*,dense_rank() over (order by sal) rank from employee)
where rank = N;
106. 如何在给现有的日期加上2年?(
     select add_months(sysdate,24) from dual;
107. USED_UBLK为负值表示什么意思?
     It is "harmless"。
108. Connect string是指什么?
        应该是tnsnames.ora中的服务名后面的内容
109. 怎样扩大REDO LOG的大小?
        建立一个临时的redolog组,然后切换日志,删除以前的日志,建立新的日志。
110. tablespace 是否不能大于4G?
    没有限制。
111. 返回大于等于N的最小整数值?
     SELECT CEIL(N)  FROM DUAL;
112. 返回小于等于N的最小整数值?
     SELECT FLOOR(N)  FROM DUAL;
113. 返回当前月的最后一天?
     SELECT LAST_DAY(SYSDATE)  FROM DUAL;
114. 如何不同用户间数据导入?
     IMP  SYSTEM/MANAGER  FILE=AA.DMP  FROMUSER=USER_OLD   TOUSER=USER_NEW  ROWS=Y  INDEXES=Y ;
115. 如何找数据库表的主键字段的名称?
     SQL>SELECT * FROM user_constraints WHERE CONSTRAINT_TYPE='P' and   table_name='TABLE_NAME';
116. 两个结果集互加的函数?
     SQL>SELECT * FROM BSEMPMS_OLD INTERSECT SELECT * FROM BSEMPMS_NEW;
SQL>SELECT * FROM BSEMPMS_OLD UNION SELECT * FROM BSEMPMS_NEW
SQL>SELECT * FROM BSEMPMS_OLD UNION ALL SELECT * FROM BSEMPMS_NEW;
117. 两个结果集互减的函数?
SQL>SELECT * FROM BSEMPMS_OLD MINUS SELECT * FROM BSEMPMS_NEW;
118. 如何配置Sequence?
     建sequence seq_custid
     create sequence seq_custid start 1 incrememt by 1;
     建表时:
     create table cust
     { cust_id smallint not null,
     ...}
     insert 时:
     insert into table cust
     values( seq_cust.nextval,...)
日期的各部分的常用的的写法
119. 取时间点的年份的写法:
      SELECT TO_CHAR(SYSDATE,'YYYY') FROM DUAL;
120. 取时间点的月份的写法:
      SELECT TO_CHAR(SYSDATE,'MM') FROM DUAL;
121. 取时间点的日的写法:
      SELECT TO_CHAR(SYSDATE,'DD') FROM DUAL;
122. 取时间点的时的写法:
      SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;
123. 取时间点的分的写法:
      SELECT TO_CHAR(SYSDATE,'MI') FROM DUAL;
124. 取时间点的秒的写法:
      SELECT TO_CHAR(SYSDATE,'SS') FROM DUAL;
125. 取时间点的日期的写法:
      SELECT TRUNC(SYSDATE) FROM DUAL;
126. 取时间点的时间的写法:
      SELECT TO_CHAR(SYSDATE,'HH24:MI:SS') FROM DUAL;
127. 日期,时间形态变为字符形态:
      SELECT TO_CHAR(SYSDATE) FROM DUAL;
128. 将字符串转换成日期或时间形态:
      SELECT TO_DATE('2003/08/01') FROM DUAL;
129. 返回参数的星期几的写法:
      SELECT TO_CHAR(SYSDATE,'D') FROM DUAL;
130. 返回参数一年中的第几天的写法:
      SELECT TO_CHAR(SYSDATE,'DDD') FROM DUAL;
131. 返回午夜和参数中指定的时间值之间的秒数的写法:
      SELECT TO_CHAR(SYSDATE,'SSSSS') FROM DUAL;
132. 返回参数中一年的第几周的写法:
      SELECT TO_CHAR(SYSDATE,'WW') FROM DUAL;
虚拟字段
133. CURRVAL 和 nextval
     为表创建序列
     CREATE SEQUENCE EMPSEQ ... ;
     SELECT empseq.currval FROM DUAL ;
     自动插入序列的数值
     INSERT INTO emp
         VALUES (empseq.nextval, 'LEWIS', 'CLERK',
                 7902, SYSDATE, 1200, NULL, 20) ;
134. ROWNUM
     按设定排序的行的序号
     SELECT * FROM emp WHERE ROWNUM 135. ROWID
     返回行的物理地址
     SELECT ROWID, ename FROM emp  WHERE deptno = 20 ;
136. 将N秒转换为时分秒格式?
     set serverout on
     declare
       N number := 1000000;
       ret varchar2(100);
     begin
       ret := trunc(n/3600) || '小时' || to_char(to_date(mod(n,3600),'sssss'),'fmmi"分   "ss"秒"') ;
       dbms_output.put_line(ret);
     end;
137. 如何查询做比较大的排序的进程?
     SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, a.username, a.osuser, a.status
     FROM v$session a,v$sort_usage b
     WHERE a.saddr = b.session_addr
     ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks ;
138. 如何查询做比较大的排序的进程的SQL语句?
     select /*+ ORDERED */ sql_text from v$sqltext a
     where a.hash_value = (
       select sql_hash_value from v$session b
       where b.sid = &sid and b.serial# = &serial)
     order by piece asc ;
139. 如何查找重复记录?
     SELECT * FROM TABLE_NAME
     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
       WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
140. 如何删除重复记录?
     DELETE FROM TABLE_NAME
     WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
     WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
141. 如何快速编译所有视图?
     SQL >SPOOL VIEW1.SQL
     SQL >SELECT ‘ALTER VIEW ‘||TNAME||’
     COMPILE;’ FROM TAB;
     SQL >SPOOL OFF
     然后执行VIEW1.SQL即可。
     SQL >@VIEW1.SQL;
142. ORA-01555 SNAPSHOT TOO OLD的解决办法
     增加MINEXTENTS的值,增加区的大小,设置一个高的OPTIMAL值。
143. 事务要求的回滚段空间不够,表现为表空间用满(ORA-01560错误),回滚段扩展到达参数      MAXEXTENTS的值(ORA-01628)的解决办

法。
     向回滚段表空间添加文件或使已有的文件变大;增加MAXEXTENTS的值。
144. 如何加密ORACLE的存储过程?
     下列存储过程内容放在AA.SQL文件中
     create or replace procedure testCCB(i in number) as
     begin
       dbms_output.put_line('输入参数是'||to_char(i));
     end;
     SQL>wrap iname=a.sql;
     PL/SQL Wrapper: Release 8.1.7.0.0 - Production on Tue Nov 27 22:26:48 2001
     Copyright (c) Oracle Corporation 1993, 2000.  All Rights Reserved。
     Processing AA.sql to AA.plb
     运行AA.plb
     SQL> @AA.plb ;
145. 如何监控事例的等待?
     select event,sum(decode(wait_Time,0,0,1)) "Prev",
     sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot"
     from v$session_Wait
     group by event order by 4;
146. 如何回滚段的争用情况?
     select name, waits, gets, waits/gets "Ratio"
     from v$rollstat C, v$rollname D
     where C.usn = D.usn;
147. 如何监控表空间的 I/O 比例?
     select B.tablespace_name name, B.file_name "file", A.phyrds pyr, A.phyblkrd pbr, A.phywrts pyw, A.phyblkwrt pbw
     from v$filestat A, dba_data_files B
     where A.file# = B.file_id
     order by B.tablespace_name;
148. 如何监控文件系统的 I/O 比例?
     select substr(C.file#,1,2) "#", substr(C.name,1,30) "Name", C.status, C.bytes, D.phyrds, D.phywrts
     from v$datafile C, v$filestat D
     where C.file# = D.file#;
149. 如何在某个用户下找所有的索引?
     select user_indexes.table_name, user_indexes.index_name,uniqueness, column_name
     from user_ind_columns, user_indexes
     where user_ind_columns.index_name = user_indexes.index_name
       and user_ind_columns.table_name = user_indexes.table_name
     order by user_indexes.table_type, user_indexes.table_name,
     user_indexes.index_name, column_position;
150. 如何监控 SGA 的命中率?
     select a.value + b.value "logical_reads", c.value "phys_reads",
     round(100 * ((a.value+b.value)-c.value) / (a.value+b.value)) "BUFFER HIT RATIO"
     from v$sysstat a, v$sysstat b, v$sysstat c
     where a.statistic# = 38 and b.statistic# = 39
       and c.statistic# = 40;
151. 如何监控 SGA 中字典缓冲区的命中率?
     select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio",
     (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio"
     from v$rowcache
     where gets+getmisses 0
     group by parameter, gets, getmisses;
152. 如何监控 SGA 中共享缓存区的命中率,应该小于1% ?
     select sum(pins) "Total Pins", sum(reloads) "Total Reloads",
     sum(reloads)/sum(pins) *100 libcache
     from v$librarycache;
     select sum(pinhits-reloads)/sum(pins) "hit radio",sum(reloads)/sum(pins)    "reload percent"
     from v$librarycache;
153. 如何显示所有数据库对象的类别和大小?
     select count(name) num_instances ,type ,sum(source_size) source_size ,
     sum(parsed_size) parsed_size ,sum(code_size) code_size ,sum(error_size)    error_size,
     sum(source_size) +sum(parsed_size) +sum(code_size) +sum(error_size)    size_required
     from dba_object_size
     group by type order by 2;
154. 监控 SGA 中重做日志缓存区的命中率,应该小于1%
     SELECT name, gets, misses, immediate_gets, immediate_misses,
     Decode(gets,0,0,misses/gets*100) ratio1,
     Decode(immediate_gets+immediate_misses,0,0,
     immediate_misses/(immediate_gets+immediate_misses)*100) ratio2
     FROM v$latch WHERE name IN ('redo allocation', 'redo copy');
155. 监控内存和硬盘的排序比率,最好使它小于 .10,增加 sort_area_size
     SELECT name, value FROM v$sysstat WHERE name IN ('sorts (memory)', 'sorts(disk)');
156. 如何监控当前数据库谁在运行什么SQL语句?
     SELECT osuser, username, sql_text from v$session a, v$sqltext b
     where a.sql_address =b.address order by address, piece;
157. 如何监控字典缓冲区?
     SELECT (SUM(PINS - RELOADS)) / SUM(PINS) "LIB CACHE" FROM V$LIBRARYCACHE;
     SELECT (SUM(GETS - GETMISSES - USAGE - FIXED)) / SUM(GETS) "ROW CACHE" FROM    V$ROWCACHE;
     SELECT SUM(PINS) "EXECUTIONS", SUM(RELOADS) "CACHE MISSES WHILE EXECUTING" FROM    V$LIBRARYCACHE;
     后者除以前者,此比率小于1%,接近0%为好。
     SELECT SUM(GETS) "DICTIONARY GETS",SUM(GETMISSES) "DICTIONARY CACHE GET MISSES"
     FROM V$ROWCACHE
158. 监控 MTS
     select busy/(busy+idle) "shared servers busy" from v$dispatcher;
     此值大于0.5时,参数需加大
     select sum(wait)/sum(totalq) "dispatcher waits" from v$queue where type='dispatcher';
     select count(*) from v$dispatcher;
     select servers_highwater from v$mts;
     servers_highwater接近mts_max_servers时,参数需加大
159. 如何知道当前用户的ID号?
     SQL>SHOW USER;
     或    SQL>select user from dual;
160. 如何查看碎片程度高的表?
     SELECT segment_name table_name , COUNT(*) extents
     FROM dba_segments WHERE owner NOT IN ('SYS', 'SYSTEM') GROUP BY segment_name
     HAVING COUNT(*) = (SELECT MAX( COUNT(*) ) FROM dba_segments GROUP BY segment_name);
162. 如何知道表在表空间中的存储情况?
     select segment_name,sum(bytes),count(*) ext_quan from dba_extents where
     tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name;
163. 如何知道索引在表空间中的存储情况?
     select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner'
     group by segment_name;
164、如何知道使用CPU多的用户session?
     11是cpu used by this session
     select a.sid,spid,status,substr(a.program,1,40) prog,a.terminal,osuser,value/60/100 value
     from v$session a,v$process b,v$sesstat c
     where c.statistic#=11 and c.sid=a.sid and a.paddr=b.addr order by value desc;
165. 如何知道监听器日志文件?
     以8I为例
     $ORACLE_HOME/NETWORK/LOG/LISTENER.LOG
166. 如何知道监听器参数文件?
     以8I为例
     $ORACLE_HOME/NETWORK/ADMIN/LISTENER.ORA
167. 如何知道TNS 连接文件?
     以8I为例
     $ORACLE_HOME/NETWORK/ADMIN/TNSNAMES.ORA
168. 如何知道Sql*Net 环境文件?
     以8I为例
     $ORACLE_HOME/NETWORK/ADMIN/SQLNET.ORA
169. 如何知道警告日志文件?
     以8I为例
     $ORACLE_HOME/ADMIN/SID/BDUMP/SIDALRT.LOG
170. 如何知道基本结构?
     以8I为例
     $ORACLE_HOME/RDBMS/ADMIN/STANDARD.SQL
171. 如何知道建立数据字典视图?
     以8I为例
     $ORACLE_HOME/RDBMS/ADMIN/CATALOG.SQL
172. 如何知道建立审计用数据字典视图?
     以8I为例
     $ORACLE_HOME/RDBMS/ADMIN/CATAUDIT.SQL
173. 如何知道建立快照用数据字典视图?
     以8I为例
     $ORACLE_HOME/RDBMS/ADMIN/CATSNAP.SQL
SQL语句的优化方法
174. /*+ALL_ROWS*/
      表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化。
      例如:
      SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
175. /*+FIRST_ROWS*/
      表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化。
      例如:
      SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE    EMP_NO='CCBZZP';
176. /*+CHOOSE*/
      表明如果数据字典中有访问表的统计信息,将基于开销的优化方法,并获得最佳的吞吐量;
      表明如果数据字典中没有访问表的统计信息,将基于规则开销的优化方法;
      例如:
      SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP';
177. /*+RULE*/
      表明对语句块选择基于规则的优化方法。
      例如:
      SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='CCBZZP'; 
178. /*+FULL(TABLE)*/
      表明对表选择全局扫描的方法。
      例如:
      SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='CCBZZP';
179. /*+ROWID(TABLE)*/
      提示明确表明对指定表根据ROWID进行访问。
      例如:
      SELECT /*+ROWID(BSEMPMS)*/ * FROM BSEMPMS WHERE ROWID>='AAAAAAAAAAAAAA'
      AND EMP_NO='CCBZZP';
180. /*+CLUSTER(TABLE)*/
      提示明确表明对指定表选择簇扫描的访问方法,它只对簇对象有效。
      例如:
      SELECT  /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
      WHERE DPT_NO='TEC304' AND BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
181. /*+INDEX(TABLE INDEX_NAME)*/
      表明对表选择索引的扫描方法。
      例如:
      SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX BECAUSE THERE ARE FEWMALE    BSEMPMS */  FROM BSEMPMS WHERE SEX='M';
182. /*+INDEX_ASC(TABLE INDEX_NAME)*/
      表明对表选择索引升序的扫描方法。
      例如:
      SELECT /*+INDEX_ASC(BSEMPMS PK_BSEMPMS) */  FROM BSEMPMS WHERE DPT_NO='CCBZZP';
183. /*+INDEX_COMBINE*/
      为指定表选择位图访问路经,如果INDEX_COMBINE中没有提供作为参数的索引,将选择出位图索引的
      布尔组合方式。
      例如:
      SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
      WHERE SAL184. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
      提示明确命令优化器使用索引作为访问路径。
      例如:
      SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
      FROM BSEMPMS WHERE SAL185. /*+INDEX_DESC(TABLE INDEX_NAME)*/
      表明对表选择索引降序的扫描方法。
      例如:
      SELECT /*+INDEX_DESC(BSEMPMS PK_BSEMPMS) */  FROM BSEMPMS WHERE    DPT_NO='CCBZZP';
186. /*+INDEX_FFS(TABLE INDEX_NAME)*/
      对指定的表执行快速全索引扫描,而不是全表扫描的办法。
      例如:
      SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';
187. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
      提示明确进行执行规划的选择,将几个单列索引的扫描合起来。
      例如:
      SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='CCBZZP' AND DPT_NO='TDC306';
188. /*+USE_CONCAT*/
      对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询。
      例如:
      SELECT /*+USE_CONCAT*/ * FROM BSEMPMS WHERE DPT_NO='TDC506' AND SEX='M';
189. /*+NO_EXPAND*/
      对于WHERE后面的OR 或者IN-LIST的查询语句,NO_EXPAND将阻止其基于优化器对其进行扩展。
      例如:
      SELECT /*+NO_EXPAND*/ * FROM BSEMPMS WHERE  DPT_NO='TDC506' AND SEX='M';
190. /*+NOWRITE*/
      禁止对查询块的查询重写操作。
191. /*+REWRITE*/
      可以将视图作为参数。
192. /*+MERGE(TABLE)*/
      能够对视图的各个查询进行相应的合并。
      例如:
      SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B

GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;
193. /*+NO_MERGE(TABLE)*/
      对于有可合并的视图不再合并。
      例如:
      SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B

GROUP BY DPT_NO) V WHERE A.DPT_NO=V.DPT_NO AND A.SAL>V.AVG_SAL;
   194. /*+ORDERED*/
      根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接。
      例如:
      SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C WHERE A.COL1=B.COL1 AND B.COL1=C.COL1;
195. /*+USE_NL(TABLE)*/
      将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表。
      例如:
      SELECT /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE

BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
196. /*+USE_MERGE(TABLE)*/
      将指定的表与其它行源通过合并排序连接方式连接起来。
      例如:
      SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
197. /*+USE_HASH(TABLE)*/
      将指定的表与其它行源通过哈希连接方式连接起来。
      例如:
      SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
198. /*+DRIVING_SITE(TABLE)*/
      强制与ORACLE所选择的位置不同的表进行查询执行。
      例如:
      SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;199. /*+LEADING(TABLE)*/
      将指定的表作为连接次序中的首表。
   
200. /*+CACHE(TABLE)*/
      当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
      例如:
      SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM  BSEMPMS;
201. /*+NOCACHE(TABLE)*/
      当进行全表扫描时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列表LRU的最近使用端
      例如:
      SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM  BSEMPMS;
202. /*+APPEND*/
      直接插入到表的最后,可以提高速度。
      insert /*+append*/ into test1  select * from test4 ;
203. /*+NOAPPEND*/
      通过在插入语句生存期内停止并行模式来启动常规插入。
      insert /*+noappend*/ into test1  select * from test4 ;
ORACLE内部函数
204. 如何得到字符串的第一个字符的ASCII值?
       ASCII(CHAR)
       SELECT ASCII('ABCDE') FROM DUAL;
       结果: 65
205. 如何得到数值N指定的字符?
       CHR(N)
       SELECT CHR(68) FROM DUAL;
       结果: D
206. 如何连接两个字符串?
       CONCAT(CHAR1,CHAR2)
       SELECT CONCAT('ABC','DEFGH') FROM DUAL;
       结果: 'ABCDEFGH'
207. 如何将列中的数值代替为字符串?
       DECODE(CHAR,N1,CHAR1,N2,CHAR2...)
       SELECT DECODE(DAY,1,'SUN',2,'MON') FROM DUAL;
208. INITCAP(CHAR)
       将字符串CHAR的第一个字符为大写,其余为小写。
       SELECT INITCAP('ABCDE') FROM DUAL;
209. LENGTH(CHAR)
       取一字符串CHAR的长度。
       SELECT LENGTH('ABCDE') FROM DUAL;
210. LOWER(CHAR)
       将字符串CHAR全部变为小写。
       SELECT LOWER('ABCDE') FROM DUAL;
211. LPAD(CHAR1,N,CHAR2)
       用字符串CHAR2包括的字符左填CHAR1,使其长度为N。
       SELECT LPAD('ABCDEFG',10'123') FROM DUAL;
       结果: '123ABCDEFG'
  212. LTRIM(CHAR,SET)
       从字符串CHAR的左边移去字符串SET中的字符,直到第一个不是SET中的字符为止。
       SELECT ('CDEFG','CD') FROM DUAL;
       结果: 'EFG'
213. NLS_INITCAP(CHAR)
       取字符CHAR的第一个字符大写,其余字符为小写。
       SELECT NLS_INITCAP('ABCDE') FROM DUAL;
214. NLS_LOWER(CHAR)
       将字符串CHAR包括的字符全部小写。
       SELECT NLS_LOWER('AAAA') FROM DUAL;
215. NLS_UPPER(CHAR)
       将字符串CHAR包括的字符全部大写。
       SELECT NLS_UPPER('AAAA') FROM DUAL;
216. REPLACE(CHAR1,CHAR2,CHAR3)
       用字符串CHAR3代替每一个列值为CHAR2的列,其结果放在CHAR1中。
       SELECT REPLACE(EMP_NO,'123','456') FROM DUAL;
217. RPAD(CHAR1,N,CHAR2)
       用字符串CHAR2右填字符串CHAR1,使其长度为N。
       SELECT RPAD('234',8,'0') FROM DUAL;
218. RTRIM(CHAR,SET)
       移去字符串CHAR右边的字符串SET中的字符,直到最后一个不是SET中的字符为止。
       SELECT RTRIM('ABCDE','DE') FROM DUAL;
219. SUBSTR(CHAR,M,N)
       得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为一个字符的。
       SELECT SUBSTR('ABCDE',2,3) FROM DUAL;
220. SUBSTRB(CHAR,M,N)
       得到字符串CHAR从M处开始的N个字符. 双字节字符,一个汉字为二个字符的。
       SELECT SUBSTRB('ABCDE',2,3) FROM DUAL;
221. TRANSLATE(CHAR1,CHAR2,CHAR3)
       将CHAR1中的CHAR2的部分用CHAR3代替。
       SELECT TRANSLATE('ABCDEFGH','DE','MN') FROM  DUAL;
222. UPPER(CHAR)
       将字符串CHAR全部为大写。
223. ADD_MONTHS(D,N)
       将N个月增加到D日期。
       SELECT ADD_MONTHS(SYSDATE,5) FROM DUAL;
224. LAST_DAY(D)
       得到包含D日期的月份的最后的一天的日期。
       SELECT LAST_DAY(SYSDATE) FROM DUAL;
225. MONTH_BETWEEN(D1,D2)
       得到两个日期之间的月数。
       SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;
226. NEXT_DAY(D,CHAR)
       得到比日期D晚的由CHAR命名的第一个周日的日期。
       SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY') FROM DUAL;
227. ROUNT(D,FMT)
       得到按指定的模式FMT舍入到的最进的日期。
       SELECT ROUNT('2003/09/20',MONTH) FROM DUAL;
228. SYSDATE
       得到当前系统的日期和时间。
       SELECT SYSDATE FROM DUAL;
229. TO_CHAR(D,FMT)
       将日期D转换为FMT的字符串。
       SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD') FROM DUAL;
230. TO_DATE(CHAR,FMT)
       将字符串CHAR按FMT的格式转换为日期。
       SELECT TO_DATE('2003/09/20','YYYY/MM/DD') FROM DUAL;
231. ABS(N)
       得到N的绝对值。
       SELECT ABS(-6) FROM DUAL;
232. CEIL(N)
       得到大于或等于N的最大整数。
       SELECT CEIL(5.6) FROM DUAL;
233. COS(N)
       得到N的余弦值。
       SELECT COS(1) FROM DUAL;
234. SIN(N)
       得到N的正弦值。
       SELECT SIN(1) FROM DUAL;
235. COSH(N)
       得到N的双曲余弦值。
       SELECT COSH(1) FROM DUAL;
236. EXP(N)
       得到N的E的N次幂。
       SELECT EXP(1) FROM DUAL;
237. FLOOR(N)
       得到小于或等于N的最小整数。
       SELECT FLOOR(5.6) FROM DUAL;
238. LN(N)
       得到N的自然对数。
       SELECT LN(1) FROM DUAL;
239. LOG(M,N)
       得到以M为底N的对数。
       SELECT LOG(2,8) FROM DUAL;
240. MOD(M,N)
       得到M除以N的余数。
       SELECT MOD(100,7) FROM DUAL;
241. POWER(M,N)
       得到M的N幂。
       SELECT POWER(4,3) FROM DUAL;
242. ROUND(N,M)
       将N舍入到小数点后M位。
      SELECT (78.87653,2) FROM DUAL;
243. SIGN(N)
       当N       当N>0时,得到1;
      当N=0时,得到0;
       SELECT SIGN(99) FROM DUAL;
244. SINH(N)
       得到N的双曲正弦值。
       SELECT SINH(1) FROM DUAL;
245. SORT(N)
       得到N的平方根,N>=0
       SELECT SORT(9) FROM DUAL;
246. TAN(N)
       得到N的正切值。
       SELECT TAN(0) FROM DUAL;
247. TANH(N)
       得到N的双曲正切值。
       SELECT TANH(0) FROM DUAL;
248. TRUNC(N,M)
       得到在M位截断的N的值。
       SELECT TRUNC(7.7788,2) FROM DUAL;
249. COUNT()
       计算满足条件的记录数。
       SELECT COUNT(*) FROM TABLE1 WHERE COL1='AAA';
250. MAX()
       对指定的列求最大值。
       SELECT MAX(COL1) FROM TABLE1;
251. MIN()
       对指定的列求最小值。
       SELECT MIN(COL1) FROM TABLE1;
252. AVG()
       对指定的列求平均值。
       SELECT AVG(COL1) FROM TABLE1;
253. SUM()
       计算列的和。
       SELECT SUM(COL1) FROM DUAL;
254. TO_NUMBER(CHAR)
       将字符转换为数值。
       SELECT TO_NUMBER('999') FROM DUAL;
255. CHARTOROWID(CHAR)
      将包含外部语法ROWID的CHAR或VARCHAR2数值转换为内部的二进制语法,参数CHAR必须是包含外部语法的ROWID的18字符的字符串。
      SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
      NAME :  LEIXUE
256. CONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)
      CONVERT将字符串CHAR中的字符从SOURCE_CHAR_SET标识的字符集转换为由DEST_CHAR_SET标识的字符集
      SELECT CONVERT('GroB','US7ASCII','WE8HP') 'CONVERSION' FROM PUBS;
      CONVERSION:  Gross
257. HEXTORAW(CHAR)
      将包含十六进制的CHAR转换为一个RAW数值。
      INSERT INTO BSEMPMS(RAW_COLUMN) SELECT HEXTORAW('7D') FROM TEST;
258. RAWTOHEX(RAW)
      将RAW数值转换为一个包含十六进制的CHAR值。
      SELECT RAWTOHEX(RAW_COLUMN) 'CONVERSION' FROM BSEMPMS;
      CONVERSION:  7D
259. ROWIDTOCHAR(ROWID)
      将一个ROWID数值转换为VARCHAR2数据类型。
      SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE '%BR1AAB%';
260. TO_MULTI_BYTE(CHAR)
      将CHAR中的单字节转换为等价的多字节字符。
      SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST;
261. TO_SINGLE_BYTE(CHAR)
      将CHAR中的多字节转换为等价的单字节字符。
      SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST;
262. TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS})
      将文本TEXT按照指定的转换方式转换成数据库字符集和民族字符集。
      其中TEXT是待转换的。
      USING CHAR_CS参数转换TEXT为数据库字符集,输出数据类型是VARCHAR2。
      USING NCHAR_CS参数转换TEXT为数据库字符集,输出数据类型是NVARCHAR2。
      CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20));
INSERT INTO TEST VALUES('HI,N'BYE');
      SELECT * FROM TEST;
   263. DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH)
      返回一个包含数据类型代码,字节长度等内部表示信息的VARCHAR2值.返回结果是当前数据库字符集,数据类型按照下面规定的内部数据

类型的编码作为一个数字进行返回:
        代码       数据类型
        0          VARCHAR2
        1          NUMBER
        8          LONG
        12         DATE
        23         RAW
        24         LONG RAW
        69         ROWID
        96         CHAR
       106        MSSLABEL
      参数RETUEN_FORMAT指定按照下面的基数表示返回的数值。
        RETURN_FORMAT   RESULT
           8              8进制
           10             10进制
           16             16进制
           17             单字符表示
      如果参数RETURN_FORMAT没有指定,则按十进制表示返回。
      如果参数START_POSITION和LENGTH被指定,则从START_POSITION开始的长为LENGTH的字节将被返回,缺省是返回整数表示。
      SELECT DUMP('ABC',1016) FROM TEST;
      select dump(ename,8,3,2) 'example' from emp where name='ccbzzp';
264. empty_b|clob()
      返回一个空的LOB定位符,用在初始化LOB变量,或用在INSERT及UPDATE声明去初始化LOB列或将其属性置为空。
      INSERT INTO TABLE1 VALUES(EMPTY_BLOB());
      UPDATE TABLE1 SET CLOB_COL=EMPTY_BLOB();
265. BFILENAME('DIRECTORY','FILENAME')
      返回一个BFILE定位符,相关的二进制LOB物理文件在服务器的文件系统上.目录DIRECTORY是指在服务器的文件系统上实际搜索路径全名

的别名. FILENAME是指服务器的文件系统的文件名。
      INSERT INTO FILE_TAB VALUES(BFILENAME('LOB_DIR','IMAGE1.GIF'));
   
266. GREATEST(EXPR,EXPR,...)
      GREATEST返回参数的最大值。
      SELECT GREATEST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;
267. LEAST(EXPR,EXPR,...)
      LEAST返回参数的最小值。
      SELECT LEAST('HARRY','HARRIOT','HAROLD') 'SAMPLE' FROM TABLE1;  
268. NLS_CHARSET_DECL_LEN(BYTECNT,CSID)
      返回一个NCHAR列的宽度。
      SELECT NLS_CHARSET_DE

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

오라클을 열 수 없다면해야 할 일 오라클을 열 수 없다면해야 할 일 Apr 11, 2025 pm 10:06 PM

Oracle에 대한 솔루션은 개설 할 수 없습니다. 1. 데이터베이스 서비스 시작; 2. 청취자를 시작하십시오. 3. 포트 충돌을 확인하십시오. 4. 환경 변수를 올바르게 설정하십시오. 5. 방화벽이나 바이러스 백신 소프트웨어가 연결을 차단하지 않도록하십시오. 6. 서버가 닫혀 있는지 확인하십시오. 7. RMAN을 사용하여 손상된 파일을 복구하십시오. 8. TNS 서비스 이름이 올바른지 확인하십시오. 9. 네트워크 연결 확인; 10. Oracle 소프트웨어를 다시 설치하십시오.

Oracle에서 모든 데이터를 삭제하는 방법 Oracle에서 모든 데이터를 삭제하는 방법 Apr 11, 2025 pm 08:36 PM

Oracle에서 모든 데이터를 삭제하려면 다음 단계가 필요합니다. 1. 연결 설정; 2. 외국의 주요 제약을 비활성화합니다. 3. 테이블 데이터 삭제; 4. 거래 제출; 5. 외국 키 제약 조건을 활성화합니다 (선택 사항). 데이터 손실을 방지하려면 실행하기 전에 데이터베이스를 백업하십시오.

Oracle Cursor를 닫는 문제를 해결하는 방법 Oracle Cursor를 닫는 문제를 해결하는 방법 Apr 11, 2025 pm 10:18 PM

Oracle Cursor Closure 문제를 해결하는 방법에는 다음이 포함됩니다. Close 문을 사용하여 커서를 명시 적으로 닫습니다. For Update 절에서 커서를 선언하여 범위가 종료 된 후 자동으로 닫히십시오. 연관된 PL/SQL 변수가 닫히면 자동으로 닫히도록 사용 절에서 커서를 선언하십시오. 예외 처리를 사용하여 예외 상황에서 커서가 닫혀 있는지 확인하십시오. 연결 풀을 사용하여 커서를 자동으로 닫습니다. 자동 제출을 비활성화하고 커서 닫기를 지연시킵니다.

Oracle 데이터베이스를 이끄는 방법 Oracle 데이터베이스를 이끄는 방법 Apr 11, 2025 pm 08:42 PM

Oracle 데이터베이스 페이징은 rownum pseudo-columns 또는 fetch 문을 사용하여 구현합니다. Fetch 문은 지정된 첫 번째 행 수를 얻는 데 사용되며 간단한 쿼리에 적합합니다.

Oracle Loop에서 커서를 만드는 방법 Oracle Loop에서 커서를 만드는 방법 Apr 12, 2025 am 06:18 AM

Oracle에서 FOR 루프 루프는 커서를 동적으로 생성 할 수 있습니다. 단계는 다음과 같습니다. 1. 커서 유형을 정의합니다. 2. 루프를 만듭니다. 3. 커서를 동적으로 만듭니다. 4. 커서를 실행하십시오. 5. 커서를 닫습니다. 예 : 커서는 상위 10 명의 직원의 이름과 급여를 표시하기 위해주기별로 만들 수 있습니다.

Oracle 데이터베이스를 중지하는 방법 Oracle 데이터베이스를 중지하는 방법 Apr 12, 2025 am 06:12 AM

Oracle 데이터베이스를 중지하려면 다음 단계를 수행하십시오. 1. 데이터베이스에 연결하십시오. 2. 즉시 종료; 3. 셧다운은 완전히 중단됩니다.

Oracle Dynamic SQL을 만드는 방법 Oracle Dynamic SQL을 만드는 방법 Apr 12, 2025 am 06:06 AM

SQL 문은 Oracle의 동적 SQL을 사용하여 런타임 입력을 기반으로 작성 및 실행할 수 있습니다. 단계에는 다음이 포함됩니다 : 동적으로 생성 된 SQL 문을 저장할 빈 문자열 변수 준비. 즉시 실행 또는 준비 명령문을 사용하여 동적 SQL 문을 컴파일하고 실행하십시오. 바인드 변수를 사용하여 사용자 입력 또는 기타 동적 값을 동적 SQL로 전달하십시오. 동적 SQL 문을 실행하려면 즉시 실행 또는 실행을 사용하십시오.

HDFS에서 CentOS를 구성하는 데 어떤 단계가 필요합니까? HDFS에서 CentOS를 구성하는 데 어떤 단계가 필요합니까? Apr 14, 2025 pm 06:42 PM

Centos 시스템에서 Hadoop 분산 파일 시스템 (HDF)을 구축하려면 여러 단계가 필요합니다. 이 기사는 간단한 구성 안내서를 제공합니다. 1. 초기 단계에서 JDK를 설치할 준비 : 모든 노드에 JavadevelopmentKit (JDK)을 설치하면 버전이 Hadoop과 호환되어야합니다. 설치 패키지는 Oracle 공식 웹 사이트에서 다운로드 할 수 있습니다. 환경 변수 구성 : /etc /프로파일 파일 편집, Java 및 Hadoop 설정 설정 시스템에서 JDK 및 Hadoop의 설치 경로를 찾을 수 있습니다. 2. 보안 구성 : SSH 비밀번호가없는 로그인 SSH 키 : 각 노드에서 ssh-keygen 명령을 사용하십시오.

See all articles