??xml version="1.0" encoding="utf-8" standalone="yes"?>青草av在线,亚洲综合一二区,永久域名在线精品http://www.aygfsteel.com/Johncn/category/5525.htmlzh-cnFri, 02 Mar 2007 02:37:24 GMTFri, 02 Mar 2007 02:37:24 GMT60[Oracle] Oracle中的dual?/title><link>http://www.aygfsteel.com/Johncn/archive/2005/12/26/25503.html</link><dc:creator>ZhuJun</dc:creator><author>ZhuJun</author><pubDate>Mon, 26 Dec 2005 14:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/Johncn/archive/2005/12/26/25503.html</guid><wfw:comment>http://www.aygfsteel.com/Johncn/comments/25503.html</wfw:comment><comments>http://www.aygfsteel.com/Johncn/archive/2005/12/26/25503.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Johncn/comments/commentRss/25503.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Johncn/services/trackbacks/25503.html</trackback:ping><description><![CDATA[<P><FONT face=Arial size=2>Oracle中的有一个很Ҏ的表:Dual Table.q个表中只含有一行记?q且我们可以用这个表来检许多Oracle的功?比如:</FONT></P> <P><FONT face=Arial size=2></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"><FONT face=Arial><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">789.65</SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">123</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">789.65</SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">123</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">--------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">  </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">97126.95</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #ff00ff">abs</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">890.98</SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #ff00ff">ABS</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">-</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">890.98</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">----------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">      </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">890.98</SPAN></FONT></FONT></DIV> <P><FONT face=Arial size=2>更特别的的是dual表中只含有一行记?我们可以通过 desc 函数查看dual表的l构:</FONT></P> <P><FONT face=Arial size=2></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"><FONT face=Arial><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">desc</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top> 名称                                      是否为空? cd<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top> </SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">--------------------------------------- -------- ------------------------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><SPAN style="COLOR: #000000"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top> </FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #0000ff">DUMMY</SPAN><SPAN style="COLOR: #000000">                                              </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #000000">VARCHAR2</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN><SPAN style="COLOR: #000000">)</SPAN></FONT></FONT></DIV> <P><FONT face=Arial size=2>查询dual表中的数?</FONT></P> <P><FONT face=Arial size=2></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"><FONT face=Arial><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><FONT face=Arial size=2> dual ;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>DU<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #008080">--<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #000000">X</SPAN></FONT></FONT></DIV> <P><FONT face=Arial size=2>我们向dual中插入一条记录后再查?看情况会如何:</FONT></P> <P><FONT face=Arial size=2></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"><FONT face=Arial><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><FONT face=Arial size=2> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>DU<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>--<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">X<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">insert</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">into</SPAN><SPAN style="COLOR: #000000"> dual </SPAN><SPAN style="COLOR: #0000ff">values</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #ff0000">Y</SPAN><SPAN style="COLOR: #ff0000">'</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">);<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>已创?nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> 行?BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><FONT face=Arial size=2> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>DU<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>--<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">X<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #ff00ff">count</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #ff00ff">COUNT</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">--------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">         </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN></FONT></FONT></DIV> <P><FONT face=Arial size=2>可见管insert语句插入记录后dual中有两条记录,但只能select出第一条记?</FONT></P> <P><FONT face=Arial size=2>同样我们再试试update和delete语句:</FONT></P> <P><FONT face=Arial size=2></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"><FONT face=Arial><FONT size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><SPAN style="COLOR: #000000">SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">update</SPAN><SPAN style="COLOR: #000000"> dual </SPAN><SPAN style="COLOR: #0000ff">set</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">dummy</SPAN><SPAN style="COLOR: #808080">=</SPAN><SPAN style="COLOR: #ff0000">'</SPAN><SPAN style="COLOR: #ff0000">Z</SPAN><SPAN style="COLOR: #ff0000">'</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>已更?nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> 行?BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><FONT face=Arial size=2> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>DU<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>--<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">Z<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #ff00ff">count</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #ff00ff">COUNT</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">--------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">         </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">2</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">delete</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>已删?nbsp;</SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> 行?BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><SPAN style="COLOR: #000000"><FONT face=Arial size=2> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>DU<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><SPAN style="COLOR: #008080"><FONT face=Arial size=2>--<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">Y<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>SQL</SPAN><SPAN style="COLOR: #808080">></SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #0000ff">select</SPAN><SPAN style="COLOR: #000000"> </SPAN><SPAN style="COLOR: #ff00ff">count</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN><SPAN style="COLOR: #000000">) </SPAN><SPAN style="COLOR: #0000ff">from</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000"> dual;<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top><BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top>  </SPAN><SPAN style="COLOR: #ff00ff">COUNT</SPAN><SPAN style="COLOR: #000000">(</SPAN><SPAN style="COLOR: #808080">*</SPAN></FONT></FONT><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">)<BR><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></SPAN><SPAN style="COLOR: #008080">--</SPAN><SPAN style="COLOR: #008080">--------</SPAN></FONT></FONT><SPAN style="COLOR: #008080"><BR><FONT face=Arial size=2><IMG src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" align=top></FONT></SPAN><FONT face=Arial><FONT size=2><SPAN style="COLOR: #000000">         </SPAN><SPAN style="FONT-WEIGHT: bold; COLOR: #800000">1</SPAN></FONT></FONT></DIV> <P><FONT face=Arial size=2>可见每次操作只能影响到第一条记?管select , update , delete 所针对的范围是整个?.</FONT></P><img src ="http://www.aygfsteel.com/Johncn/aggbug/25503.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Johncn/" target="_blank">ZhuJun</a> 2005-12-26 22:28 <a href="http://www.aygfsteel.com/Johncn/archive/2005/12/26/25503.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[Oracle] Oracle exp/imp导出导入工具的?[转] http://www.aygfsteel.com/Johncn/archive/2005/12/26/25502.htmlZhuJunZhuJunMon, 26 Dec 2005 14:19:00 GMThttp://www.aygfsteel.com/Johncn/archive/2005/12/26/25502.htmlhttp://www.aygfsteel.com/Johncn/comments/25502.htmlhttp://www.aygfsteel.com/Johncn/archive/2005/12/26/25502.html#Feedback0http://www.aygfsteel.com/Johncn/comments/commentRss/25502.htmlhttp://www.aygfsteel.com/Johncn/services/trackbacks/25502.html导出工具 exp

