﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-JAVA---一路上有你 blue-随笔分类-DB学习</title><link>http://www.blogjava.net/Jkallen/category/6935.html</link><description>开卷有益</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 00:03:43 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 00:03:43 GMT</pubDate><ttl>60</ttl><item><title>oracle select语句学习</title><link>http://www.blogjava.net/Jkallen/archive/2006/07/28/60508.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Fri, 28 Jul 2006 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/07/28/60508.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/60508.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/07/28/60508.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/60508.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/60508.html</trackback:ping><description><![CDATA[
		<p>来了新任务,关于数据查询分析系统的,所以重温一下相关东西,顺便记一下。<br /><br />刚刚看了下racle单行函数，主要是字符，数字，日期，转换，通用五个方面。<br /><br /><font color="#000000"><strong>1&gt;字符处理<br /></strong></font><br />upper(str)---将字符串str全部转换成大写<br />lower(str)---将字符串str全部转换成小写<br />initcap(str)---将字符串中每个单词的首字母大写<br />concat(str1,str2)---将字符串str1与str2连接起来(也可以通过'||'号直接相连)<br />substr(str,a,b)---取字符串str中的指定字符，从位置a开始取长度为b的字符串，假如a为正则从左边开始，否则从右边开始<br />instr(str,'z')---取得str字符串中从左边开始每一次出现z字符的下标位置(下标从1开始)<br />lpad(str,12,'*')---左填充，即将字符串str长度填充到12，假如其不足12位则在左边以*号填充<br />rpad(str,12,'*')---右填充，同上<br />length(str)---计算字符串str的长度<br /><br /><strong>2&gt;数字函数<br /></strong><br />round(45.926,2)---将前一数保留指定的小数位，并四舍五入(45.93)，假如指定位是负数则意为在小数点左边保留指定位,如round(45.923,-1)=50,rount(45.923,0)=46,round(45.93,-2)=0,round(55.93,-2)=100<br />trunc(45.926,2)---同上，得不四舍五入(45.92)<br />mod(1600,300)---求余(100)<br /><br /><strong>3&gt;日期型函数<br /></strong><br />oracle中默认的格式是：DD-MON-RR。<br />oracle中有个到当前系统时间--sysdate，如：<br />select sysdate from dual <br /><br />可对日期进行自述运算：<br />select (sysdate-mybirthday)/7 from person<br /><br />months_between('01-sep-95','11-jan-94')---取得二个日期之间的间隔月数(19.6774194)<br />add_months('11-jan-94',6)---给指定日期加上指定的月份后得到一个新的日期(11-jul-94)<br />next_day('01-sep-85','friday')---取得当前日期中下个周五的日期(01-jul-95)<br />last_day('01-feb-95')---取得当前日期中月份的最后一天(28-feb-95)<br /><br />round进行四舍五入，trunc则否,以下是我的操作结果：<br />sysdate为：<br />SYSDATE<br />----------<br />28-7月 -06</p>
		<p> select <br /> round(sysdate,'month') RM,<br /> round(sysdate,'year') RY,<br /> trunc(sysdate,'month') TM,<br /> trunc(sysdate,'year') TY<br /> from dual;</p>
		<p>RM         RY         TM         TY<br />---------- ---------- ---------- ----------<br />01-8月 -06 01-1月 -07 01-7月 -06 01-1月 -06<br /></p>
		<p>
				<br />
				<strong>4&gt;转换函数<br /></strong>
				<br />隐式转换:系统自动转换,如：<br />varchar2 or char to number<br />varchar2 or char to date<br />number to varchar2<br />date to varchar2<br /><br />显式转换：人为以函数加以转换<br />日期，字符，数据三者之间可以相互转换:日期&lt;--&gt;字符&lt;--&gt;数据<br />日期格式:YYYY<br /><br /><em>日期--&gt;字符</em><br />select to_char(sysdate,'yyyy-mm-dd') ch from dual</p>
		<p>CH<br />----------<br />2006-07-28<br /><br /><em>数字--&gt;字符<br /></em>to_char(number,'format_model'),oramat_model有如下：<br />9---用对应数字表示<br />0---强制用０表示<br />$---加一$符号<br />L---前加本地货币单位表示<br />.---十进制点<br />,---千进制点<br /><br />select to_char(0917,'l9999.99') local from dual<br />LOCAL<br />------------------<br />         RMB917.00<br /><br /><em>字符--&gt;日期</em><br />tselect to_date('19830917','yyyy-mm-dd') bir from dual<br />BIR<br />----------<br />17-9月 -83<br /><br /><em>字符--&gt;数字</em><br />select to_number('19821217','999999999') mybr from dual<br />      MYBR<br />----------<br />  19821217</p>
		<p>注：所有函数均可以嵌套使用</p>
		<p>
				<strong>5&gt;通用函数<br /></strong>
				<br />nvl(expr1,expr2)---expr1为空则显示expr2,否则显示expr1<br />nvl2(expr1,expr2,expr3)---expr1为空则显示expr2,否则显示expr3<br />nullif(expr1,expr2)---二个相等则显示空符,否则显示expr1<br />coalesce(expr1,expr2,...,exprn)---从expr1开始依次找到不为空的expr，找到就显示，直到最后，否则显</p>
		<p>示exprn<br />case表达式，如下图:</p>
		<p>
				<img src="http://www.blogjava.net/images/blogjava_net/jkallen/9085/r_oracle_case.bmp" /> <br /><br /><strong>6&gt;多表查询</strong><br />对普通的多表查询，也就是不加where条件的时候实际上查询结果是各表的笛卡尔集<br />外连接：oracle实现外连接时在=号的二边加+号就OK，当+在左边时称为右连接，反之为左连接,它常常用来当要求未受限制对象的表数据也要求显示时，如下：<br />select * from student</p>
		<p>ID NAME                 ADDRESS<br />-------------------- --------------<br />1 zhangshan            zhejiang<br />3 lishi                hangzhou<br />7 lily                 guangzhou</p>
		<p>select * from person</p>
		<p>ID NAME                 ADDRESS<br />- -------------------- -----------<br />1 zhangshan            zhejiang<br />3 lishi                hangzhou<br />7 lily                 guangzhou</p>
		<p>select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id(+) = s.id</p>
		<p>ID SEX          ID NAME                 ADDRESS<br />-- ---- ---------- -------------------- ------------<br /> 1 boy           1 zhangshan            zhejiang<br /> 3 girl          3 lishi                hangzhou<br />                 7 lily                 guangzhou</p>
		<p>select p.id,p.sex,s.id,s.name,s.address from person p ,student s where p.id = s.id(+)</p>
		<p>ID SEX          ID NAME                 ADDRESS<br />-- ---- ---------- -------------------- --------------<br /> 1 boy           1 zhangshan            zhejiang<br /> 2 girl<br /> 3 girl          3 lishi                hangzhou<br /> 4 boy<br /> 5 girl</p>
		<p>self-join，就是同一张表连接，用自连接的时候要注意排除重复的记录（自身，循环重复等），比如说找出student表中所有住在同一个地方的人。<br />select * from student</p>
		<p> ID NAME                 ADDRESS<br />--- -------------------- ---------<br />  1 zhangshan            zhejiang<br />  3 lishi                hangzhou<br />  7 lily                 guangzhou<br />  2 name2                guangzhou<br />  4 name4                guangzhou<br />  5 name5                hangzhou<br />  6 name6                shanghai<br />  8 name8                shanghai</p>
		<p>没有排除重复记录时的结果：<br /> select t1.name,t2.name <br /> from student t1, student t2<br /> where t1.address = t2.address</p>
		<p>NAME                 NAME<br />-------------------- --------------<br />lily                 lily<br />name2                lily<br />name4                lily<br />lily                 name2<br />name2                name2<br />name4                name2<br />lily                 name4<br />name2                name4<br />name4                name4<br />lishi                lishi<br />name5                lishi</p>
		<p>NAME                 NAME<br />-------------------- --------------<br />lishi                name5<br />name5                name5<br />name6                name6<br />name8                name6<br />name6                name8<br />name8                name8<br />zhangshan            zhangshan</p>
		<p>已选择18行</p>
		<p>排除重复与循环记录之后：<br />select t1.name,t2.name,t1.address<br /> from student t1, student t2<br /> where t1.address = t2.address<br />and t1.id &gt; t2.id</p>
		<p>NAME                 NAME                 ADDRESS<br />-------------------- -------------------- -------------------<br />lily                 name2                guangzhou<br />name4                name2                guangzhou<br />lily                 name4                guangzhou<br />name5                lishi                hangzhou<br />name8                name6                shanghai</p>
		<p>cross join,无条件连接，实际上跟不带where时一样得到的是笛卡尔集</p>
		<p>natural join（也可以直接记作join），根据表中同名栏位来连接记录,若表中可能出现多个同名栏位，则用using(col_name)来指定所栏位。colname不能指定表的别名！限制条件用on来指定<br />select id,p.sex,id,s.name from person p join student s using(id);</p>
		<p>  ID SEX          ID NAME<br />---- ---- ---------- --------------------<br />   1 boy           1 zhangshan<br />   2 girl          2 name2<br />   3 girl          3 lishi<br />   4 boy           4 name4<br />   5 girl          5 name5</p>
		<p>在sql标准语法中,左(右)连接用left(right) out join,限制条件用on就可以了。</p>
		<p>full out join完全外连接,顾名思义就是左外连接与右外连接都有<br />select id,p.sex,id,s.name from person p full join student s using(id);</p>
		<p>  ID SEX          ID NAME<br />---- ---- ---------- ------------------<br />   1 boy           1 zhangshan<br />   3 girl          3 lishi<br />   2 girl          2 name2<br />   4 boy           4 name4<br />   5 girl          5 name5<br />   8               8 name8<br />   6               6 name6<br />   7               7 lily<br /><br /><br /></p>
