ITPub博客

首页 > 数据库 > Oracle > Oracle erp 經驗問題集

Oracle erp 經驗問題集

原创 Oracle 作者:longwansheng 时间:2007-04-15 11:42:30 0 删除 编辑
引自 http://blog.csdn.net/q30/archive/2004/08/13/73279.aspx[@more@]
201. /*+NOCACHE(TABLE)*/
     当进行全表扫描
表LRU的最近使用端
时,CACHE提示能够将表的检索块放置在缓冲区缓存中最近最少列
     例如:
     SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */EMP_NAM FROM BSEMPMS;
  202. /*+APPEND*/
     直接插入到表的最后,可以提高速度。
     insert /*+append*/ into test1 select * fromtest4 ;
  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<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)
     将包含外部语法ROWID的CHAR或
须是包含外部语法的ROWID的18字符的字
VARCHAR2数值转换为内部的二进制语法,参数CHAR必
符串。
     SELECT NAME FROM BSEMPMS WHERE ROWID=CHARTOROWID('AAAAfZAABAAACp8AAO');
     NAME : LEIXUE
  256. CONVERT(CHAR,DEST_CHAR_SET,SOURCE_CHAR_SET)
     CONVERT将字符串CHAR中的字符
DEST_CHAR_SET标识的字符集
从SOURCE_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_COLCHAR(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_P
的字节将被返回,缺省是返
OSITION和LENGTH被指定,则从S
回整数表示。
TART_POSITION开始的长为LENGTH
     SELECT DUMP('ABC',1016) FROM TEST;
     select dump(ename,8,3,2) 'example' fromemp where name='ccbzzp';
  264. empty_b|clob()
     返回一个空的LOB定位符,用在
化LOB列或将其属性置为空。
初始化LOB变量,或用在INSERT及UPDATE声明去初始
     INSERT INTO TABLE1 VALUES(EMPTY_BLOB());
     UPDATE TABLE1 SET CLOB_COL=EMPTY_BLOB();
  265. BFILENAME('DIRECTORY','FILENAME')
     返回一个BFILE定位符,相关的
DIRECTORY是指在服务器的文件系统上实
系统的文件名。
二进制LOB物理文件在服务器的文件系统上.目录
际搜索路径全名的别名. 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
TABLE1;
(200,NLS_CHARSET_ID('JA16EEFDFDF')) FROM
  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)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/92289/viewspace-910866/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论