1. 它是操作pȝ下一个可执行的文?存放目录/ORACLE_HOME/bin

exp导出工具数据库中数据备份压~成一个二q制pȝ文g.可以在不同OS间迁U?BR>
它有三种模式Q?BR>a. 用户模式Q?导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象?BR>
2. 导出工具exp交互式命令行方式的用的例子

$exp test/test123@appdb
Enter array fetch buffer size: 4096 > 回R
Export file: expdat.dmp > m.dmp 生成导出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回R
Compress extents (yes/no): yes > 回R
Export done in ZHS16GBK character set and ZHS16GBK NCHAR character set
About to export specified tables via Conventional Path ...
Table(T) or Partition(TRazz) to be exported: (RETURN to quit) > cmamenu 要导出的表名
. . exporting table CMAMENU 4336 rows exported
Table(T) or Partition(TRazz) to be exported: (RETURN to quit) >要导出的表名n
Table(T) or Partition(TRazz) to be exported: (RETURN to quit) > 回R
Export terminated successfully without warnings.

3. 导出工具exp非交互式命o行方式的例子

$exp scott/tiger tables=(emp,dept) file=/directory/scott.dmp grants=y

说明:把scott用户里两个表emp,dept导出到文?directory/scott.dmp

$exp scott/tiger tables=emp query="where job='salesman' and sal<1600" file=/directory/scott2.dmp

说明:在exp里面加上导出emp的查询条件job='salesman' and sal<1600