<img src ="http://www.blogjava.net/Jkallen/aggbug/60508.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-07-28 10:56 <a href="http://www.blogjava.net/Jkallen/archive/2006/07/28/60508.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>存储大数据</title><link>http://www.blogjava.net/Jkallen/archive/2006/03/05/33671.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Sun, 05 Mar 2006 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/03/05/33671.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/33671.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/03/05/33671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/33671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/33671.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在持久化过程中我们往往要用到存储一些大数据的操作，比如说用户的靓照，还有用户的整个数据文件什么的啦！在oracle中提供了blog,clog等字段好象可以提供此功能呢（另外当然也可以直接放到如硬盘等其它存储设备上）。就我个的人一些实践记下：1：存放photo，比如gif的二进制数据：//在一个字节数据中存放此gif文件的二进制数据InputStream&nbsp;in&nbsp;=&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/Jkallen/archive/2006/03/05/33671.html'>阅读全文</a><img src ="http://www.blogjava.net/Jkallen/aggbug/33671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-03-05 11:49 <a href="http://www.blogjava.net/Jkallen/archive/2006/03/05/33671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中一些常用操作</title><link>http://www.blogjava.net/Jkallen/archive/2006/01/12/27655.html</link><dc:creator>Jkallen</dc:creator><author>Jkallen</author><pubDate>Wed, 11 Jan 2006 16:28:00 GMT</pubDate><guid>http://www.blogjava.net/Jkallen/archive/2006/01/12/27655.html</guid><wfw:comment>http://www.blogjava.net/Jkallen/comments/27655.html</wfw:comment><comments>http://www.blogjava.net/Jkallen/archive/2006/01/12/27655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Jkallen/comments/commentRss/27655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Jkallen/services/trackbacks/27655.html</trackback:ping><description><![CDATA[
		<div class="postText">
				<p>
						<font style="BACKGROUND-COLOR: #ffffff" color="#006400">ORACLE没有自动增长的数据类型，需要建立一个自动增长的序列号，插入记录时要把序列号的下一个<br />值赋于此字段。</font>
				</p>
				<p>
						<font style="BACKGROUND-COLOR: #ffffff" color="#800080">
								<font color="#006400">    CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1  START  WITH  1 <br />MAXVALUE  99999  CYCLE  NOCACHE;<br />    其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999<br />    INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL <br />   <br />     如,可以用如下的操作来对其进行操作:<br />     </font>
						</font>
				</p>
				<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
						<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />
						<span style="COLOR: #000000">String sqlSelectCID </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> </span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">Select CourseList_SEQ.nextval as Course_ID from dual</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />PreparedStatement stmtSelectCID;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />stmtSelectCID </span>
						<span style="COLOR: #000000">=</span>
						<span style="COLOR: #000000"> conn.prepareStatement(sqlSelectCID)<br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span>
						<span style="COLOR: #0000ff">synchronized</span>
						<span style="COLOR: #000000">(stmtSelectCID)<br /><img id="Codehighlighter1_196_258_Open_Image" onclick="this.style.display='none'; Codehighlighter1_196_258_Open_Text.style.display='none'; Codehighlighter1_196_258_Closed_Image.style.display='inline'; Codehighlighter1_196_258_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_196_258_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_196_258_Closed_Text.style.display='none'; Codehighlighter1_196_258_Open_Image.style.display='inline'; Codehighlighter1_196_258_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />                    </span>
						<span id="Codehighlighter1_196_258_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_196_258_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        selectCourseIDRS </span>
								<span style="COLOR: #000000">=</span>
								<span style="COLOR: #000000"> stmtSelectCID.executeQuery();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />                    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    <br /><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    </span>
						<span style="COLOR: #0000ff">if</span>
						<span style="COLOR: #000000">(</span>
						<span style="COLOR: #000000">!</span>
						<span style="COLOR: #000000">selectCourseIDRS.next())<br /><img id="Codehighlighter1_305_400_Open_Image" onclick="this.style.display='none'; Codehighlighter1_305_400_Open_Text.style.display='none'; Codehighlighter1_305_400_Closed_Image.style.display='inline'; Codehighlighter1_305_400_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_305_400_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_305_400_Closed_Text.style.display='none'; Codehighlighter1_305_400_Open_Image.style.display='inline'; Codehighlighter1_305_400_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />                    </span>
						<span id="Codehighlighter1_305_400_Closed_Text" style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff">
								<img src="http://www.blogjava.net/images/dot.gif" />
						</span>
						<span id="Codehighlighter1_305_400_Open_Text">
								<span style="COLOR: #000000">{<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        </span>
								<span style="COLOR: #008000">//</span>
								<span style="COLOR: #008000">Update DB failed</span>
								<span style="COLOR: #008000">
										<br />
										<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />
								</span>
								<span style="COLOR: #000000">                        stmtSelectCID.close();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        conn.close();<br /><img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />                        </span>
								<span style="COLOR: #0000ff">return</span>
								<span style="COLOR: #000000">;<br /><img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />                    }</span>
						</span>
						<span style="COLOR: #000000">
								<br />
								<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />                    setCourseID(selectCourseIDRS.getInt(</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">Course_ID</span>
						<span style="COLOR: #000000">"</span>
						<span style="COLOR: #000000">));</span>
				</div>
				<p>
						<br />
						<br />
						<font color="#ff0000">================================================================================</font>
						<br />
						<br />
						<font color="#006400">用:SELECT SEQUENCE_NAME FROM USER_SEQUENCES;可以查看序列!<br /></font>
						<br />
						<font color="#ff0000">================================================================================</font>
						<br />
						<br />
						<br />
						<font color="#006400">在PL/SQL Developer中(OR PL/SQL)的描述串:<br />(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))<br /><br /><font color="#ff0000">================================================================================</font><br />在Oracle中显示日期，诸如：<br />select to_char(last_day(current_date),'yyyy-mm')||'-'||'01' "本月初日期", to_char(last_day(current_date),'yyyy-mm-dd') "本月末日期" from dual;<br /><br />显示结果：<br /><br /><font color="#000000">本月初日期 本月末日期<br />---------- ----------<br />2006-01-01 2006-01-31</font><br /><font color="#ff0000">================================================================================</font><br /><br />单行字符串函数用于操作字符串数据，他们大多数有一个或多个参数，其中绝大多数返回字符串</font>
				</p>
				<p>　　ascii()<br />　　c1是一字符串，返回c1第一个字母的ascii码，他的逆函数是chr()<br />select ascii(''a'') big_a,ascii(''z'') big_z from empbig_a big_z65 122</p>
				<p>　　chr(＜i＞)[nchar_cs]<br />　　i是一个数字，函数返回十进制表示的字符<br />select chr(65),chr(122),chr(223) from empchr65 chr122 chr223a z b</p>
				<p>　　concat(,)<br />　　c1,c2均为字符串，函数将c2连接到c1的后面，如果c1为null,将返回c2.如果c2为null,则返回c1，如果c1、c2都为null，则返回null。他和操作符||返回的结果相同<br />select concat(''slobo '',''svoboda'') username from dualusernameslobo syoboda</p>
				<p>　　initcap()<br />　　c1为一字符串。函数将每个单词的第一个字母大写其它字母小写返回。单词由空格，控制字符，标点符号限制。<br />select initcap(''veni,vedi,vici'') ceasar from dualceasarveni,vedi,vici</p>
				<p>　　instr(,[,＜i＞[,]])<br />　　c1,c2均为字符串，i,j为整数。函数返回c2在c1中第j次出现的位置，搜索从c1的第i个字符开始。当没有发现需要的字符时返回0,如果i为负数，那么搜索将从右到左进行，但是位置的计算还是从左到右，i和j的缺省值为1.<br />select instr(''mississippi'',''i'',3,3) from dualinstr(''mississippi'',''i'',3,3)11select instr(''mississippi'',''i'',-2,3) from dualinstr(''mississippi'',''i'',3,3)2</p>
				<p>　　instrb(,[,i[,j])<br />　　与instr（）函数一样，只是他返回的是字节，对于单字节instrb()等于instr()</p>
				<p>　　length()<br />　　c1为字符串，返回c1的长度，如果c1为null，那么将返回null值。<br />select length(''ipso facto'') ergo from dualergo10</p>
				<p>　　lengthb()<br />　　与length()一样，返回字节。</p>
				<p>　　lower()<br />　　返回c的小写字符，经常出现在where子串中<br />select lower(colorname) from itemdetail where lower(colorname) like ''%white%''colornamewinterwhite</p>
				<p>　　lpad(,＜i＞[,])<br />　　c1,c2均为字符串，i为整数。在c1的左侧用c2字符串补足致长度i,可多次重复，如果i小于c1的长度，那么只返回i那么长的c1字符，其他的将被截去。c2的缺省值为单空格，参见rpad。<br />select lpad(answer,7,'''') padded,answer unpadded from question;padded unpadded yes yesno nomaybe maybe</p>
				<p>　　ltrim(,)<br />　　把c1中最左边的字符去掉，使其第一个字符不在c2中，如果没有c2，那么c1就不会改变。<br />select ltrim(''mississippi'',''mis'') from dualltrppi</p>
				<p>　　rpad(,＜i＞[,]) <br />　　在c1的右侧用c2字符串补足致长度i,可多次重复，如果i小于c1的长度，那么只返回i那么长的c1字符，其他的将被截去。c2的缺省值为单空格,其他与lpad相似</p>
				<p>　　rtrim(,)<br />　　把c1中最右边的字符去掉，使其第后一个字符不在c2中，如果没有c2，那么c1就不会改变。</p>
				<p>　　replace(,[,])<br />　　c1,c2,c3都是字符串，函数用c3代替出现在c1中的c2后返回。<br />select replace(''uptown'',''up'',''down'') from dualreplacedowntown</p>
				<p>　　stbstr(,＜i＞[,])<br />　　c1为一字符串，i,j为整数，从c1的第i位开始返回长度为j的子字符串，如果j为空，则直到串的尾部。<br />select substr(''message'',1,4) from dualsubsmess</p>
				<p>　　substrb(,＜i＞[,])<br />　　与substr大致相同，只是i,j是以字节计算。</p>
				<p>　　soundex()<br />　　返回与c1发音相似的词<br />select soundex(''dawes'') dawes soundex(''daws'') daws, soundex(''dawson'') from dualdawes daws dawsond200 d200 d250</p>
				<p>　　translate(,,)<br />　　将c1中与c2相同的字符以c3代替<br />select translate(''fumble'',''uf'',''ar'') test from dualtextramble </p>
				<p>　　trim([[]] from c3)<br />　　将c3串中的第一个，最后一个，或者都删除。<br />select trim('' space padded '') trim from dual trimspace padded</p>
				<p>　　upper()<br />　　返回c1的大写，常出现where子串中select name from dual where upper(name) like ''ki%''nameking</p>
		</div>
<img src ="http://www.blogjava.net/Jkallen/aggbug/27655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Jkallen/" target="_blank">Jkallen</a> 2006-01-12 00:28 <a href="http://www.blogjava.net/Jkallen/archive/2006/01/12/27655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>