当前位置:首页>>开发编程>>数据库>>新闻内容
ORACLE常用傻瓜問題1000問(之七)
作者:CCBZZP 发布时间:2003-10-16 22:35:32 文章来源:CSDN
   大家在應用ORACLE的時候可能會遇到很多看起來不難的問題, 特別對新手來說, 今天我簡單把它總結一下, 發布給大家, 希望對大家有幫助! 和大家一起探討, 共同進步!

     對ORACLE高手來說是不用看的.


   
  ORACLE內部函數篇
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_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)
   返回相應于ID數N的NLS字符集名稱.
   SELECT NLS_CHARSET_NAME(2) FROM TABLE1;

271. NVL(EXPR1,EXPR2)
   若EXPR1是NULL,則返回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(TABLE,KEY,KEY...)
   通過把給定的鍵作為主鍵來創建給定視圖對象中一行的引用.
   CREATE TYPE T1 AS OBJECT(A NUMBER,B NUMBER);
   CREATE TABLE TB1(C1 NUMBER,C2 NUMBER,PRIMARY KEY(C1,C2));
   CREATE VIEW V1 OF T1 WITH OBJECT OID(A,B) AS SELECT * FROM TB1;
   SELECT MAKE_REF(V1,1,3) FROM 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;


   待續...


最新更新
·SQL Server 2005删除用户失败
·SQL Server中删除重复数据的
·经典SQL语句大全
·SQL Server 2005与ASP.NET/A
·三种查看MySQL数据库版本的方
·SQL Server 2005 Express 远
·启用SQL Server 2005 Expres
·Windows下如何安装或卸载MyS
·解决MySQL5数据库连接超时问
·清除SQL Server日志的两种方
相关信息
·2008主流数据库产品回顾与展望
·安装Oracle后配置和启动企业管理器的方法
·简单介绍Oracle 9i的16种数据类型
·如何在Oracle中导入dmp数据库文件
·把Oracle查询转换为SQL Server
·轻松修改Oracle数据库表的大小
·实例讲解Oracle里抽取随机数的多种方法
·Oracle在Linux操作系统下的安装小结
·用Oracle8i修复数据库坏块的三种方法
·在Oracle中导出、导入dmp数据库文件
画心
愚爱
偏爱
火苗
白狐
画沙
犯错
歌曲
传奇
稻香
小酒窝
狮子座
小情歌
全是爱
棉花糖
海豚音
我相信
甩葱歌
这叫爱
shero
走天涯
琉璃月
Nobody
我爱他
套马杆
爱是你我
最后一次
少女时代
灰色头像
断桥残雪
美了美了
狼的诱惑
我很快乐
星月神话
心痛2009
爱丫爱丫
半城烟沙
旗开得胜
郎的诱惑
爱情买卖
2010等你来
我叫小沈阳
i miss you
姑娘我爱你
我们都一样
其实很寂寞
我爱雨夜花
变心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK绷
贝多芬的悲伤
哥只是个传说
丢了幸福的猪
找个人来爱我
要嫁就嫁灰太狼
如果这就是爱情
我们没有在一起
寂寞在唱什么歌
斯琴高丽的伤心
别在我离开之前离开
不是因为寂寞才想你
爱上你等于爱上了错
在心里从此永远有个你
一个人的寂寞两个人的错