(但我个h很少q样?q是把满x件的记录生成临时表后,再exp会方便一?

$exp parfile=username.par file=/directory1/username_1.dmp,/directory1/username_2.dmp filesize=2000M log=/directory2/username_exp.log

参数文gusername.par内容
userid=username/userpassword
buffer=8192000
compress=n
grants=y

说明:username.par为导出工具exp用的参数文g,里面具体参数可以Ҏ需要去修改

filesize指定生成的二q制备䆾文g的最大字节数

(可用来解x些OS?G物理文g的限制及加快压羃速度和方便刻历史数据光盘{?

导入工具 imp

1. 它是操作pȝ下一个可执行的文?存放目录/ORACLE_HOME/bin

imp导入工具EXP形成的二q制pȝ文g导入到数据库?

它有三种模式Q?BR>a. 用户模式Q?导出用户所有对象以及对象中的数据;
b. 表模式: 导出用户所有表或者指定的表;
c. 整个数据库: 导出数据库中所有对象?BR>
只有拥有IMP_FULL_DATABASE和DBA权限的用h能做整个数据库导?BR>
imp步骤Q?BR>(1) create table (2) insert data (3) create index (4) create triggers,constraints

2.导入工具imp交互式命令行方式的例?BR>$ imp
Import: Release 8.1.6.0.0 - Production on 星期?12?7 17:01:08 2001
(c) Copyright 1999 Oracle Corporation. All rights reserved.
用户? test
口o:****
q接? Oracle8i Enterprise Edition Release 8.1.6.0.0 - bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
导入文g: expdat.dmp> /tmp/m.dmp
输入插入~冲区大(最ؓ 8192 ) 30720>
l由常规路径导出由EXPORT:V08.01.06创徏的文?BR>警告: 此对象由 TEST 导出, 而不是当前用?BR>已经完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的导?BR>只列出导入文件的内容(yes/no)Qno>
׃对象已存? 忽略创徏错误(yes/no)Qno> yes
导入权限(yes/no)Qyes>
导入表数?yes/no)Qyes>
导入整个导出文g(yes/no)Qno> yes
. 正在TEST的对象导入到 SCOTT
. . 正在导入?"CMAMENU" 4336行被导入
成功l止导入Q但出现警告?


3.导入工具imp非交互式命o行方式的例子

$ imp system/manager fromuser=jones tables=(accts)
$ imp system/manager fromuser=scott tables=(emp,dept)
$ imp system/manager fromuser=scott touser=joe tables=emp
$ imp scott/tiger file = expdat.dmp full=y
$ imp scott/tiger file = /mnt1/t1.dmp show=n buffer=2048000 ignore=n commit=y grants=y full=y log=/oracle_backup/log/imp_scott.log
$ imp system/manager parfile=params.dat
params.dat 内容
file=dba.dmp show=n ignore=n grants=y fromuser=scott tables=(dept,emp)

4.导入工具imp可能出现的问?BR>
(1) 数据库对象已l存?BR>一般情? 导入数据前应该彻底删除目标数据下的表, 序列, 函数/q程,触发器等;
数据库对象已l存? 按缺省的imp参数, 则会导入p|
如果用了参数ignore=y, 会把exp文g内的数据内容导入
如果表有唯一关键字的U束条g, 不合条g不被导?BR>如果表没有唯一关键字的U束条g, 引赯录重?BR>
(2) 数据库对象有d键约?BR>不符合主外键U束? 数据会导入失?
解决办法: 先导入主? 再导入依存表
disable目标导入对象的主外键U束, 导入数据? 再enable它们
(3) 权限不够
如果要把A用户的数据导入B用户? A用户需要有imp_full_database权限

(4) 导入大表( 大于80M ) ? 存储分配p|
默认的EXP? compress = Y, 也就是把所有的数据压羃在一个数据块?
导入? 如果不存在连l一个大数据? 则会导入p|.
导出80M以上的大表时, 记得compress= N, 则不会引赯U错?

(5) imp和exp使用的字W集不同
如果字符集不? 导入会失? 可以改变unix环境变量或者NT注册表里NLS_LANG相关信息.
导入完成后再改回?

(6) imp和exp版本不能往上兼?BR>imp可以成功导入低版本exp生成的文? 不能导入高版本exp生成的文?BR>Ҏ情况我们可以?BR>$ imp username/password@connect_string
说明: connect_string 是在/ORACLE_HOME/network/admin/tnsnames.ora
定义的本地或者远端数据库的名U?BR>注意事项:
UNIX: /etc/hosts 要定义本地或者远端数据库服务器的L?BR>win98: windowshosts 和IP地址的对应关p?

win2000: winntsystem32driversetchosts


ZhuJun 2005-12-26 22:19 发表评论
]]>
ORACLE常用ȝ问题1000问[转]http://www.aygfsteel.com/Johncn/archive/2005/12/16/24224.htmlZhuJunZhuJunFri, 16 Dec 2005 07:23:00 GMThttp://www.aygfsteel.com/Johncn/archive/2005/12/16/24224.htmlhttp://www.aygfsteel.com/Johncn/comments/24224.htmlhttp://www.aygfsteel.com/Johncn/archive/2005/12/16/24224.html#Feedback0http://www.aygfsteel.com/Johncn/comments/commentRss/24224.htmlhttp://www.aygfsteel.com/Johncn/services/trackbacks/24224.html阅读全文

