ORACLE常见问题一千问[201至300](不怕学不成、就怕心不诚!)

ORACLE常见问题一千问[201300](不怕学不成、就怕心不诚!)

 

——通过知识共享树立个人品牌。

 

 ORACLE常见问题是我收集完成,在此共享出来,一为自己以后好做个参考,二为需要的朋友提供帮助。同时,感谢提供这些相关问题及解决方法的朋友。

欢迎大家补充,交流与分享才能共同进步嘛,感谢!

      


 

 

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(68FROM DUAL;
--结果: D 

 

206. 如何连接两个字符串?
CONCAT(CHAR1
CHAR2) 

SELECT CONCAT('ABC''DEFGH'FROM DUAL; 
--结果: 'ABCDEFGH'


207. 如何将列中的数值代替为字符串?
DECODE(CHAR
N1CHAR1N2CHAR2...)

SELECT DECODE(DAY1'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(CHAR1NCHAR2)
用字符串CHAR2包括的字符左填CHAR1,使其长度为N

SELECT LPAD('ABCDEFG'10'123'FROM DUAL; 
--结果: '123ABCDEFG' 

 

212. LTRIM(CHARSET)
从字符串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(CHAR1CHAR2CHAR3)
用字符串CHAR3代替每一个列值为CHAR2的列,其结果放在CHAR1中。

SELECT REPLACE(EMP_NO,'123''456'FROM DUAL;

 

217. RPAD(CHAR1NCHAR2)
用字符串CHAR2右填字符串CHAR1,使其长度为N

SELECT RPAD('234'8'0'FROM DUAL;


218. RTRIM(CHARSET)
移去字符串CHAR右边的字符串SET中的字符,直到最后一个不是SET中的字符为止。

SELECT RTRIM('ABCDE''DE'FROM DUAL;


219. SUBSTR(CHARMN)
得到字符串CHARM处开始的N个字符. 双字节字符,一个汉字为一个字符的。 

SELECT SUBSTR('ABCDE'23FROM DUAL;


220. SUBSTRB(CHARMN)
得到字符串CHARM处开始的N个字符. 双字节字符,一个汉字为二个字符的。 

SELECT SUBSTRB('ABCDE'23FROM DUAL;


221. TRANSLATE(CHAR1CHAR2CHAR3)
CHAR1中的CHAR2的部分用CHAR3代替。

SELECT TRANSLATE('ABCDEFGH''DE''MN'FROM DUAL;


222. UPPER(CHAR)
将字符串CHAR全部为大写。

223. ADD_MONTHS(DN)
N个月增加到D日期。

SELECT ADD_MONTHS(SYSDATE,5FROM DUAL;


224. LAST_DAY(D)
得到包含D日期的月份的最后的一天的日期。

SELECT LAST_DAY(SYSDATE) FROM DUAL;


225. MONTH_BETWEEN(D1D2)
得到两个日期之间的月数。

SELECT MONTH_BETWEEN(D1,D2) FROM DUAL;

 

226. NEXT_DAY(DCHAR)
得到比日期D晚的由CHAR命名的第一个周日的日期。 

SELECT NEXT_DAY(TO_DATE('2003/09/20'),'SATDAY'FROM DUAL;


227. ROUNT(DFMT)
得到按指定的模式FMT舍入到的最进的日期。 

SELECT ROUNT('2003/09/20'MONTHFROM 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(CHARFMT)
将字符串CHARFMT的格式转换为日期。

SELECT TO_DATE('2003/09/20''YYYY/MM/DD'FROM DUAL;


231. ABS(N)
得到N的绝对值。

SELECT ABS(-6FROM DUAL;

 

232. CEIL(N)
得到大于或等于N的最大整数。

SELECT CEIL(5.6FROM DUAL; 

 

233. COS(N)
得到N的余弦值。

SELECT COS(1FROM DUAL; 

 

234. SIN(N)
得到N的正弦值。
SELECT SIN(1) FROM DUAL

 
235. COSH(N)
得到N的双曲余弦值。
SELECT COSH(1) FROM DUAL

 
236. EXP(N)
得到NEN次幂。
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(MN)
得到M除以N的余数。
SELECT MOD(100
7) FROM DUAL

241. POWER(MN)
得到MN幂。
SELECT POWER(4
3) FROM DUAL

 
242. ROUND(N
M)
N舍入到小数点后M位。
SELECT (78.87653
2) FROM DUAL

 
243. SIGN(N)
N<0时,得到-1
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)
将包含外部语法ROWIDCHARVARCHAR2数值转换为内部的二进制语法,参数CHAR必须是包含外部语法的ROWID

18字符的字符串。

SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO'); 
--NAME : LEIXUE 


256. CONVERT(CHARDEST_CHAR_SETSOURCE_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(EXPRRETURN_FORMATSTART_POSITIONLENGTH)
返回一个包含数据类型代码,字节长度等内部表示信息的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_POSITIONLENGTH被指定,则从START_POSITION开始的长为LENGTH的字节将被返回,缺省是返

回整数表示。

SELECT DUMP('ABC'1016FROM TEST; 
select dump(ename,832'example' from emp where name='ccbzzp';


 

264. empty_b|clob()
返回一个空的LOB定位符,用在初始化LOB变量,或用在INSERTUPDATE声明去初始化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(EXPREXPR...)
GREATEST
返回参数的最大值。 

SELECT GREATEST('HARRY''HARRIOT''HAROLD''SAMPLE' FROM TABLE1;

 

267. LEAST(EXPREXPR...)
LEAST
返回参数的最小值。 

 

SELECT LEAST('HARRY''HARRIOT''HAROLD''SAMPLE' FROM TABLE1;


268. NLS_CHARSET_DECL_LEN(BYTECNT

CSID)
返回一个NCHAR列的宽度。 

SELECT NLS_CHARSET_DECL_LEN(200,NLS_CHARSET_ID('JA16EEFDFDF')) FROM TABLE1;

 

269. NLS_CHARSET_ID(TEXT)
返回相应于NLS字符集名字的NLS字符集ID数。 

SELECT NLS_CHARSET_D('JADFDFFDF'FROM TABLE1;

 


270. NLS_CHARSET_NAME(N)

返回相应于IDNNLS字符集名称。 

SELECT NLS_CHARSET_NAME(2FROM TABLE1;


271. NVL(EXPR1

EXPR2)
EXPR1NULL,则返回EXPR2,否则返回EXPR1

 

SELECT NAME,NVL(TO_CHAR(COMM),'NOT APPLICATION'FROM TABLE1; 


272. UID

返回唯一标识当前数据库用户的整数。 

SELECT UID FROM TABLE1;


273. USER

VARCHAR2数据类型返回当前ORACLE用户的名称。 

SELECT USER,UID FROM TABLE1;

 

274. USERENV(OPTION)
返回当前的会话信息。
OPTION='ISDBA'
若当前是DBA角色,则为TRUE,否则FALSE
OPTION='LANGUAGE'
返回数据库的字符集。
OPTION='SESSIONID'
为当前会话标识符。
OPTION='ENTRYID'
返回可审计的会话标识符。
OPTION='LANG'
返回会话语言名称的ISO简记。
OPTION='INSTANCE'
返回当前的实例。 

SELECT USERENV('LANGUAGE'FROM DUAL;

 


275. VSIZE(EXPR)

返回EXPR内部表示的字节数。

 

SELECT NAME,VSIZE(NAME) FROM TABLE1; 


276. DEREF(E)

返回参数E的对象引用。

 

SELECT DEREF(C2) FROM TABLE1;

 
277. REFTOHEX(R)
将参数R转换为16进制。

 

SELECT REFTOHEX(C2) FROM TABLE1;

 
278. MAKE_REF(TABLEKEYKEY...)
通过把给定的键作为主键来创建给定视图对象中一行的引用。 

CREATE TYPE T1 AS OBJECT(A NUMBER,B NUMBER); 
CREATE TABLE TB1(C1 NUMBER,C2 NUMBERPRIMARY KEY(C1,C2)); 
CREATE VIEW V1 OF T1 WITH OBJECT OID(A, AS SELECT * FROM TB1; 
SELECT MAKE_REF(V1,13FROM PUBS;


279. STDDEV(DISTINCT|ALL X)
STDDEV给出一组行值的标准差。

SELECT STDDEV(SALARY) AS EXAMPLE FROM EMPLOYEE; 

 

280. VARIANCE(DISTINCT|ALL X)
VARIANCE
返回一组行中所有VALUE的方差。 

SELECT VARIANCE(SALARY) AS EXAMPLE FROM EMPLOYEE;


9I管理的V$视图


281. V$ACCESS

显示当前被锁定的数据库中的对象及正在访问他们的会话。

 
282. V$ACTIVE_INSTANCES
为当前安装的数据库中出现的所有实例建立从实例名到实例号的映射。

 
283. V$ACTIVE_SESS_POOL_MTH
所有活动的会话池资源分配方法。

 
284. V$AQ
当前数据库中的队列的统计量。

 
285. V$ARCHIVE
归档所需的重做日志文件中的信息。

286. V$ARCHIVE_DEST
当前实例的所有归档日志目的文件及它们的当前值,模式,状态。

 
287. V$ARCHIVE_PROCESSES
为一个实例提供不同的ARCH进程状态的信息。

 
288. V$ARCHIVE_LOG
控制文件中的归档日志信息。


289. V$BACKUP

所有联机数据文件的备份状态。


290. V$BACKUP_ASYNC_IO

从控制文件中显示备份集的信息。


291. V$BACKUP_CORRUPTION

从控制文件中显示数据文件备份中有关损坏的信息。


292. V$BACKUP_DATAFILE

从控制文件中显示备份数据文件和备份控制文件的信息。

 
293. V$BACKUP_DEVICE
显示关于支持备份设备的信息。

294. V$BACKUP_PIECE
从控制文件中显示备份块的信息。

 
295. V$BACKUP_REDOLOG
从控制文件中显示关于备份集中归档日志的信息。

 
296. V$BACKUP_SET
从控制文件中显示备份集的信息。


297. V$BACKUP_SYNC_IO

从控制文件中显示备份集的信息。

298. V$BGPROCESS
描述后台进程。


299. V$BH

9I的实时应用集群视图.为系统全局区中的每一个缓冲区给出了状态和探查次数。


300. V$BSP
显示用在缓存中块服务器后台进程上的统计信息。  

posted @ 2011-06-08 09:00  .NET快速开发框架  阅读(3424)  评论(16编辑  收藏  举报