ZhuJun 2005-12-16 15:23 发表评论
]]>
SQL Server各种日期计算Ҏ[转]http://www.aygfsteel.com/Johncn/archive/2005/12/08/22963.htmlZhuJunZhuJunThu, 08 Dec 2005 04:40:00 GMThttp://www.aygfsteel.com/Johncn/archive/2005/12/08/22963.htmlhttp://www.aygfsteel.com/Johncn/comments/22963.htmlhttp://www.aygfsteel.com/Johncn/archive/2005/12/08/22963.html#Feedback0http://www.aygfsteel.com/Johncn/comments/commentRss/22963.htmlhttp://www.aygfsteel.com/Johncn/services/trackbacks/22963.html(原文)


  通常Q你需要获得当前日期和计算一些其他的日期Q例如,你的E序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分Ԍq、月、日{)Q然后仅仅用分割出来的年、月、日{放在几个函C计算己所需要的日期Q在q篇?章里Q我告诉你如何使用DATEADD和DATEDIFF函数来计出在你的程序中可能你要用到的一些不同日期?

  在用本文中的例子之前,你必L意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一Pq完全由哪一天是一个星期的W一天这个设|决定。第一天(DATEFIRSTQ设定决定了你的pȝ使用哪一天作Z周的W一天。所有以下的?子都是以星期天作Z周的W一天来建立Q也是W一天设|ؓ7。假如你的第一天设|不一P你可能需要调整这些例子,使它和不同的W一天设|相W合。你可以通过@@DATEFIRST函数来检查第一天设|?
  
  Z理解q些例子Q我们先复习一下DATEDIFF和DATEADD函数。DATEDIFF函数计算两个日期之间的小时、天、周、月、年{时间间隔L。DATEADD函数计算一个日期通过l时间间隔加减来获得一个新的日期。要了解更多的DATEDI FF和DATEADD函数以及旉间隔可以阅读微Y联机帮助?
  
  使用DATEDIFF和DATEADD函数来计日期,和本来从当前日期转换C需要的日期的考虑Ҏ有点不同。你必须从时间间隔这个方面来考虑。比如,从当前日期到你要得到的日期之间有多少旉间隔Q或者,从今天到某一天(比如1900-1-1Q之间有多少旉间隔Q等{。理解怎样着g旉间隔有助于你L的理解我的不同的日期计算例子?
  
  一个月的第一?/B>
  
  W一个例子,我将告诉你如何从当前日期去这个月的最后一天。请注意Q这个例子以及这文章中的其他例子都只使用DATEDIFF和DATEADD函数来计我们想要的日期。每一个例子都通过计算但前的时间间隔,然后q行加减来得到想要计的日期?
  
  q是计算一个月W一天的SQL 脚本Q?
  SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
  
  我们把这个语句分开来看看它是如何工作的。最核心的函数是getdate()Q大部分人都知道q个是返回当前的日期和时间的函数。下一个执行的函数DATEDIFF(mm,0,getdate())是计当前日期和?900-01-01 00:00:00.000”这个日期之间的月数。记住:时期和时间变量和毫秒一h从?900-01-01 00:00:00.000”开始计的。这是Z么你可以在DATEDIFF函数中指定第一个时间表辑ּ为?”。下一个函数是DATEADDQ增加当前日期到?900-01-01”的月数。通过增加预定义的日期?900-01-01”和当前日期的月敎ͼ我们可以获得q个月的W一天。另外,计算出来的日期的旉部分会是?0:00:00.000”?
  
  q个计算的技巧是先计当前日期到?900-01-01”的旉间隔敎ͼ然后把它加到?900-01-01”上来获得特D的日期Q这个技巧可以用来计很多不同的日期。下一个例子也是用q个技巧从当前日期来生不同的日期?BR>本周的星期一
  
  q里我是用周(wk)的时间间隔来计算哪一天是本周的星期一?
  
  SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
  
  一q的W一?/FONT>
  
  现在用年(yy)的时间间隔来昄q一q的W一天?
  
  SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
  
  季度的第一?/B>
  
  假如你要计算q个季度的第一天,q个例子告诉你该如何做?
  
  SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
  
  当天的半?/B>
  
  曄需要通过getdate()函数Zq回旉值截掉时间部分,׃考虑到当前日期是不是在半夜。假如这Pq个例子使用DATEDIFF和DATEADD函数来获得半夜的旉炏V?
  
  SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
  
  深入DATEDIFF和DATEADD函数计算
  
  你可以明白,通过使用单的DATEDIFF和DATEADD函数计算Q你可以发现很多不同的可能有意义的日期?
  
  目前为止的所有例子只是仅仅计当前的旉和?900-01-01”之间的旉间隔数量Q然后把它加到?900-01-01”的旉间隔上来计算出日期。假定你修改旉间隔的数量,或者用不同的旉间隔来调用DATEADD函数Q或者减L间间隔而不是增加,那么通过q些的调整你可以发现和多不同的日期?
  
  q里有四个例子用另外一个DATEADD函数来计最后一天来分别替换DATEADD函数前后两个旉间隔?
上个月的最后一?/FONT>
  
  q是一个计上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要CQ在Sql Server中时间是_?毫秒。这是Z么我需要减?毫秒来获得我要的日期和时间?
  
  SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
  
  计算出来的日期的旉部分包含了一个Sql Server可以记录的一天的最后时??3:59:59:997?的时间?
  
  d的最后一?/FONT>
  
  q接上面的例子,Z要得到去q的最后一天,你需要在今年的第一天上减去3毫秒?
  
  SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
  
  本月的最后一?/B>
  
  现在Qؓ了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修攚w要给用DATEDIFF比较当前日期和?900-01-01”返回的旉间隔上加1。通过?个月Q我计算Z个月的第一天,然后减去3毫秒Q这样就计算Zq个月的最后一天。这是计本月最后一天的SQL脚本?
  
  SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
  
  本年的最后一?/B>   
  你现在应该掌握这个的做法Q这是计本q最后一天脚?
  
  SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))?
  
  本月的第一个星期一
  
  好了Q现在是最后一个例子。这里我要计这个月的第一个星期一。这是计的脚本?
  
  select DATEADD(wk, DATEDIFF(wk,0,
  dateadd(dd,6-datepart(day,getdate()),getdate())
  ), 0)
  
  在这个例子里Q我使用了“本周的星期一”的脚本Qƈ作了一点点修改。修改的部分是把原来脚本中“getdate()”部分替换成计算本月的第6天,在计中用本月的W?天来替换当前日期使得计算可以获得q个月的W一个星期一?
  
  ȝ
  
  我希望这些例子可以在你用DATEADD和DATEDIFF函数计算日期时给你一点启发。通过使用q个计算日期的时间间隔的数学ҎQ我发现Z昄两个日期之间间隔的有用历法是有h值的。注意,q只是计出q些日期的一U方法。要牢记Q还有很多方?可以得到相同的计结果。假如你有其他的ҎQ那很不错,要是你没有,我希望这些例子可以给你一些启发,当你要用DATEADD和DATEDIFF函数计算你程序可能要用到的日期时?
附录Q其他日期处理方?
  
  1)L时分U?/FONT>
  declare @ datetime
  set @ = getdate() --'2003-7-1 10:00:00'
  SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)
  
  2Q?FONT color=red>昄星期?/FONT>
  select datename(weekday,getdate())
  
  3Q如?FONT color=red>取得某个月的天数

  declare @m int
  set @m=2 --月䆾
  select datediff(day,'2003-'+cast(@m as varchar)+'-15' ,'2003-'+cast(@m+1 as varchar)+'-15')
  另外Q取得本月天?
  select datediff(day,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate()) as varchar)+'-15' ,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate())+1 as varchar)+'-15')
  或者用计本月的最后一天的脚本Q然后用DAY函数区最后一?
  SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))
  
  4Q?FONT color=red>判断是否闰年
Q?
  SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then 'q_' else '闰年' end
  或?
  select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))
  when 28 then 'q_' else '闰年' end
  
  5Q?FONT color=red>一个季度多天

  declare @m tinyint,@time smalldatetime
  select @m=month(getdate())
  select @m=case when @m between 1 and 3 then 1
  when @m between 4 and 6 then 4
  when @m between 7 and 9 then 7
  else 10 end
  select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
  select datediff(day,@time,dateadd(mm,3,@time))



ZhuJun 2005-12-08 12:40 发表评论
]]>
վ֩ģ壺 | û| | ɽ| | | Ž| ͨ| | ҵ| ¡| | ƴ| | Ϊ| | ߰| ԫ| տ| | ײ| ӽ| | | | | | | Ϫ| Ӽ| ƽ| | °Ͷ| | ͳ| | ˫Ѽɽ| | ׯ| | ʡ|