﻿<?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-努力幸福</title><link>http://www.blogjava.net/ftqiuqiu/</link><description>猫和球的故事</description><language>zh-cn</language><lastBuildDate>Tue, 21 Apr 2026 17:37:31 GMT</lastBuildDate><pubDate>Tue, 21 Apr 2026 17:37:31 GMT</pubDate><ttl>60</ttl><item><title>Eclipse快捷键大全（转载）</title><link>http://www.blogjava.net/ftqiuqiu/articles/264879.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Fri, 10 Apr 2009 08:41:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/264879.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/264879.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/264879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/264879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/264879.html</trackback:ping><description><![CDATA[<div class="postbody"><font size="2">Ctrl+1&nbsp;快速修复(最经典的快捷键,就不用多说了)<br />
Ctrl+D:&nbsp;删除当前行&nbsp;<br />
Ctrl+Alt+&#8595;&nbsp;复制当前行到下一行(复制增加)<br />
Ctrl+Alt+&#8593;&nbsp;复制当前行到上一行(复制增加)<br />
Alt+&#8595;&nbsp;当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)<br />
Alt+&#8593;&nbsp;当前行和上面一行交互位置(同上)<br />
Alt+&#8592;&nbsp;前一个编辑的页面<br />
Alt+&#8594;&nbsp;下一个编辑的页面(当然是针对上面那条来说了)<br />
Alt+Enter&nbsp;显示当前选择资源(工程,or&nbsp;文件&nbsp;or文件)的属性<br />
Shift+Enter&nbsp;在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)<br />
Shift+Ctrl+Enter&nbsp;在当前行插入空行(原理同上条)<br />
Ctrl+Q&nbsp;定位到最后编辑的地方<br />
Ctrl+L&nbsp;定位在某行&nbsp;(对于程序超过100的人就有福音了)<br />
Ctrl+M&nbsp;最大化当前的Edit或View&nbsp;(再按则反之)<br />
Ctrl+/&nbsp;注释当前行,再按则取消注释<br />
Ctrl+O&nbsp;快速显示&nbsp;OutLine<br />
Ctrl+T&nbsp;快速显示当前类的继承结构<br />
Ctrl+W&nbsp;关闭当前Editer<br />
Ctrl+K&nbsp;参照选中的Word快速定位到下一个<br />
Ctrl+E&nbsp;快速显示当前Editer的下拉列表(如果当前页面没有显示的用黑体表示)<br />
Ctrl+/(小键盘)&nbsp;折叠当前类中的所有代码<br />
Ctrl+&#215;(小键盘)&nbsp;展开当前类中的所有代码<br />
Ctrl+Space&nbsp;代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代替)<br />
Ctrl+Shift+E&nbsp;显示管理当前打开的所有的View的管理器(可以选择关闭,激活等操作)<br />
Ctrl+J&nbsp;正向增量查找(按下Ctrl+J后,你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes&nbsp;line中显示没有找到了,查一个单词时,特别实用,这个功能Idea两年前就有了)<br />
Ctrl+Shift+J&nbsp;反向增量查找(和上条相同,只不过是从后往前查)<br />
Ctrl+Shift+F4&nbsp;关闭所有打开的Editer<br />
Ctrl+Shift+X&nbsp;把当前选中的文本全部变味小写<br />
Ctrl+Shift+Y&nbsp;把当前选中的文本全部变为小写<br />
Ctrl+Shift+F&nbsp;格式化当前代码<br />
Ctrl+Shift+P&nbsp;定位到对于的匹配符(譬如{})&nbsp;(从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)<br />
<br />
下面的快捷键是重构里面常用的,本人就自己喜欢且常用的整理一下(注:一般重构的快捷键都是Alt+Shift开头的了)<br />
Alt+Shift+R&nbsp;重命名&nbsp;(是我自己最爱用的一个了,尤其是变量和类的Rename,比手工方法能节省很多劳动力)<br />
Alt+Shift+M&nbsp;抽取方法&nbsp;(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)<br />
Alt+Shift+C&nbsp;修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)<br />
Alt+Shift+L&nbsp;抽取本地变量(&nbsp;可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)<br />
Alt+Shift+F&nbsp;把Class中的local变量变为field变量&nbsp;(比较实用的功能)<br />
Alt+Shift+I&nbsp;合并变量(可能这样说有点不妥Inline)<br />
Alt+Shift+V&nbsp;移动函数和变量(不怎么常用)<br />
Alt+Shift+Z&nbsp;重构的后悔药(Undo)<br />
<br />
编辑<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;查找并替换&nbsp;Ctrl+F&nbsp;<br />
文本编辑器&nbsp;查找上一个&nbsp;Ctrl+Shift+K&nbsp;<br />
文本编辑器&nbsp;查找下一个&nbsp;Ctrl+K&nbsp;<br />
全局&nbsp;撤销&nbsp;Ctrl+Z&nbsp;<br />
全局&nbsp;复制&nbsp;Ctrl+C&nbsp;<br />
全局&nbsp;恢复上一个选择&nbsp;Alt+Shift+&#8595;&nbsp;<br />
全局&nbsp;剪切&nbsp;Ctrl+X&nbsp;<br />
全局&nbsp;快速修正&nbsp;Ctrl1+1&nbsp;<br />
全局&nbsp;内容辅助&nbsp;Alt+/&nbsp;<br />
全局&nbsp;全部选中&nbsp;Ctrl+A&nbsp;<br />
全局&nbsp;删除&nbsp;Delete&nbsp;<br />
全局&nbsp;上下文信息&nbsp;Alt+？<br />
Alt+Shift+?<br />
Ctrl+Shift+Space&nbsp;<br />
Java编辑器&nbsp;显示工具提示描述&nbsp;F2&nbsp;<br />
Java编辑器&nbsp;选择封装元素&nbsp;Alt+Shift+&#8593;&nbsp;<br />
Java编辑器&nbsp;选择上一个元素&nbsp;Alt+Shift+&#8592;&nbsp;<br />
Java编辑器&nbsp;选择下一个元素&nbsp;Alt+Shift+&#8594;&nbsp;<br />
文本编辑器&nbsp;增量查找&nbsp;Ctrl+J&nbsp;<br />
文本编辑器&nbsp;增量逆向查找&nbsp;Ctrl+Shift+J&nbsp;<br />
全局&nbsp;粘贴&nbsp;Ctrl+V&nbsp;<br />
全局&nbsp;重做&nbsp;Ctrl+Y&nbsp;<br />
<br />
&nbsp;<br />
查看<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;放大&nbsp;Ctrl+=&nbsp;<br />
全局&nbsp;缩小&nbsp;Ctrl+-&nbsp;<br />
<br />
&nbsp;<br />
窗口<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;激活编辑器&nbsp;F12&nbsp;<br />
全局&nbsp;切换编辑器&nbsp;Ctrl+Shift+W&nbsp;<br />
全局&nbsp;上一个编辑器&nbsp;Ctrl+Shift+F6&nbsp;<br />
全局&nbsp;上一个视图&nbsp;Ctrl+Shift+F7&nbsp;<br />
全局&nbsp;上一个透视图&nbsp;Ctrl+Shift+F8&nbsp;<br />
全局&nbsp;下一个编辑器&nbsp;Ctrl+F6&nbsp;<br />
全局&nbsp;下一个视图&nbsp;Ctrl+F7&nbsp;<br />
全局&nbsp;下一个透视图&nbsp;Ctrl+F8&nbsp;<br />
文本编辑器&nbsp;显示标尺上下文菜单&nbsp;Ctrl+W&nbsp;<br />
全局&nbsp;显示视图菜单&nbsp;Ctrl+F10&nbsp;<br />
全局&nbsp;显示系统菜单&nbsp;Alt+-&nbsp;<br />
<br />
&nbsp;<br />
导航<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
Java编辑器&nbsp;打开结构&nbsp;Ctrl+F3&nbsp;<br />
全局&nbsp;打开类型&nbsp;Ctrl+Shift+T&nbsp;<br />
全局&nbsp;打开类型层次结构&nbsp;F4&nbsp;<br />
全局&nbsp;打开声明&nbsp;F3&nbsp;<br />
全局&nbsp;打开外部javadoc&nbsp;Shift+F2&nbsp;<br />
全局&nbsp;打开资源&nbsp;Ctrl+Shift+R&nbsp;<br />
全局&nbsp;后退历史记录&nbsp;Alt+&#8592;&nbsp;<br />
全局&nbsp;前进历史记录&nbsp;Alt+&#8594;&nbsp;<br />
全局&nbsp;上一个&nbsp;Ctrl+,&nbsp;<br />
全局&nbsp;下一个&nbsp;Ctrl+.&nbsp;<br />
Java编辑器&nbsp;显示大纲&nbsp;Ctrl+O&nbsp;<br />
全局&nbsp;在层次结构中打开类型&nbsp;Ctrl+Shift+H&nbsp;<br />
全局&nbsp;转至匹配的括号&nbsp;Ctrl+Shift+P&nbsp;<br />
全局&nbsp;转至上一个编辑位置&nbsp;Ctrl+Q&nbsp;<br />
Java编辑器&nbsp;转至上一个成员&nbsp;Ctrl+Shift+&#8593;&nbsp;<br />
Java编辑器&nbsp;转至下一个成员&nbsp;Ctrl+Shift+&#8595;&nbsp;<br />
文本编辑器&nbsp;转至行&nbsp;Ctrl+L&nbsp;<br />
<br />
&nbsp;<br />
搜索<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;出现在文件中&nbsp;Ctrl+Shift+U&nbsp;<br />
全局&nbsp;打开搜索对话框&nbsp;Ctrl+H&nbsp;<br />
全局&nbsp;工作区中的声明&nbsp;Ctrl+G&nbsp;<br />
全局&nbsp;工作区中的引用&nbsp;Ctrl+Shift+G&nbsp;<br />
<br />
&nbsp;<br />
文本编辑<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
文本编辑器&nbsp;改写切换&nbsp;Insert&nbsp;<br />
文本编辑器&nbsp;上滚行&nbsp;Ctrl+&#8593;&nbsp;<br />
文本编辑器&nbsp;下滚行&nbsp;Ctrl+&#8595;&nbsp;<br />
<br />
&nbsp;<br />
文件<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;保存&nbsp;Ctrl+X&nbsp;<br />
Ctrl+S&nbsp;<br />
全局&nbsp;打印&nbsp;Ctrl+P&nbsp;<br />
全局&nbsp;关闭&nbsp;Ctrl+F4&nbsp;<br />
全局&nbsp;全部保存&nbsp;Ctrl+Shift+S&nbsp;<br />
全局&nbsp;全部关闭&nbsp;Ctrl+Shift+F4&nbsp;<br />
全局&nbsp;属性&nbsp;Alt+Enter&nbsp;<br />
全局&nbsp;新建&nbsp;Ctrl+N&nbsp;<br />
<br />
&nbsp;<br />
项目<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;全部构建&nbsp;Ctrl+B&nbsp;<br />
<br />
&nbsp;<br />
源代码<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
Java编辑器&nbsp;格式化&nbsp;Ctrl+Shift+F&nbsp;<br />
Java编辑器&nbsp;取消注释&nbsp;Ctrl+\&nbsp;<br />
Java编辑器&nbsp;注释&nbsp;Ctrl+/&nbsp;<br />
Java编辑器&nbsp;添加导入&nbsp;Ctrl+Shift+M&nbsp;<br />
Java编辑器&nbsp;组织导入&nbsp;Ctrl+Shift+O&nbsp;<br />
Java编辑器&nbsp;使用try/catch块来包围&nbsp;未设置，太常用了，所以在这里列出,建议自己设置。<br />
也可以使用Ctrl+1自动修正。&nbsp;<br />
<br />
&nbsp;<br />
运行<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;单步返回&nbsp;F7&nbsp;<br />
全局&nbsp;单步跳过&nbsp;F6&nbsp;<br />
全局&nbsp;单步跳入&nbsp;F5&nbsp;<br />
全局&nbsp;单步跳入选择&nbsp;Ctrl+F5&nbsp;<br />
全局&nbsp;调试上次启动&nbsp;F11&nbsp;<br />
全局&nbsp;继续&nbsp;F8&nbsp;<br />
全局&nbsp;使用过滤器单步执行&nbsp;Shift+F5&nbsp;<br />
全局&nbsp;添加/去除断点&nbsp;Ctrl+Shift+B&nbsp;<br />
全局&nbsp;显示&nbsp;Ctrl+D&nbsp;<br />
全局&nbsp;运行上次启动&nbsp;Ctrl+F11&nbsp;<br />
全局&nbsp;运行至行&nbsp;Ctrl+R&nbsp;<br />
全局&nbsp;执行&nbsp;Ctrl+U&nbsp;<br />
<br />
&nbsp;<br />
重构<br />
作用域&nbsp;功能&nbsp;快捷键&nbsp;<br />
全局&nbsp;撤销重构&nbsp;Alt+Shift+Z&nbsp;<br />
全局&nbsp;抽取方法&nbsp;Alt+Shift+M&nbsp;<br />
全局&nbsp;抽取局部变量&nbsp;Alt+Shift+L&nbsp;<br />
全局&nbsp;内联&nbsp;Alt+Shift+I&nbsp;<br />
全局&nbsp;移动&nbsp;Alt+Shift+V&nbsp;<br />
全局&nbsp;重命名&nbsp;Alt+Shift+R&nbsp;<br />
全局&nbsp;重做&nbsp;Alt+Shift+Y</font></div>
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/264879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2009-04-10 16:41 <a href="http://www.blogjava.net/ftqiuqiu/articles/264879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MyEclipse6.5使用技巧</title><link>http://www.blogjava.net/ftqiuqiu/articles/264874.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Fri, 10 Apr 2009 08:30:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/264874.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/264874.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/264874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/264874.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/264874.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体"><br style="font-family: " />
<strong style="font-family: ">设置技巧1</strong><br style="font-family: " />
<br style="font-family: " />
在MyEclipse6.0甚至更高的6.5GA版本中的快捷键中把我们习惯性使用的Alt+/进行代码自动补齐<br style="font-family: " />
&nbsp;&nbsp; 但是由于于之前版本有快捷键有冲突,所以总之不能自动提示<br style="font-family: " />
&nbsp;&nbsp; 以下是解决方法<br style="font-family: " />
&nbsp;&nbsp; 方法如下：<br style="font-family: " />
&nbsp;&nbsp; 1.选择MyEclipse6.X菜单栏中的Window-&gt;preferences；<br style="font-family: " />
&nbsp;&nbsp; 2.选择General-&gt;keys;<br style="font-family: " />
&nbsp;&nbsp; 3.在右侧中间的窗体中点击word completion后再点击remove binding,在下方的binding中随便输入一个快捷键；<br style="font-family: " />
&nbsp;&nbsp; 4.然后选择Content Assist点击Remove binding，在binding中输入Alt+/；<br style="font-family: " />
&nbsp;&nbsp; 5.点击Ok就可以了<br style="font-family: " />
<br style="font-family: " />
&nbsp;&nbsp;<br style="font-family: " />
<strong style="font-family: ">设置技巧2</strong><br style="font-family: " />
<br style="font-family: " />
Eclipse中默认是Ctrl+/实现单词补全功能，系统会列出相近若干个选项，怎样不通过快捷<br style="font-family: " />
<br style="font-family: " />
键就启动这个功能，即打入单词，停顿片刻之后就会列出若干个相近选项供选择？<br style="font-family: " />
<br style="font-family: " />
下面就是解决方法 <br style="font-family: " />
会看到只有一个&#8220;.&#8221;存在。表示：只有输入&#8220;.&#8221;之后才会有代码提示，我们要修改的地方就是这里，可是Eclipse默认只允许输入4个自定义字符。<br style="font-family: " />
<br style="font-family: " />
不过我们可以把当前的设置导出，保存为一个文件，然后在文件中修改，再导入设置，这样就可以突破Eclipse的限制。<br style="font-family: " />
<br style="font-family: " />
先把上图中&#8220;.&#8221;的地方输入几个随便的字符，例如&#8220;asdf&#8221;，点最下面的&#8220;OK&#8221;来保存设置。<br style="font-family: " />
<br style="font-family: " />
然后打开 Eclipse的 File -&gt; Export,在窗口中展开 General -&gt;Perferences--&gt;Export all然后点击NEXT。然后点击&#8220;Browse&#8221;选择任意的一个路径，保存配置文件，然 后点击&#8220;Finish&#8221;。<br style="font-family: " />
<br style="font-family: " />
用记事本打开刚才保存的那个配置文件（扩展文件名：*.epf），按&#8220;ctrl + F&#8221;，输入刚才设置的&#8220;asdf&#8221;，找到刚才字符串。把&#8220;asdf&#8221;修改为&#8220;abcdefghijklmnopqrstuvwxyz.&#8221;，然后保存，退出记事本。<br style="font-family: " />
<br style="font-family: " />
打开Eclipse的 File -&gt; Import 然后在打开的窗口里展开 General -&gt;Perferences，点击NEXT，选中刚才修改过的配置文件，Finish。现在，再打开Window -&gt;Perferences，并依次展开 Java -&gt; Editor -&gt; ContentAssist，会发现已经超过了4个字符，也就是说我们输入任何字母和&#8220;.&#8221;都会有代码提示了。<br style="font-family: " />
<br style="font-family: " />
修改之后，默认是你输入某个字符200毫秒之后出现代码提示，如果出现输入很卡的情况，需要把提示延迟调高一些；如果你嫌它太慢，可以修改成更小的数字，不过数字改的越小，对系统性能的要求就越高，我设置的是50毫秒<br style="font-family: " />
<br style="font-family: " />
<br style="font-family: " />
以上是个人编程习惯.大家可自行设置!<br style="font-family: " />
</span>
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/264874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2009-04-10 16:30 <a href="http://www.blogjava.net/ftqiuqiu/articles/264874.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中ESCAPE关键字用法</title><link>http://www.blogjava.net/ftqiuqiu/articles/263183.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Tue, 31 Mar 2009 09:26:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/263183.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/263183.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/263183.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/263183.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/263183.html</trackback:ping><description><![CDATA[<p>定义：escape关键字经常用于使某些特殊字符，如通配符：'%','_'转义为它们原</p>
<p>来的字符的意义，被定义的转义字符通常使用'\',但是也可以使用其他的符号。</p>
<p>实例：</p>
<p>SQL&gt; select * from t11 where name like '%_%';</p>
<p>NAME<br />
----------<br />
aa_a<br />
aaa<br />
<br />
SQL&gt; select * from t11 where name like '%\_%' escape '\';</p>
<p>NAME<br />
----------<br />
aa_a</p>
<p>注意：如果是 '/' 作为检索字符, 必须 用 '/' 作为转义符, 正斜扛也一样.<br />
select * from wan_test where psid like '%//%' escape '/'</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/263183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2009-03-31 17:26 <a href="http://www.blogjava.net/ftqiuqiu/articles/263183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中的DECODE函数</title><link>http://www.blogjava.net/ftqiuqiu/articles/263170.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Tue, 31 Mar 2009 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/263170.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/263170.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/263170.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/263170.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/263170.html</trackback:ping><description><![CDATA[Decode： <br />
　　（指令解码）由于X86指令的长度不一致，必须用一个单元进行"翻译"，真正的内核按翻译后要求来工作。<br />
　　---------------------------------------------------------------------------------------------------------------------------<br />
<br />
　　DECODE函数<br />
<br />
　　DECODE是Oracle公司独家提供的功能，它是一个功能很强的函数。它虽然不是SQL的标准，但对于性能非常有用。到目前，其他的数据库供应商还不能提供类似DECODE的功能，甚至有的数据库的供应商批评Oracle的SQL不标准。实际上，这种批评有些片面或不够水平。就象有些马车制造商抱怨亨利。福特的&#8220;马车&#8221;不标准一样。<br />
　　1 DECODE 中的if-then-else逻辑<br />
　　在逻辑编程中，经常用到If &#8211; Then &#8211;Else 进行逻辑判断。在DECODE的语法中，实际上就是这样的逻辑处理过程。它的语法如下：<br />
　　DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )<br />
　　Value 代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试，如果value的值为if1，Decode 函数的结果是then1；如果value等于if2，Decode函数结果是then2；等等。事实上，可以给出多个if/then 配对。如果value结果不等于给出的任何配对时，Decode 结果就返回else 。<br />
　　需要注意的是，这里的if、then及else 都可以是函数或计算表达式。<br />
　　2 DECODE 的简单例子<br />
　　Oracle系统中就有许多数据字典是使用decode 思想设计的，比如记录会话信息的V$SESSION数据字典视图就是这样。我们从《Oracle8i/9i Reference》资料中了解到，当用户登录成功后在V$SESSION中就有该用户的相应记录，但用户所进行的命令操作在该视图中只记录命令的代码（0—没有任何操作，2—Insert&#8230;），而不是具体的命令关键字。因此，我们需要了解当前各个用户的名字及他们所进行的操作时，要用下面命令才能得到详细的结果：<br />
　　select sid,serial#,username,<br />
　　DECODE(command,<br />
　　0,&#8217;None&#8217;,<br />
　　2,&#8217;Insert&#8217;,<br />
　　3,&#8217;Select&#8217;,<br />
　　6,&#8217;Update&#8217;,<br />
　　7,&#8217;Delete&#8217;,<br />
　　8,&#8217;Drop&#8217;,<br />
　　&#8216;Other&#8217;) cmmand<br />
　　from v$session where username is not null;<br />
　　3 DECODE实现表的转置<br />
　　数据库中的表是由列和行构成的一个二维表。一般列在任何数据库中都是有限的数量，而行的变化较大，如果表很大，行的数量可能大上千万行。同一列的不同行可能有不同的值，而且不是预先定义的。<br />
　　例:住房公积金报表置换实例：<br />
　　1.各个单位在本地经办行进行开户，开户就是将单位的基本信息和职工信息的进行登记；<br />
　　2.每月各个单位的会计到经办行交缴本单位的所有职工的住房公积金，系统记录有每个职工的交缴明细并在每条记录上记录有经办行的代码；<br />
　　3.每月、季、半年及年终都要求将经办行 变为&#8220;列&#8221;给出个月的明细报表：<br />
　　经办行：城西区 城东区 <br />
　　月份：<br />
　　2001.01 xxxx1.xx xxxxx2.xx <br />
　　2001.02 xxxx3.xx xxxxx4.xx <br />
　　。 。 。 。 。 。<br />
　　原来的数据顺序是：<br />
　　城西区2001.01 xxxxx1.xx<br />
　　城东区2001.01 xxxxx2.xx<br />
　　城西区2001.02 xxxxx3.xx<br />
　　城东区2001.02 xxxxx4.xx<br />
　　住房公积金系统记录职工的每月交缴名细的pay_lst表结构是：<br />
　　bank_code varchar2(6)NOT NULL, -- 经办行代码<br />
　　acc_no varchar2(15) not null, -- 单位代码(单位帐号)<br />
　　emp_acc_no varchar2(20) not null, -- 职工帐号<br />
　　tran_date date not null, -- 交缴日期<br />
　　tran_val Number(7,2) not null, -- 交缴额 <br />
　　sys_date date default sysdate, --系统日期<br />
　　oper_id varchar2(10) --操作员代码<br />
　　这样的表结构，一般按照将经办行作为行(row)进行统计是很容易的，但是如果希望将经办行变为列(column)这样的格式来输出就有困难。如果用DECODE函数来处理则变得很简单：<br />
　　我们创建一个视图来对目前的pay_lst表进行查询。将经办行代码变为一些具体的经办行名称即可：<br />
　　CREATE OR REPLACE VIEW bank_date_lst AS<br />
　　Select to_char(tran_date,&#8217;yyyy.mm&#8217;),<br />
　　SUM( DECODE ( bank_code,&#8217;001&#8217;, tran_val,0 )) 城西区，<br />
　　SUM( DECODE ( bank_code,&#8217;002&#8217;, tran_val,0 )) 城南区，<br />
　　SUM( DECODE ( bank_code,&#8217;003&#8217;, tran_val,0 )) 城东区<br />
　　FROM pay_lst<br />
　　GROUP BY to_char(tran_date,&#8217;yyyy.mm&#8217;);<br />
　　建立视图后，可直接对该视图进行查询就可按照列显示出结果。<br />
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/263170.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2009-03-31 16:48 <a href="http://www.blogjava.net/ftqiuqiu/articles/263170.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript中的document.all和document.getElementById</title><link>http://www.blogjava.net/ftqiuqiu/articles/263155.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Tue, 31 Mar 2009 08:17:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/263155.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/263155.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/263155.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/263155.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/263155.html</trackback:ping><description><![CDATA[从返回值来看 <br />
document.all(name/id)返回拥有共同name/id属性的对象集合 <br />
document.getElementById(name/id)返回具有指定name/id的单个对象 <br />
<br />
兼容性上来说 <br />
document.all为IE所专有的,一般用来判断是否是IE浏览器,尽量不要使用 <br />
document.getElenmntById为JS标准函数 <br />
<br />
document.getElementById 有时会抓name放过了id ，据说是IE的一个BUG；<br />
<br />
<a href="http://community.csdn.net/Expert/topic/4223/4223888.xml?temp=.1947443">http://community.csdn.net/Expert/topic/4223/4223888.xml?temp=.1947443</a><br />
<br />
<font style="background-color: #ffffff" color="#000080">页面中有<br />
&nbsp;&nbsp;&nbsp; &lt;input type="hidden" id="hello8" name="category_id" value="2" /&gt;</font>
<p><font style="background-color: #ffffff" color="#000080">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;select id="category_id"&nbsp;&nbsp; onchange="al();"&gt;</font></p>
<p><font style="background-color: #ffffff" color="#000080">&nbsp;一个是name="category_id" 一个是id="category_id" <br />
<br />
用document.getElementById取第二个，可是，取到的却是第一个name=category_id</font><br />
<br />
<br />
在IE中getElementById竟然不是先抓id而是先找name相同的物件...<br />
&nbsp;<br />
兩個form,每個form有兩個textbox,兩個form中的textbox是相同的name,但id都不同...<br />
這樣在Firefox是沒問題的...但在IE卻只抓得到第一個出現的name資料<br />
<br />
下面这段代码可以验证这个结果</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%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HTML</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;getElementById&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">TITLE</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HEAD</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img id="Codehighlighter1_86_312_Open_Image" onclick="this.style.display='none'; Codehighlighter1_86_312_Open_Text.style.display='none'; Codehighlighter1_86_312_Closed_Image.style.display='inline'; Codehighlighter1_86_312_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_86_312_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_86_312_Closed_Text.style.display='none'; Codehighlighter1_86_312_Open_Image.style.display='inline'; Codehighlighter1_86_312_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">SCRIPT&nbsp;</span><span style="color: #ff0000">LANGUAGE</span><span style="color: #0000ff">="JavaScript"</span><span style="color: #0000ff">&gt;</span><span id="Codehighlighter1_86_312_Open_Text"><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000; background-color: #f5f5f5">&lt;!--</span><span style="color: #000000; background-color: #f5f5f5"><br />
<img id="Codehighlighter1_109_305_Open_Image" onclick="this.style.display='none'; Codehighlighter1_109_305_Open_Text.style.display='none'; Codehighlighter1_109_305_Closed_Image.style.display='inline'; Codehighlighter1_109_305_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_109_305_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_109_305_Closed_Text.style.display='none'; Codehighlighter1_109_305_Open_Image.style.display='inline'; Codehighlighter1_109_305_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: #0000ff; background-color: #f5f5f5">function</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;chkacc()</span><span id="Codehighlighter1_109_305_Open_Text"><span style="color: #000000; background-color: #f5f5f5">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />alert(document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">tbxuid1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />alert(document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">tbxpwd1</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />alert(document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">tbxuid</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />alert(document.getElementById(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">tbxpwd</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">).value);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />}</span></span><span style="color: #000000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" /></span><span style="color: #008000; background-color: #f5f5f5">//</span><span style="color: #008000; background-color: #f5f5f5">--&gt;</span><span style="color: #008000; background-color: #f5f5f5"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">SCRIPT</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">FORM&nbsp;</span><span style="color: #ff0000">METHOD</span><span style="color: #0000ff">=POST&nbsp;</span><span style="color: #ff0000">ACTION</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="frm1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">INPUT&nbsp;</span><span style="color: #ff0000">TYPE</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;NAME</span><span style="color: #0000ff">="tbxuid"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="tbxuid1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">INPUT&nbsp;</span><span style="color: #ff0000">TYPE</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;NAME</span><span style="color: #0000ff">="tbxpwd"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="tbxpwd1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">FORM</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">FORM&nbsp;</span><span style="color: #ff0000">METHOD</span><span style="color: #0000ff">=POST&nbsp;</span><span style="color: #ff0000">ACTION</span><span style="color: #0000ff">=""</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="frm2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">INPUT&nbsp;</span><span style="color: #ff0000">TYPE</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;NAME</span><span style="color: #0000ff">="tbxuid"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="tbxuid"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">INPUT&nbsp;</span><span style="color: #ff0000">TYPE</span><span style="color: #0000ff">="text"</span><span style="color: #ff0000">&nbsp;NAME</span><span style="color: #0000ff">="tbxpwd"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="tbxpwd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">INPUT&nbsp;</span><span style="color: #ff0000">TYPE</span><span style="color: #0000ff">="button"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="檢查"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="btnchk"</span><span style="color: #ff0000">&nbsp;onclick</span><span style="color: #0000ff">="chkacc();"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">FORM</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">BODY</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">HTML</span></div>
 <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/263155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2009-03-31 16:17 <a href="http://www.blogjava.net/ftqiuqiu/articles/263155.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>省市联动菜单 </title><link>http://www.blogjava.net/ftqiuqiu/articles/208889.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208889.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208889.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208889.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208889.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208889.html</trackback:ping><description><![CDATA[<p><font size="2">&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt; 省市关联菜单 &lt;/title&gt;<br />
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br />
&lt;style&gt;<br />
body,select<br />
{<br />
&nbsp;font-size:9pt;<br />
&nbsp;font-family:Verdana;<br />
}<br />
select {background-color:#F0F0F0;}<br />
&lt;/style&gt;<br />
&lt;SCRIPT LANGUAGE = JavaScript&gt;<br />
var nowPro='--请选择--;<br />
var nowCity="--请选择--";<br />
var pro_City=new Array();<br />
var province='--请选择--,北京市,天津市,河北省,山西省,内蒙古自治区,辽宁省,吉林省,黑龙江省,上海市,江苏省,浙江省,安徽省,福建省,江西省,山东省,河南省,湖北省,湖南省,广东省,广西自治区,海南省,重庆市,四川省,贵州省,云南省,西藏自治区,陕西省,甘肃省,青海省,宁夏自治区,新疆自治区,香港特别行政区,澳门特别行政区,台湾省,其它';<br />
pro_City[0]='--请选择--';<br />
pro_City[1]='北京市';<br />
pro_City[2]='天津市';<br />
pro_City[3]='河北省,石家庄市,唐山市,秦皇岛市,邯郸市,邢台市,保定市,张家口市,承德市,沧州市,廊坊市,衡水市';<br />
pro_City[4]='山西省,太原市,大同市,阳泉市,长治市,晋城市,朔州市,晋中市,运城市,忻州市,临汾市,吕梁市';<br />
pro_City[5]='内蒙古自治区,呼和浩特市,包头市,乌海市,赤峰市,通辽市,鄂尔多斯市,呼伦贝尔市,巴彦淖尔市,乌兰察布市,锡林浩特市,乌兰浩特市';<br />
pro_City[6]='辽宁省,沈阳市,大连市,鞍山市,抚顺市,本溪市,丹东市,锦州市,葫芦岛市,营口市,盘锦市,阜新市,辽阳市,铁岭市,朝阳市';<br />
pro_City[7]='吉林省,长春市,吉林市,四平市,辽源市,通化市,白山市,松原市,白城市,延吉市';<br />
pro_City[8]='黑龙江省,哈尔滨市,齐齐哈尔市,鹤岗市,双鸭山市,鸡西市,大庆市,伊春市,牡丹江市,佳木斯市,七台河市,黑河市,绥化市';<br />
pro_City[9]='上海市';<br />
pro_City[10]='江苏省,南京市,无锡市,徐州市,常州市,苏州市,南通市,连云港市,淮安市,盐城市,扬州市,镇江市,泰州市,宿迁市';<br />
pro_City[11]='浙江省,杭州市,宁波市,温州市,嘉兴市,湖州市,绍兴市,金华市,衢州市,舟山市,台州市,丽水市';<br />
pro_City[12]='安徽省,合肥市,芜湖市,蚌埠市,淮南市,马鞍山市,淮北市,铜陵市,安庆市,黄山市,滁州市,阜阳市,宿州市,巢湖市,六安市,亳州市,池州市,宣城市';<br />
pro_City[13]='福建省,福州市,厦门市,莆田市,三明市,泉州市,漳州市,南平市,龙岩市,宁德市';<br />
pro_City[14]='江西省,南昌市,景德镇市,萍乡市,新余市,九江市,鹰潭市,赣州市,吉安市,宜春市,抚州市,上饶市';<br />
pro_City[15]='山东省,济南市,青岛市,淄博市,枣庄市,东营市,潍坊市,烟台市,威海市,济宁市,泰安市,日照市,莱芜市,德州市,临沂市,聊城市,滨州市,菏泽市';<br />
pro_City[16]='河南省,郑州市,开封市,洛阳市,平顶山市,焦作市,鹤壁市,新乡市,安阳市,濮阳市,许昌市,漯河市,三门峡市,南阳市,商丘市,信阳市,周口市,驻马店市,济源市';<br />
pro_City[17]='湖北省,武汉市,黄石市,襄樊市,十堰市,荆州市,宜昌市,荆门市,鄂州市,孝感市,黄冈市,咸宁市,随州市,恩施市,仙桃市,天门市,潜江市';<br />
pro_City[18]='湖南省,长沙市,株洲市,湘潭市,衡阳市,邵阳市,岳阳市,常德市,张家界市,益阳市,郴州市,永州市,怀化市,娄底市,吉首市';<br />
pro_City[19]='广东省,广州市,深圳市,珠海市,汕头市,韶关市,佛山市,江门市,湛江市,茂名市,肇庆市,惠州市,梅州市,汕尾市,河源市,阳江市,清远市,东莞市,中山市,潮州市,揭阳市,云浮市';<br />
pro_City[20]='广西自治区,南宁市,柳州市,桂林市,梧州市,北海市,防城港市,钦州市,贵港市,玉林市,百色市,贺州市,河池市,来宾市,崇左市';<br />
pro_City[21]='海南省,海口市,三亚市';<br />
pro_City[22]='重庆市';<br />
pro_City[23]='四川省,成都市,自贡市,攀枝花市,泸州市,德阳市,绵阳市,广元市,遂宁市,内江市,乐山市,南充市,宜宾市,广安市,达州市,眉山市,雅安市,巴中市,资阳市,西昌市';<br />
pro_City[24]='贵州省,贵阳市,六盘水市,遵义市,安顺市,铜仁市,毕节市,兴义市,凯里市,都匀市';<br />
pro_City[25]='云南省,昆明市,曲靖市,玉溪市,保山市,昭通市,丽江市,思茅市,临沧市,景洪市,楚雄市,大理市,潞西市';<br />
pro_City[26]='西藏自治区,拉萨市,日喀则市';<br />
pro_City[27]='陕西省,西安市,铜川市,宝鸡市,咸阳市,渭南市,延安市,汉中市,榆林市,安康市,商洛市';<br />
pro_City[28]='甘肃省,兰州市,金昌市,白银市,天水市,嘉峪关市,武威市,张掖市,平凉市,酒泉市,庆阳市,定西市,陇南市,临夏市,合作市';<br />
pro_City[29]='青海省,西宁市,德令哈市,格尔木市';<br />
pro_City[30]='宁夏自治区,银川市,石嘴山市,吴忠市,固原市,中卫市';<br />
pro_City[31]='新疆自治区,乌鲁木齐市,克拉玛依市,吐鲁番市,哈密市,和田市,阿克苏市,喀什市,阿图什市,库尔勒市,昌吉市,博乐市,伊宁市,塔城市,阿勒泰市,石河子市,阿拉尔市,图木舒克市,五家渠市,';<br />
pro_City[32]='香港特别行政区';<br />
pro_City[33]='澳门特别行政区';<br />
pro_City[34]='台湾省,台北市,高雄市,基隆市,台中市,台南市,新竹市,嘉义市';<br />
pro_City[35]='其它';</font></p>
<p><font size="2">function setup(){<br />
&nbsp;var Array_city;<br />
&nbsp;var Array_province;<br />
&nbsp;Array_province=province.split(',');<br />
&nbsp;for(i=0;i&lt;Array_province.length;i++){<br />
&nbsp;&nbsp;document.all("province").options.add(new Option(Array_province[i],i));<br />
&nbsp;&nbsp;if(nowPro==Array_province[i]){<br />
&nbsp;&nbsp;&nbsp;document.all("province")[i].selected=true;<br />
&nbsp;&nbsp;&nbsp;Array_city=pro_City[i].split(',');<br />
&nbsp;&nbsp;&nbsp;if(Array_city.length&gt;1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt;Array_city.length;j++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.all("city").options.add(new Option(Array_city[j],j));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(nowCity==Array_city[j]){document.all("city")[j].selected=true;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;document.all("city").options.add(new Option(pro_City[i],0));<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}</font></p>
<p><font size="2">function on_pro_select_change(){<br />
&nbsp;var nowSelectIndex=document.all("province").selectedIndex;<br />
&nbsp;for(i=document.all("city").length-1;i&gt;=0;i--){document.all("city").options.remove(i);}<br />
&nbsp;var Array_city=pro_City[nowSelectIndex].split(',');<br />
&nbsp;&nbsp;&nbsp;if(Array_city.length&gt;1){<br />
&nbsp;&nbsp;&nbsp;&nbsp;for(j=1;j&lt;Array_city.length;j++){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.all("city").options.add(new Option(Array_city[j],j));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(nowCity==Array_city[j]){document.all("city")[j].selected=true;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}else{<br />
&nbsp;&nbsp;&nbsp;&nbsp;document.all("city").options.add(new Option(pro_City[nowSelectIndex],0));<br />
&nbsp;&nbsp;&nbsp;}<br />
}<br />
function on_city_change(){<br />
&nbsp;showCity.innerText=document.all("province")[document.all("province").selectedIndex].innerText+':'+document.all("city")[document.all("city").selectedIndex].innerText;<br />
}<br />
&lt;/SCRIPT&gt;<br />
&lt;/head&gt;<br />
&lt;body bgcolor="#E0E0E0" onload="setup()"&gt;<br />
多级关联菜单：<br />
&lt;form name="frm"&gt;<br />
省份&lt;select id="province" onchange="on_pro_select_change()"&gt;</font></p>
<p><font size="2">&lt;/select&gt;<br />
城市&lt;select id="city" onchange="on_city_change()"&gt;</font></p>
<p><font size="2">&lt;/select&gt;<br />
&lt;/form&gt;<br />
&lt;div id=showCity&gt;&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p>
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208889.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:20 <a href="http://www.blogjava.net/ftqiuqiu/articles/208889.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>影响Oracle汉字显示的字符集问题</title><link>http://www.blogjava.net/ftqiuqiu/articles/208888.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:20:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208888.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208888.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208888.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208888.html</trackback:ping><description><![CDATA[&nbsp;在国内外大中型数据库管理系统中，把ORACLE作为数据库管理平台的用户比较多。ORACLE 不论是数据库管理能力还是安全性都是无可非议的，但是，它在汉字信息的显示方面着实给中国用户带来不少麻烦，笔者多年从事ORACLE数据库管理，经常收到周围用户和外地用户反映有关ORACLE数据库汉字显示问题的求援信，主要现象是把汉字显示为不可识别的乱码，造成原来大量信息无法使用。本文将就这一问题产生的原因和解决办法进行一些探讨，供存在这方面问题的用户朋友参考。
<p><font color="#ffffff">----</font> <strong>1、原因分析</strong> </p>
<p><font color="#ffffff">----</font> 通过对用户反映情况的分析，发现字符集的设置不当是影响ORACLE数据库汉字显示的关键问题。那么字符集是怎么一会事呢？字符集是ORACLE 为适应不同语言文字显示而设定的。用于汉字显示的字符集主要有ZHS16CGB231280，US7ASCII，WE8ISO8859P1等。字符集不仅需在服务器端存在，而且客户端也必须有字符集注册。服务器端，字符集是在安装ORACLE时指定的，字符集登记信息存储在ORACLE数据库字典的V$NLS_PARAMETERS表中；客户端，字符集分两种情况，一种情况是sql*net 2.0以下版本，字符集是在windows的系统目录下的oracle.ini文件中登记的；另一种情况是sql*net 2.0以上（即32位）版本，字符集是在windows的系统注册表中登记的。要在客户端正确显示ORACLE 数据库汉字信息，首先必须使服务器端的字符集与客户端的字符集一致；其次是加载到ORACLE数据库的数据字符集必须与服务器指定字符集一致。因此，把用户存在的问题归纳分类，产生汉字显示异常的原因大致有以下几种： </p>
<p><font color="#ffffff">----</font> 1. 1服务器指定字符集与客户字符集不同，而与加载数据字符集一致。 </p>
<p><font color="#ffffff">----</font> 这种情况是最常见的，只要把客户端的字符集设置正确即可，解决办法见2.1。 </p>
<p><font color="#ffffff">----</font> 1. 2服务器指定字符集与客户字符集相同,与加载数据字符集不一致。 </p>
<p><font color="#ffffff">----</font> 这类问题一般发生在ORACLE版本升级或重新安装系统时选择了与原来服务器端不同的字符集，而恢复加载的备份数据仍是按原字符集卸出的场合,以及加载从其它使用不同字符集的ORACLE数据库卸出的数据的情况。这两种情况中，不管服务器端和客户端字符集是否一致都无法显示汉字。解决办法见2.2。 </p>
<p><font color="#ffffff">----</font> 1.3服务器指定字符集与客户字符集不同,与输入数据字符集不一致。 </p>
<p><font color="#ffffff">----</font> 这种情况是在客户端与服务器端字符集不一致时，从客户端输入了汉字信息。输入的这些信息即便是把客户端字符集更改正确，也无法显示汉字。解决办法见2.3。 </p>
<p><font color="#ffffff">----</font> <strong>2．解决办法</strong> </p>
<p><font color="#ffffff">----</font> 下面将分别对上述三种情况给出解决办法。为了叙述方便，假设客户端使用WINDOWS95/98环境，并已成功地配置了TCP/IP协议，安装了ORACLE的sql*net，sql*pluse产品。 </p>
<p><font color="#ffffff">----</font> 2.1 设置客户端字符集与服务器端字符集一致 </p>
<p><font color="#ffffff">----</font> 假设当前服务器端使用US7ASCII字符集。 </p>
<p><font color="#ffffff">----</font> （1）查看服务器端字符集 </p>
<p><font color="#ffffff">----</font> 通过客户端或服务器端的sql*plus登录ORACLE的一个合法用户，执行下列SQL语句： </p>
<pre>   SQL &gt; select * from V$NLS_PARAMETERS
parameter			            value
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
&#8230;.                             &#8230;.
NLS_CHARACTERSET               US7ASCII
NLS_SORT                       BINARY
NLS_NCHAR_CHARACTERSET         US7ASCII
</pre>
<p><font color="#ffffff">----</font> 从上述列表信息中可看出服务器端ORACLE数据库的字符集为'US7ASCII'。 </p>
<p><font color="#ffffff">----</font> （2）按照服务器端字符集对客户端进行配置 </p>
<p><font color="#ffffff">----</font> 配置方法有两种： </p>
<ul>
    <li>安装ORACLE的客户端软件时指定 </li>
</ul>
<p><font color="#ffffff">----</font> 在安装ORACLE的客户端产品软件时，选择与ORACLE服务端一致的字符集（本例为US7ASCII）即可。 </p>
<ul>
    <li>修改注册信息的方法 </li>
</ul>
<p><font color="#ffffff">----</font> 根据ORACLE 客户端所选sql*net 的版本分为下列两种情况： </p>
<p><font color="#ffffff">----</font> a. 客户端为 sql*net 2.0 以下版本 </p>
<p><font color="#ffffff">----</font> 进入Windows的系统目录，编辑oracle.ini文件，用US7ASCII替换原字符集，重新启动计算机，设置生效。 </p>
<p><font color="#ffffff">----</font> b. 客户端为 sql*net 2.0 以上版本 </p>
<p><font color="#ffffff">----</font> 在WIN98 下 运 行REGEDIT,第一步选HKEY_LOCAL_MACHINE,第二步选择SOFTWARE， 第三步选择 ORACLE， 第四步选择 NLS_LANG， 键 入 与服 务 器 端 相 同 的 字 符 集（本例为：AMERICAN_AMERICAN.US7ASCII）。 </p>
<p><font color="#ffffff">----</font> 2.2 强制加载数据字符集与服务器端字符集一致 </p>
<p><font color="#ffffff">----</font> 假设要加载数据从原ORACLE数据库卸出时的字符集为US7ASCII，当前ORACLE服务器字符集为WE8ISO8859P1。 </p>
<p><font color="#ffffff">----</font> 下面提供三种解决方法： </p>
<p><font color="#ffffff">----</font> （1） 服务器端重新安装ORACLE </p>
<p><font color="#ffffff">----</font> 在重新安装ORACLE 时选择与原卸出数据一致的字符集（本例为US7ASCII）。 </p>
<p><font color="#ffffff">----</font> 加载原卸出的数据。 </p>
<p><font color="#ffffff">----</font> 这种情况仅仅使用于空库和具有同一种字符集的数据。 </p>
<p><font color="#ffffff">----</font> （2）强行修改服务器端ORACLE当前字符集 </p>
<p><font color="#ffffff">----</font> 在用imp命令加载数据前，先在客户端用sql*plus登录system DBA用户，执行下列SQL语句进行当前ORACLE数据库字符集修改： </p>
<pre> SQL &gt; create database  character set US7ASCII
* create database character set US7ASCII
ERROR at line 1:
ORA-01031: insufficient privileges
</pre>
<p><font color="#ffffff">----</font> 你会发现语句执行过程中，出现上述错误提示信息，此时不用理会，实际上ORACLE数据库的字符集已被强行修改为US7ASCII，接着用imp命令装载数据。等数据装载完成以后，shutdown 数据库，再startup 数据库，用合法用户登录ORACLE数据库，在sql&gt;命令提示符下，运行select * from V$NLS_PARAMETERS，可以看到ORACLE数据库字符集已复原，这时再查看有汉字字符数据的表时，汉字已能被正确显示。 </p>
<p><font color="#ffffff">----</font> （3）利用数据格式转储，避开字符集限制 </p>
<p><font color="#ffffff">----</font> 这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下： </p>
<p><font color="#ffffff">----</font> 先将数据加载到具有相同字符集的服务器上，然后用转换工具卸出为foxbase 格式或access格式数据库，再用转换工具转入到不同字符集的ORACLE数据库中，这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象power builder5.0以上版本提供的pipeline，Microsoft Access数据库提供的数据导入/导出功能等。转换方法参见有关资料说明。. </p>
<p><font color="#ffffff">----</font> 2.3匹配字符集替换汉字 </p>
<p><font color="#ffffff">----</font> 对于1.3提到的情况，没有很好的办法，只能先把客户端与服务器端字符集匹配一致后，根据原输入汉字的特征码替换汉字字符部分。 </p>
&nbsp;
   <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:20 <a href="http://www.blogjava.net/ftqiuqiu/articles/208888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>外键未加索引和加索引的区别</title><link>http://www.blogjava.net/ftqiuqiu/articles/208887.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208887.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208887.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208887.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208887.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 主要描述外键未加索引和加索引的区别：&nbsp;首先建相关表：create table dept (dept_id number(2), name varchar2(20));&nbsp;&nbsp;&nbsp; alter table dept add (constraint pk_dept primary key (dept_id));&nbsp;&nbsp;--在外键...&nbsp;&nbsp;<a href='http://www.blogjava.net/ftqiuqiu/articles/208887.html'>阅读全文</a><img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:19 <a href="http://www.blogjava.net/ftqiuqiu/articles/208887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中的TOP（order by 结合使用rownum）</title><link>http://www.blogjava.net/ftqiuqiu/articles/208885.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208885.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208885.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208885.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208885.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208885.html</trackback:ping><description><![CDATA[例子很简单 scott用户下，对emp表的操作<br />
<br />
主要通过这个例子来更好的理解关于order by 结合使用rownum的情况<br />
（可以理解为是通过对自己筛选的行按照要求进行排列）<br />
<br />
例子如下：<br />
select *<br />
from(<br />
&nbsp;&nbsp;select empno,job,mgr<br />
&nbsp;&nbsp;from emp<br />
&nbsp; &nbsp;order by mgr desc)a<br />
--此a代表的视为内嵌视图：inline view：并不是存储在DB中的命名视图<br />
where rownum&lt;=5;<br />
<br />
&nbsp; &nbsp;&nbsp;&nbsp;EMPNO JOB&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;MGR<br />
---------- --------- ----------<br />
&nbsp; &nbsp;&nbsp; &nbsp;7839 PRESIDENT<br />
&nbsp; &nbsp;&nbsp; &nbsp;7370 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7902<br />
&nbsp; &nbsp;&nbsp; &nbsp;7597 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
&nbsp; &nbsp;&nbsp; &nbsp;7699 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
&nbsp; &nbsp;&nbsp; &nbsp;7813 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
<br />
select *<br />
from(<br />
&nbsp; &nbsp; select empno,job,mgr<br />
&nbsp; &nbsp;from emp<br />
&nbsp; &nbsp; order by mgr)<br />
where rownum&lt;=5;<br />
&nbsp; &nbsp;&nbsp;&nbsp;EMPNO JOB&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;MGR<br />
---------- --------- ----------<br />
&nbsp; &nbsp;&nbsp; &nbsp;7788 ANALYST&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7566<br />
&nbsp; &nbsp;&nbsp; &nbsp;7902 ANALYST&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7566<br />
&nbsp; &nbsp;&nbsp; &nbsp;7499 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
&nbsp; &nbsp;&nbsp; &nbsp;7521 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
&nbsp; &nbsp;&nbsp; &nbsp;7844 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
======================================================================<br />
以下结果是先返回表的前5条记录，然后按照order by mgr;进行默认的升序排列<br />
======================================================================<br />
select empno,job,mgr<br />
from emp<br />
where rownum&lt;=5<br />
order by mgr;<br />
&nbsp; &nbsp;&nbsp;&nbsp;EMPNO JOB&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;MGR<br />
---------- --------- ----------<br />
&nbsp; &nbsp;&nbsp; &nbsp;7499 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
&nbsp; &nbsp;&nbsp; &nbsp;7521 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
&nbsp; &nbsp;&nbsp; &nbsp;7654 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
&nbsp; &nbsp;&nbsp; &nbsp;7597 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
&nbsp; &nbsp;&nbsp; &nbsp;7370 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7902<br />
========================<br />
原始数据：<br />
<br />
select empno,job,mgr<br />
from emp;<br />
<br />
EMPNO JOB&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;MGR<br />
----- --------- ----------<br />
7370 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7902<br />
7499 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
7521 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp; 7698<br />
7597 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
7654 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
7699 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
7813 MANAGER&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7839<br />
7788 ANALYST&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7566<br />
7839 PRESIDENT<br />
7844 SALESMAN&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
7877 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7788<br />
7900 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7698<br />
7902 ANALYST&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;7566<br />
7965 CLERK&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;7782<br />
   <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208885.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:15 <a href="http://www.blogjava.net/ftqiuqiu/articles/208885.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle中的模糊查询 </title><link>http://www.blogjava.net/ftqiuqiu/articles/208884.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:10:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208884.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208884.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208884.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208884.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208884.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>ORACLE中的模糊查询是靠LIKE操作符来完成的。 <br />
现在我们来看一下LIKE操作符使用过程中的一些具体的问题 <br />
%：代表0个或者多个字符 <br />
_(下划线):代表一个字符 <br />
比如： <br />
(1) <br />
select ename from emp <br />
where ename like 'S%'; <br />
上面这个例子查询出的是以大写S为名字首字母的员工的员工姓名 <br />
(2) <br />
select ename from emp <br />
where ename like '_A%'; <br />
上面的这个例子中，匹配的就是名字中第二个字母为A的那些员工 </p>
<p>除了上面两种基本的用法外，我们可能还会碰到这样的问题，比如在员工的名字里就包含有&#8216;%&#8217; <br />
或者'_',那么我们该怎么办呢？ <br />
比如假如有一个员工的姓名为tom_cat，那么我们如何查询出和这个员工相关的一些信息呢？ <br />
我们的SQL语句应该这样来写； <br />
select * from emp <br />
where ename like '%\_%' escape '\'; <br />
<br />
关于escape的用法详见：博客中《Oracle中ESCAPE关键字用法》<a style="color: #800080" href="http://www.blogjava.net/ftqiuqiu/articles/263183.html"><u>http://www.blogjava.net/ftqiuqiu/articles/263183.html</u></a><br />
<br />
<br />
</p>
 <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208884.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:10 <a href="http://www.blogjava.net/ftqiuqiu/articles/208884.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java处理时间的总结(转)</title><link>http://www.blogjava.net/ftqiuqiu/articles/208881.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:05:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208881.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208881.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208881.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;1/**&nbsp;*//**&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2*&nbsp;有关日期工具类(extends&nbsp;TimeUtil)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4*&nbsp;TimeUtil主要功能有：&nbsp;&nb...&nbsp;&nbsp;<a href='http://www.blogjava.net/ftqiuqiu/articles/208881.html'>阅读全文</a><img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:05 <a href="http://www.blogjava.net/ftqiuqiu/articles/208881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CSS,HTML常用代码整理</title><link>http://www.blogjava.net/ftqiuqiu/articles/208878.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:01:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208878.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208878.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208878.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208878.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208878.html</trackback:ping><description><![CDATA[<p>请问如何去掉主页右面的滚动条？<br />
&lt;body scroll=no&gt;<br />
&lt;body style=overflow-y:hidden&gt;<br />
********************************<br />
怎样不使用页面的缓存？即每一次打开页面时不是调用缓存中的东西<br />
&lt;META HTTP-EQUIV=Pragma CONTENT=no-cache&gt;<br />
********************************<br />
请问如何忽视右键?<br />
&lt;body oncontextmenu=return false&gt;<br />
********************************<br />
怎样在同一页面内控制不同链接的CSS属性?<br />
a:active{}<br />
a:link{}<br />
a:visited{}</p>
<p>a.1:active{}<br />
a.1:link{}<br />
a.1:visited{}<br />
在DW4的CSS中定义一个新的标示，按照HTML的语法，超级连接得是A.YOURS：LINK A.YOURS：HOVER<br />
YOURS可以改作你自己的字<br />
然后在选中某个连接后，在CSS面版中点中YOURS即可。<br />
按需要，你可以定义N个标示，N种鼠标OVER的效果<br />
********************************<br />
电子邮件处理提交表单<br />
&lt;form name=form1 method=post action=mailto:webmaster@51js.com enctype=text/plain&gt;<br />
&lt;input type=submit&gt;<br />
&lt;/form&gt;<br />
********************************<br />
有没有可能用层来遮住FLASH？<br />
1.在flash的parameters里加入 &lt;param name=wmode value=transparent&gt;<br />
2.&lt;body onblur=self.focus()&gt;<br />
********************************<br />
如何根据屏幕分辨率调用相对应的页面？<br />
onclick=alert(你的显示分辩率为:+screen.width+&#215;+screen.height)<br />
先做好几个页面，比如一个htm1.htm是800*600，一个是htm2.htm是1024*768的<br />
然后在你的入口页面 index.htm 中判断：<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;script language=javascript&gt;<br />
&lt;!--<br />
function mHref() {<br />
if (screen.width == 1024) location.href = htm2.htm;<br />
else if (screen.width == 800) location.href = htm1.htm;<br />
else return(false);<br />
}<br />
//--&gt;<br />
&lt;/script&gt;<br />
&lt;/head&gt;<br />
&lt;body onload=mHref();&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
********************************<br />
如何弹出只有状态栏的窗口？&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;title&gt;open() close()&lt;/title&gt;<br />
&lt;script language=javascript type=text/javascript&gt;<br />
&lt;!--<br />
function openWin()<br />
{<br />
var newWin=open(,,menubar=1,height=200);<br />
newWin.document.write(&lt;form&gt;);<br />
newWin.document.write(单击以下按钮关闭窗口：&lt;p&gt;);<br />
newWin.document.write(&lt;input type=button value='关闭' onclick=window.close()&gt;);<br />
newWin.document.write(&lt;/form&gt;);<br />
}<br />
&lt;/script&gt;&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;div align=center&gt;<br />
&lt;h2&gt;单击以下按钮显示新窗口...&lt;/h2&gt;<br />
&lt;form name=form1&gt;<br />
&lt;input type=button value=新窗口1[只显示地址栏] onclick=window.open('','new1','location=1')&gt;<br />
&lt;input type=button value=新窗口2[只显示状态栏] onclick=window.open('','','status=1')&gt;<br />
&lt;input type=button value=新窗口3[只显示工具栏] onclick=window.open('','new2','toolbar=1,height=200,width=450')&gt;<br />
&lt;input type=button value=新窗口4[只显示菜单栏] onclick=openWin()&gt;<br />
&lt;input type=button value=新窗口5[一个不少] onclick=window.open('','new5')&gt;<br />
&lt;input type=button value=新窗口6[光棍但可调大小] onclick=window.open('http://www.51js.com/forumdisplay.php?forumid=32#thread','new6','resizable=1')&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;<br />
********************************<br />
如何让超链接没有下划线在源代码中的&lt;HEAD&gt;...&lt;/HEAD&gt;之间输入如下代码：<br />
&lt;style type=text/css&gt; <br />
&lt;!--<br />
a { text-decoration: none}<br />
--&gt; <br />
&lt;/style&gt;<br />
********************************<br />
请问如何做到让一个网页自动关闭.<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;OBJECT id=closes type=application/x-oleobject classid=clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11&gt;<br />
&lt;param name=Command value=Close&gt;<br />
&lt;/object&gt;<br />
&lt;/head&gt;<br />
&lt;body onload=window.setTimeout('closes.Click()',10000)&gt;<br />
这个窗口会在10秒过后自动关闭,而且不会出现提示. &lt;/body&gt;<br />
********************************<br />
如何几秒后转到别的页面？<br />
代码片段如下:<br />
&lt;META HTTP-EQUIV=Refresh CONTENT=10;URL=http://www.51js.com&gt;<br />
十秒中后跳到51JS.COM的首页<br />
********************************<br />
怎样才能把RealPlayer文件在网页做一个试听连接？<br />
&lt;embed height=25 src=51js.rm type=audio/x-pn-realaudio-plugin width=50 autostart=false controls=PlayButton&gt;<br />
********************************<br />
请问如何去掉IE的上下滚动条？<br />
&lt;body style='overflow:scroll;overflow-y:hidden'&gt;<br />
&lt;/body&gt;<br />
********************************<br />
解释一下event.X和event.clientX有什么区别？event.clientX返回事件发生时,mouse相对于客户窗口的X坐标<br />
event.X也一样<br />
但是如果设置事件对象的定位属性值为relative<br />
event.clientX不变<br />
而event.X返回事件对象的相对于本体的坐标<br />
event对象详解 ICOOE 2000.3.31 <a href="http://www.51js.com/">http://www.51js.com/</a><br />
event代表事件的状态，例如事件发生的的元素、鼠标的位置等等，event对象只在事件过程中才有效。</p>
<p>event属性：</p>
<p>altKey<br />
检索ALT键的当前状态<br />
可能的值 true为关闭<br />
false为不关闭</p>
<p>button<br />
检索按下的鼠标键<br />
可能的值： 0 没按键<br />
1 按左键<br />
2 按右键<br />
3 按左右键<br />
4 按中间键<br />
5 按左键和中间键<br />
6 按右键和中间键<br />
7 按所有的键</p>
<p>cancelBubble<br />
设置或检索当前事件是否将事件句柄起泡<br />
可能的值： false 启用起泡<br />
true 取消该事件起泡</p>
<p>clientX<br />
检索与窗口客户区域有关的鼠标光标的X坐标，属性为只读，没有默认值。</p>
<p>clientY<br />
检索与窗口客户区域有关的鼠标光标的Y坐标，属性为只读，没有默认值。</p>
<p>ctrlKey<br />
ctrlKey 检索CTRL键的当前状态<br />
可能的值 true为关闭<br />
false为不关闭</p>
<p>dataFld<br />
检索被oncellchange事伯影响的列</p>
<p>aTransfer<br />
为拖放操作提供预先定义的剪贴板式。</p>
<p>Element<br />
检索在onmouseover和onmouseout事件期间退出的对象指针</p>
<p>keyCode<br />
设置或检索与引发事件的关键字相关联的Unicode关键字代码<br />
该属性与onkeydown onkeyup onkeypress一起使用<br />
如果没有引发事件的关键字，则该值为0</p>
<p>offsetX<br />
检索与触发事件的对象相关的鼠标位置的水平坐标</p>
<p>offsetY<br />
检索与触发事件的对象相关的鼠标位置的垂直坐标</p>
<p>propertyName<br />
检索在对象上己更改的特性的名称</p>
<p>reason<br />
检索数据源对象数据传输的结果<br />
可能的值：<br />
0 数据传输成功<br />
1 数据传输失败<br />
2 数据传输错误</p>
<p>recordset<br />
检索数据源对象中默认记录集的引用<br />
该特性为只读</p>
<p>repeat<br />
检索一个事件是否被重复<br />
该属性只有在onkeydown事件重复时才返回true</p>
<p>returnValue<br />
设置或检索从事件中返回的值<br />
可能的值：<br />
true 事件中的值被返回<br />
false 源对象上事件的默认操作被取消</p>
<p>screenX<br />
检索与用户屏相关的鼠标的水平位置</p>
<p>screenY<br />
检索与用户屏相关的鼠标的垂直位置</p>
<p>shiftKey<br />
检索shiftKey键的当前状态<br />
可能的值 true为关闭<br />
false为不关闭</p>
<p>srcElement<br />
检索触发事件的对象</p>
<p>srcFilter<br />
检索导致onfilterchange事件触发的过滤器对象</p>
<p>srcUm<br />
检索触发事件行为的同一资源名称<br />
除非下面两个条件都为真，否则该特性被设置为null<br />
1.行为被附加到触发事件的要素上<br />
2.在前面的项目符号中定义的行为己指定了一个URN标识符和己触发的事件<br />
toElement<br />
检索作为onmouseover或者onmouseout事件结果而移动的对象<br />
type<br />
检索事件对象中的事件名称<br />
x<br />
检索相对于父要素鼠标水平坐标的整数<br />
y<br />
检索相对于父要素鼠标垂直坐标的整数<br />
********************************************<br />
如何让一个窗口永远在最上面？&lt;a onclick=aa()&gt;点这里&lt;/a&gt;<br />
&lt;script language='javascript'&gt;<br />
function aa(){<br />
y=window.showModalDialog(<a href="http://www.51js.com;,,height/">http://www.51js.com;,,Height</a>: 300; Width: 275; help: no);<br />
}<br />
&lt;/script&gt;<br />
********************************************<br />
[COLOR=red]target=_blank规定链接在新窗口中打开，那 target=_parent、 target=_self 、target=_top的作用又是什么？[/color]target=_parent、上一层框架<br />
target=_self 、自身窗口、框架<br />
target=_top 最顶层框架。<br />
更细点的解释，从织梦补给网找来的：<br />
_blank</p>
<p>開啟一個新的視窗，而且是沒有命名的視窗。</p>
<p>_self</p>
<p>強迫連結的結果顯示在同一個子畫面，而忽略 BASE 的設定。</p>
<p>_parent</p>
<p>在該子畫面的「父畫面」（也就是上一層的 FRAMESET）中顯示連結的結果。</p>
<p>_top</p>
<p>從視窗的最上頭開始顯示畫面；換句話說就是先清除整個視窗後再載入連結。<br />
********************************************<br />
如何使网友收藏本网时，收藏夹显示的不是微软的那个一成不变的标志，而是本人选择的ICON？<br />
&lt;LINK href=fav.ico rel=shortcut icon&gt;<br />
加入HADE標簽中，圖片放入根目錄下，須是.ico格式.<br />
有的空間不支援直接放在根目錄<br />
必須加上<br />
&lt;LINK href=路徑/圖檔.ico rel=shortcut icon&gt;<br />
********************************************<br />
如何监听一个窗口被关闭了？&lt;body onunload=alert('你关闭了这个窗口')&gt;<br />
********************************************<br />
什么是innerHTML、outerHTML.........还有innerText？<br />
&lt;div id=test&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;文本&lt;a&gt;链接&lt;/a&gt;另一段文本&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;<br />
&lt;input type=button onclick=alert(test.innerText) value=show innerText&gt;&lt;br&gt;<br />
&lt;input type=button onclick=alert(test.innerHTML) value=show innerHTML&gt;&lt;br&gt;<br />
&lt;input type=button onclick=alert(test.outerHTML) value=show outerHTML&gt;&lt;br&gt;<br />
********************************************<br />
window方法列表！发现经常有人问一些有关窗口操作的问题，<br />
所以花了些时间整理出这篇文章，<br />
希望以后不会再有人问这方面的问题。</p>
<p>ie里window的method列表</p>
<p>alert(sMsg)<br />
//弹出一个确认消息框<br />
attachEvent(sEvent,pFunction)<br />
//绑定一个函数到某个事件，事件触发时随机执行其中一个被绑定的函数<br />
blur()<br />
//令窗口丧失焦点</p>
<p>clearInterval(iIntervalID)<br />
//清除指定定时器的关联函数<br />
clearTimeout(iTimeoutID)<br />
//清除指定延时器的关联函数<br />
close()<br />
//关闭窗口，如果窗口不是用脚本打开的，会弹出确认对话框。<br />
confirm([sMessage])<br />
//弹出确定/取消对话框<br />
createPopup([vArgs])<br />
//创建一个隐藏的弹出式窗口，vArgs是未来考虑提供的参数,返回窗口句柄<br />
detachEvent(sEvent,pFunction)<br />
//取消一个事件的某个绑定函数<br />
execScript(sExpression, sLanguage)<br />
//用指定的语言执行代码<br />
focus()<br />
//激活窗口</p>
<p>moveBy(iX,iY)<br />
//用相对方式移动窗口<br />
moveTo(iLeft,iTop)<br />
//用绝对方式移动窗口<br />
navigate(sURL)<br />
//转到指定的连接</p>
<p>open( [sURL] [, sName] [, sFeatures] [, bReplace])<br />
//打开新窗口,并返回窗口句柄<br />
//sName=(*_blank:打开一个新的未命名窗口;_parent:在父窗口中打开;_search:同时打开搜索窗口；_self:替换本窗口; _top:在顶级窗口里打开;*)<br />
//sFeatures=(*channelmode = { yes | no | 1 | 0 };directories = { yes | no | 1 | 0 };fullscreen = { yes | no | 1 | 0 };height = number;left = number;location = { yes | no | 1 | 0 };menubar = { yes | no | 1 | 0 };resizable = { yes | no | 1 | 0 };scrollbars = { yes | no | 1 | 0 };status = { yes | no | 1 | 0 };titlebar = { yes | no | 1 | 0 };toolbar = { yes | no | 1 | 0 };top = number;width = number;*)</p>
<p>print()<br />
//打印当前窗口文档内容<br />
prompt( [sMessage] [, sDefaultValue])<br />
//弹出输入对话框<br />
resizeBy(iX, iY)<br />
//以相对方式改变窗口大小<br />
resizeTo(iWidth, iHeight)<br />
//以绝对方式改变窗口大小</p>
<p>scroll(iX,iY)<br />
滚动窗口，与scrollTo一样的效果，出于兼容性的考虑保留下来的方法<br />
scrollBy(iX, iY)<br />
//用相对方式滚动窗口<br />
scrollTo(iX, iY)<br />
//用绝对方式滚动窗口<br />
setActive()<br />
//激活目标而不将视线转向目标<br />
setInterval(vCode, iMilliSeconds [, sLanguage])<br />
//定时执行一段代码<br />
setTimeout(vCode, iMilliSeconds, sLanguage)<br />
//延时执行一段代码<br />
showHelp(sURL [, vContextID])<br />
//打开一个帮助文件，sURL为帮助文档地址，vContextID为帮助索引号<br />
showModalDialog(sURL [, vArguments] [, sFeatures])</p>
<p>showModalDialog(sURL [, vArguments] [, sFeatures])<br />
//打开一个模式对话框<br />
//vArguments=需要向新开模式对话框传递的参数<br />
//sFeatures=(*dialogHeight:sHeight;dialogLeft:sXPos;dialogTop:sYPos;dialogWidth:sWidth;center:{ yes | no | 1 | 0 | on | off };dialogHide:{ yes | no | 1 | 0 | on | off };edge:{ sunken | raised };help:{ yes | no | 1 | 0 | on | off };resizable:{ yes | no | 1 | 0 | on | off };scroll:{ yes | no | 1 | 0 | on | off };status:{ yes | no | 1 | 0 | on | off };unadorned:{ yes | no | 1 | 0 | on | off };*)</p>
<p>showModelessDialog(sURL [, vArguments] [, sFeatures])<br />
//打开一个非模式对话框<br />
//vArgument=需要向新开模式对话框传递的参数<br />
//sFeatures=(*dialogHeight:sHeight;dialogLeft:sXPos;dialogTop:sYPos;dialogWidth:sWidth;center:{ yes | no | 1 | 0 | on | off };dialogHide:{ yes | no | 1 | 0 | on | off };edge:{ sunken | raised };help:{ yes | no | 1 | 0 | on | off };resizable:{ yes | no | 1 | 0 | on | off };scroll:{ yes | no | 1 | 0 | on | off };status:{ yes | no | 1 | 0 | on | off };unadorned:{ yes | no | 1 | 0 | on | off };*)</p>
  <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208878.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:01 <a href="http://www.blogjava.net/ftqiuqiu/articles/208878.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JspSmartUpload上传下载全攻略</title><link>http://www.blogjava.net/ftqiuqiu/articles/208876.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208876.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208876.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208876.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208876.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208876.html</trackback:ping><description><![CDATA[<strong>一、安装篇</strong> <br />
<br />
　　jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件，适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点： <br />
<br />
1、使用简单。在JSP文件中仅仅书写三五行JAVA代码就可以搞定文件的上传或下载，方便。 <br />
<br />
2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法，可以获得全部上传文件的信息（包括文件名，大小，类型，扩展名，文件数据等），方便存取。 <br />
<br />
3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。 <br />
<br />
4、下载灵活。仅写两行代码，就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下，都可以利用jspSmartUpload进行下载。 <br />
<br />
5、能将文件上传到数据库中，也能将数据库中的数据下载下来。</strong>这种功能针对的是MYSQL数据库，因为不具有通用性，所以本文不准备举例介绍这种用法。 <br />
<br />
　　jspSmartUpload组件可以从www.jspsmart.com网站上自由下载，压缩包的名字是jspSmartUpload.zip。下载后，用WinZip或WinRAR将其解压到Tomcat的webapps目录下（本文以Tomcat服务器为例进行介绍）。解压后，将webapps/jspsmartupload目录下的子目录Web-inf名字改为全大写的WEB-INF，这样一改jspSmartUpload类才能使用。因为Tomcat对文件名大小写敏感，它要求Web应用程序相关的类所在目录为WEB-INF，且必须是大写。接着重新启动Tomcat，这样就可以在JSP文件中使用jspSmartUpload组件了。 <br />
<br />
　　注意，按上述方法安装后，只有webapps/jspsmartupload目录下的程序可以使用jspSmartUpload组件，如果想让Tomcat服务器的所有Web应用程序都能用它，必须做如下工作： <br />
<br />
1．进入命令行状态，将目录切换到Tomcat的webapps/jspsmartupload/WEB-INF目录下。 <br />
<br />
2．运行JAR打包命令：jar cvf jspSmartUpload.jar com <br />
<br />
（也可以打开资源管理器，切换到当前目录，用WinZip将com目录下的所有文件压缩成jspSmartUpload.zip，然后将jspSmartUpload.zip换名为jspSmartUpload.jar文件即可。） <br />
<br />
3．将jspSmartUpload.jar拷贝到Tomcat的shared/lib目录下。 <br />
<br />
<strong>二、相关类说明篇</strong> <br />
<br />
<strong>㈠ File类</strong> <br />
<br />
　　这个类包装了一个上传文件的所有信息。通过它，可以得到上传文件的文件名、文件大小、扩展名、文件数据等信息。 <br />
<br />
　　File类主要提供以下方法： <br />
<br />
1、saveAs作用：将文件换名另存。 <br />
<br />
原型： <br />
<br />
public void saveAs(java.lang.String destFilePathName) <br />
<br />
或 <br />
<br />
public void saveAs(java.lang.String destFilePathName, int optionSaveAs) <br />
<br />
其中，destFilePathName是另存的文件名，optionSaveAs是另存的选项，该选项有三个值，分别是SAVEAS_PHYSICAL,SAVEAS_VIRTUAL，SAVEAS_AUTO。SAVEAS_PHYSICAL表明以操作系统的根目录为文件根目录另存文件，SAVEAS_VIRTUAL表明以Web应用程序的根目录为文件根目录另存文件，SAVEAS_AUTO则表示让组件决定，当Web应用程序的根目录存在另存文件的目录时，它会选择SAVEAS_VIRTUAL，否则会选择SAVEAS_PHYSICAL。 <br />
<br />
例如，saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)执行后若Web服务器安装在C盘，则另存的文件名实际是c:\upload\sample.zip。而saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)执行后若Web应用程序的根目录是webapps/jspsmartupload，则另存的文件名实际是webapps/jspsmartupload/upload/sample.zip。saveAs("/upload/sample.zip",SAVEAS_AUTO)执行时若Web应用程序根目录下存在upload目录，则其效果同saveAs("/upload/sample.zip",SAVEAS_VIRTUAL)，否则同saveAs("/upload/sample.zip",SAVEAS_PHYSICAL)。 <br />
<br />
建议：对于Web程序的开发来说，最好使用SAVEAS_VIRTUAL，以便移植。 <br />
<br />
2、isMissing <br />
<br />
作用：这个方法用于判断用户是否选择了文件，也即对应的表单项是否有值。选择了文件时，它返回false。未选文件时，它返回true。 <br />
<br />
原型：public boolean isMissing() <br />
<br />
3、getFieldName <br />
<br />
作用：取HTML表单中对应于此上传文件的表单项的名字。 <br />
<br />
原型：public String getFieldName() <br />
<br />
4、getFileName <br />
<br />
作用：取文件名（不含目录信息） <br />
<br />
原型：public String getFileName() <br />
<br />
5、getFilePathName <br />
<br />
作用：取文件全名（带目录） <br />
<br />
原型：public String getFilePathName <br />
<br />
6、getFileExt <br />
<br />
作用：取文件扩展名（后缀） <br />
<br />
原型：public String getFileExt() <br />
<br />
7、getSize <br />
<br />
作用：取文件长度（以字节计） <br />
<br />
原型：public int getSize() <br />
<br />
8、getBinaryData <br />
<br />
作用：取文件数据中指定位移处的一个字节，用于检测文件等处理。 <br />
<br />
原型：public byte getBinaryData(int index)。其中，index表示位移，其值在0到getSize()-1之间。 <br />
<br />
<strong>㈡ Files类</strong> <br />
<br />
　　这个类表示所有上传文件的集合，通过它可以得到上传文件的数目、大小等信息。有以下方法： <br />
<br />
1、getCount <br />
<br />
作用：取得上传文件的数目。 <br />
<br />
原型：public int getCount() <br />
<br />
2、getFile <br />
<br />
作用：取得指定位移处的文件对象File（这是com.jspsmart.upload.File，不是java.io.File，注意区分）。 <br />
<br />
原型：public File getFile(int index)。其中，index为指定位移，其值在0到getCount()-1之间。 <br />
<br />
3、getSize <br />
<br />
作用：取得上传文件的总长度，可用于限制一次性上传的数据量大小。 <br />
<br />
原型：public long getSize() <br />
<br />
4、getCollection <br />
<br />
作用：将所有上传文件对象以Collection的形式返回，以便其它应用程序引用，浏览上传文件信息。 <br />
<br />
原型：public Collection getCollection() <br />
<br />
5、getEnumeration <br />
<br />
作用：将所有上传文件对象以Enumeration（枚举）的形式返回，以便其它应用程序浏览上传文件信息。 <br />
<br />
原型：public Enumeration getEnumeration() <br />
<br />
<strong>㈢ Request类</strong> <br />
<br />
　　这个类的功能等同于JSP内置的对象request。只所以提供这个类，是因为对于文件上传表单，通过request对象无法获得表单项的值，必须通过jspSmartUpload组件提供的Request对象来获取。该类提供如下方法： <br />
1、getParameter <br />
<br />
作用：获取指定参数之值。当参数不存在时，返回值为null。 <br />
<br />
原型：public String getParameter(String name)。其中，name为参数的名字。 <br />
<br />
2、getParameterValues <br />
<br />
作用：当一个参数可以有多个值时，用此方法来取其值。它返回的是一个字符串数组。当参数不存在时，返回值为null。 <br />
<br />
原型：public String[] getParameterValues(String name)。其中，name为参数的名字。 <br />
<br />
3、getParameterNames <br />
<br />
作用：取得Request对象中所有参数的名字，用于遍历所有参数。它返回的是一个枚举型的对象。 <br />
<br />
原型：public Enumeration getParameterNames() <br />
<br />
<strong>㈣ SmartUpload类</strong>这个类完成上传下载工作。 <br />
<br />
<strong>A．上传与下载共用的方法：</strong> <br />
<br />
只有一个：initialize。 <br />
<br />
作用：执行上传下载的初始化工作，必须第一个执行。 <br />
<br />
原型：有多个，主要使用下面这个： <br />
<br />
public final void initialize(javax.servlet.jsp.PageContext pageContext) <br />
<br />
其中，pageContext为JSP页面内置对象（页面上下文）。 <br />
<br />
<strong>B．上传文件使用的方法：</strong> <br />
<br />
1、upload <br />
<br />
作用：上传文件数据。对于上传操作，第一步执行initialize方法，第二步就要执行这个方法。 <br />
<br />
原型：public void upload() <br />
<br />
2、save <br />
<br />
作用：将全部上传文件保存到指定目录下，并返回保存的文件个数。 <br />
<br />
原型：public int save(String destPathName) <br />
<br />
和public int save(String destPathName,int option) <br />
<br />
其中，destPathName为文件保存目录，option为保存选项，它有三个值，分别是SAVE_PHYSICAL,SAVE_VIRTUAL和SAVE_AUTO。（同File类的saveAs方法的选项之值类似）SAVE_PHYSICAL指示组件将文件保存到以操作系统根目录为文件根目录的目录下，SAVE_VIRTUAL指示组件将文件保存到以Web应用程序根目录为文件根目录的目录下，而SAVE_AUTO则表示由组件自动选择。 <br />
<br />
注：save(destPathName)作用等同于save(destPathName,SAVE_AUTO)。 <br />
<br />
3、getSize <br />
<br />
作用：取上传文件数据的总长度 <br />
<br />
原型：public int getSize() <br />
<br />
4、getFiles <br />
<br />
作用：取全部上传文件，以Files对象形式返回，可以利用Files类的操作方法来获得上传文件的数目等信息。 <br />
<br />
原型：public Files getFiles() <br />
<br />
5、getRequest <br />
<br />
作用：取得Request对象，以便由此对象获得上传表单参数之值。 <br />
<br />
原型：public Request getRequest() <br />
<br />
6、setAllowedFilesList <br />
<br />
作用：设定允许上传带有指定扩展名的文件，当上传过程中有文件名不允许时，组件将抛出异常。 <br />
<br />
原型：public void setAllowedFilesList(String allowedFilesList) <br />
<br />
其中，allowedFilesList为允许上传的文件扩展名列表，各个扩展名之间以逗号分隔。如果想允许上传那些没有扩展名的文件，可以用两个逗号表示。例如：setAllowedFilesList("doc,txt,,")将允许上传带doc和txt扩展名的文件以及没有扩展名的文件。 <br />
<br />
7、setDeniedFilesList <br />
<br />
作用：用于限制上传那些带有指定扩展名的文件。若有文件扩展名被限制，则上传时组件将抛出异常。 <br />
<br />
原型：public void setDeniedFilesList(String deniedFilesList) <br />
<br />
其中，deniedFilesList为禁止上传的文件扩展名列表，各个扩展名之间以逗号分隔。如果想禁止上传那些没有扩展名的文件，可以用两个逗号来表示。例如：setDeniedFilesList("exe,bat,,")将禁止上传带exe和bat扩展名的文件以及没有扩展名的文件。 <br />
<br />
8、setMaxFileSize <br />
<br />
作用：设定每个文件允许上传的最大长度。 <br />
<br />
原型：public void setMaxFileSize(long maxFileSize) <br />
<br />
其中，maxFileSize为为每个文件允许上传的最大长度，当文件超出此长度时，将不被上传。 <br />
<br />
9、setTotalMaxFileSize <br />
<br />
作用：设定允许上传的文件的总长度，用于限制一次性上传的数据量大小。 <br />
<br />
原型：public void setTotalMaxFileSize(long totalMaxFileSize) <br />
<br />
其中，totalMaxFileSize为允许上传的文件的总长度。
<p>&nbsp;</p>
<p>文章整理：西部数码--专业提供<a href="http://www.west263.com/services/domain">域名注册</a>、<a href="http://www.westhost.cn/" target="_blank">虚拟主机</a>服务<br />
<a href="http://www.west263.com/" target="_blank">http://www.west263.com</a><br />
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息，谢谢!<br />
</p>
  <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208876.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 15:00 <a href="http://www.blogjava.net/ftqiuqiu/articles/208876.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Display Tag使用小记</title><link>http://www.blogjava.net/ftqiuqiu/articles/208875.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 06:58:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208875.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208875.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208875.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208875.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208875.html</trackback:ping><description><![CDATA[<p>用了一段时间的Display Tag，觉得非常好用，可在论坛上发现好像使用这个东东的人挺少的，那偶也来写篇文章。<br />
Display Tag Lib是一个标签库，用来处理JSP网页上的Table，功能非常强，可以对的Table进行分页、数据导出、分组、对列排序等等，反正我在做项目时需要的功能它都给我提供了，而且使用起来非常的方便。能够大大减少代码量。<br />
介个是Display Tag的官方网站http://displaytag.sourceforge.net。<br />
<br />
首先当然是要下载它的jar包了，这里可以下载到最新的版本。将jar包放到Web-INF的lib文件夹下。另外还需要两个辅助包：apache的commons-lang和standard包，更多的辅助包可以在这里下载。<br />
<br />
在Web.XML下添加一个filter<br />
&lt;filter&gt;<br />
&lt;filter-name&gt;exportFilter&lt;/filter-name&gt;<br />
&lt;filter-class&gt;org.displaytag.filter.ResponseOverrideFilter&lt;/filter-class&gt;<br />
&lt;/filter&gt;<br />
<br />
在JSP页面做一个引用：<br />
&lt;%@ taglib uri="http://displaytag.sf.net/el" prefix="display" %&gt;<br />
<br />
首先我们定义一个list<br />
&lt;% <br />
List test = new ArrayList( 6 );<br />
test.add( "Test String 1" );<br />
test.add( "Test String 2" );<br />
test.add( "Test String 3" );<br />
test.add( "Test String 4" );<br />
test.add( "Test String 5" );<br />
test.add( "Test String 6" );<br />
request.setAttribute( "test", test ); <br />
%&gt;<br />
<br />
当我们想在jsp页面上显示这个list时，我们只需要写一句话<br />
&lt;display:table name="test" /&gt;<br />
display tag会自动生成一个table<br />
<br />
如果list是从控制层抛出来的，name可使用EL表达式表示<br />
&lt;display:table name="${test}" /&gt;<br />
<br />
这是最简单的display tag的使用，我们可以给它加上样式等，也可以定义显示的列，下面的table显示复杂一些<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br />
&lt;display:column property="id" title="ID" class="idcol"/&gt;<br />
&lt;display:column property="name" /&gt;<br />
&lt;display:column property="email" /&gt;<br />
&lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt;<br />
<br />
如果想要给它加个链接也很简单,下面的代码给name加了连接，并附带id参数，email也自动连接到mailto:XXX<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0"&gt;<br />
&lt;display:column property="id" title="ID" class="idcol"/&gt;<br />
&lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id"/&gt;<br />
&lt;display:column property="email" autolink="true"/&gt;<br />
&lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt;</p>
<p>下面介绍几个Display最常用的功能，更多功能请参考http://displaytag.homeip.net/displaytag-examples-1.1/。<br />
1. 分页<br />
如果想对代码分页，只需在display:table标签中添加一项pagesize="每页显示行数"，如<br />
&lt;display:table name="test" pagesize="10"/&gt;</p>
<p>2. 对列排序<br />
display tag可对列进行排序，就是点击列名，对该列的数据进行排序。你只需对想要排序的列添加 sort="true" 就OK，如下面的代码可对前三列进行排序。在display:table中添加defaultsort="列数"，可默认对指定的列排序。<br />
&lt;display:table name="test" styleClass="list" cellspacing="0" cellpadding="0" defaultsort="1"&gt;<br />
&lt;display:column property="id" title="ID" class="idcol" sort="true"/&gt;<br />
&lt;display:column property="name" url="detail.jsp" paramId="id" paramProperty="id" sort="true"/&gt;<br />
&lt;display:column property="email" autolink="true" sort="true"/&gt;<br />
&lt;display:column property="description" title="Comments"/&gt;<br />
&lt;/display:table&gt;<br />
如果table有分页，Display Tag默认只对当前页进行排序，如果想对整个list排序，可以在display:table之间添加一段代码：<br />
&lt;display:setProperty name="sort.amount" value="list"/&gt;<br />
<br />
3. 导出数据<br />
在display:table中添加export="true"，看看会出现什么！Display Tag默认会提供三种数据导出方式：CSV、Excel、XML 。<br />
另外Display Tag还可以导出为PDF格式，在http://prdownloads.sourceforge.net/itext/下载一个辅助包iText.jar，copy到lib目录下，然后在display:table之间添加一段代码：<br />
&lt;display:setProperty name="export.pdf" value="true"/&gt;，大功告成。</p>
<p>4. Display Tag的属性设置<br />
前面所说的display:setProperty 是一种改变Display Tag属性的方法，但是在每个jsp中都要写太麻烦了。<br />
Display Tag中设置了很多默认的属性，它有一个专门的属性文件，是在它的jar包中的displaytag/properties/TableTag.properties想要改变它的默认属性，我们可以在WEB-INF\classes下新建一个文件displaytag.properties，仿照TableTag.properties中属性的格式设置需要修改的属性。 <br />
TableTag.properties中的# messages中设置的是显示在页面上的提示信息。默认是英文的，我们可以把它改为中文的。不过这里只能使用unicode，就是说中文字符必须转换为unicode码，这个可以使用JDK自带的native2ascii.exe进行转换。 </p>
<p>&nbsp;</p>
<p>5. 其它功能<br />
DisplayTag还有一些很实用的小功能，这里提两个。一个是对数据的Format，这是1.1版本添加的新功能，可以使用标签的方式格式化时间、数字、字符串。比如日期，在需要格式化的column标签中添加format="{0,date,yyyy-MM-dd}"，第一个参数为格式化的数据序号，第二个参数是数据类型，数字为number，第三个参数为数据格式。<br />
另外一个功能是对table数据的合计功能。在table标签中添加 decorator="org.displaytag.decorator.TotalTableDecorator"，然后在想要进行合计的数据列的column标签中添加 total="true"，该列就可以被计算总数了。但这个功能有个缺点，不能用在有分页的时候，它只能合计第一页的数据。<br />
<br />
<strong>DisplayTag的不足<br />
</strong>初次使用DisplayTag的人可能会觉得惊喜，但是用久了会发现很多问题，最大的问题是对中文的支持不好，比如如果查询条件中有中文，就无法翻页，无法对中文排序，将中文导出为指定文件时出现乱码等等。这些问题有时候会让人很郁闷，有时候逼得你要去修改它的源代码。下面是对以上几个问题的解决方法：<br />
1. 对于中文无法翻页、排序，最简单的办法是修改Tomcat下的server.xml文件。找到HTTP的Connector标签，在里面添加一项URIEncoding="..."，引号里面的内容取决于你的页面编码，比如可以是GBK，UTF8等。这样上面两个问题就可以解决了。<br />
2. 导出为文件：其实这个功能除了中文支持外还有很多其它问题，比如它会将Html标签一起导出、只导出显示的内容，但如果对table进行了decorator，decorator后的内容无法导出。如果想要将中文正确导出，需要修改DisplayTag源代码。<br />
下载相同版本的源代码，在org.displaytag.export.ExcelView.java文件中找到getMimeType()方法，将此方法修改为 return "application/vnd.ms-excel;charset=GB2312";，修改后导出数据的速度会慢很多，不过将就吧。<br />
3. 新版的DisplayTag1.1添加了对一次取部分数据的支持，相关的标签包括partialList和size，需要设置partialList="true"和size的大小。具体怎么用偶还没研究。<br />
<br />
</p>
<p>文章整理：西部数码--专业提供<a href="http://www.west263.com/services/domain">域名注册</a>、<a href="http://www.westhost.cn/" target="_blank">虚拟主机</a>服务<br />
<a href="http://www.west263.com/" target="_blank">http://www.west263.com</a><br />
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息，谢谢!<br />
</p>
<img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 14:58 <a href="http://www.blogjava.net/ftqiuqiu/articles/208875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle 存储过程的基本语法</title><link>http://www.blogjava.net/ftqiuqiu/articles/208871.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 06:54:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208871.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208871.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208871.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208871.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208871.html</trackback:ping><description><![CDATA[<div class="postbody">
<h1>oracle 存储过程的基本语法</h1>
<p><strong><br />
1.基本结构</strong> <br />
CREATE OR REPLACE PROCEDURE 存储过程名字<br />
(<br />
&nbsp;&nbsp;&nbsp; 参数1 IN NUMBER,<br />
&nbsp;&nbsp;&nbsp; 参数2 IN NUMBER<br />
) IS<br />
变量1 INTEGER :=0;<br />
变量2 DATE;<br />
BEGIN</p>
<p>END 存储过程名字<br />
<br />
<strong>2.SELECT INTO STATEMENT</strong><br />
&nbsp; 将select查询的结果存入到变量中，可以同时将多个列存储多个变量中，必须有一条<br />
&nbsp; 记录，否则抛出异常(如果没有记录抛出NO_DATA_FOUND)<br />
&nbsp; 例子： <br />
&nbsp; BEGIN<br />
&nbsp; SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;<br />
&nbsp; EXCEPTION<br />
&nbsp; WHEN NO_DATA_FOUND THEN<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;xxxx;<br />
&nbsp; END;<br />
&nbsp; ...<br />
<br />
<strong>3.IF 判断</strong><br />
&nbsp; IF V_TEST=1 THEN<br />
&nbsp;&nbsp;&nbsp; BEGIN <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; do something<br />
&nbsp;&nbsp;&nbsp; END;<br />
&nbsp; END IF;<br />
<br />
<strong>4.while 循环</strong><br />
&nbsp; WHILE V_TEST=1 LOOP<br />
&nbsp; BEGIN<br />
&nbsp;XXXX<br />
&nbsp; END;<br />
&nbsp; END LOOP;<br />
<strong><br />
5.变量赋值<br />
</strong>&nbsp; V_TEST := 123;<br />
<strong><br />
6.用for in 使用cursor</strong><br />
&nbsp; ...<br />
&nbsp; IS<br />
&nbsp; CURSOR cur IS SELECT * FROM xxx;<br />
&nbsp; BEGIN<br />
&nbsp;FOR cur_result in cur LOOP<br />
&nbsp;&nbsp;BEGIN<br />
&nbsp;&nbsp;&nbsp;V_SUM :=cur_result.列名1+cur_result.列名2<br />
&nbsp;&nbsp;END;<br />
&nbsp;END LOOP;<br />
&nbsp; END;<br />
<br />
<strong>7.带参数的cursor</strong><br />
&nbsp; CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;<br />
&nbsp; OPEN C_USER(变量值);<br />
&nbsp; LOOP<br />
&nbsp;FETCH C_USER INTO V_NAME;<br />
&nbsp;EXIT FETCH C_USER%NOTFOUND;<br />
&nbsp;&nbsp;&nbsp; do something<br />
&nbsp; END LOOP;<br />
&nbsp; CLOSE C_USER;<br />
<br />
<strong>8.用pl/sql developer debug<br />
</strong>&nbsp; 连接数据库后建立一个Test WINDOW<br />
&nbsp; 在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试</p>
</div>
 <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208871.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 14:54 <a href="http://www.blogjava.net/ftqiuqiu/articles/208871.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Oracle中实现各种日期处理</title><link>http://www.blogjava.net/ftqiuqiu/articles/208869.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 06:49:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208869.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208869.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208869.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208869.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208869.html</trackback:ping><description><![CDATA[<div class="postbody">TO_DATE格式 <br />
　　　 Day:　　　<br />
　　　 dd　　　 number　　　　 12 <br />
　　　 dy　　　 abbreviated　　fri　　　　　<br />
　　　 day　　　spelled out　　friday　　　　　　　　　　　　 <br />
　　　 ddspth　 spelled out,　 ordinal　 twelfth <br />
　　　 Month:　　<br />
　　　 mm　　　 number　　　　 03 <br />
　　　 mon　　　abbreviated　　mar <br />
　　　 month　　spelled out　　march　 <br />
　　　 Year:　　　　　　　　　　　　　 <br />
　　　 yy　　　 two　digits　　98 <br />
　　　 yyyy　　 four　digits　 1998　　 <br />
　　　　<br />
　　　 24小时格式下时间范围为： 0:00:00 - 23:59:59.... <br />
　　　 12小时格式下时间范围为： 1:00:00 - 12:59:59 ....　　 <br />
　　1. <br />
　　　 日期和字符转换函数用法（to_date,to_char）　　　 <br />
　　　<br />
　　2. <br />
　　　 select to_char( to_date(222,'J'),'Jsp')　from dual <br />
　　　　<br />
　　　 显示Two Hundred Twenty-Two <br />
　　　<br />
　　3. <br />
　　　 求某天是星期几 <br />
　　　 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day') from dual;　<br />
　　　 星期一 <br />
　　　 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;　<br />
　　　 monday　　<br />
　　　 设置日期语言 <br />
　　　 ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN'; <br />
　　　 也可以这样 <br />
　　　 TO_DATE ('2002-08-26', 'YYYY-mm-dd', 'NLS_DATE_LANGUAGE = American') <br />
　　　<br />
　　4. <br />
　　　 两个日期间的天数 <br />
　　　 select floor(sysdate - to_date('20020405','yyyymmdd')) from dual; <br />
　　　<br />
　　5.　　 时间为null的用法 <br />
　　　 select id, active_date from table1 <br />
　　　　 UNION <br />
　　　 select 1, TO_DATE(null) from dual; <br />
　　　　<br />
　　　 注意要用TO_DATE(null) <br />
　　　<br />
　　6.　 <br />
　　　 a_date between to_date('20011201','yyyymmdd') and to_date('20011231','yyyymmdd') <br />
　　　 那么12月31号中午12点之后和12月1号的12点之前是不包含在这个范围之内的。 <br />
　　　 所以，当时间需要精确的时候，觉得to_char还是必要的 <br />
　　7.　　　日期格式冲突问题 <br />
　　　　　　 输入的格式要看你安装的ORACLE字符集的类型, 比如: US7ASCII, date格式的类型就是: '01-Jan-01' <br />
　　　 alter system set NLS_DATE_LANGUAGE = American <br />
　　　　　　 alter session set NLS_DATE_LANGUAGE = American <br />
　　　 或者在to_date中写 <br />
　　　 select to_char(to_date('2002-08-26','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;　<br />
　　　 注意我这只是举了NLS_DATE_LANGUAGE，当然还有很多， <br />
　　　 可查看 <br />
　　　 select * from nls_session_parameters <br />
　　　 select * from V$NLS_PARAMETERS <br />
　　　<br />
　　<br />
　　　日期和字符转换函数用法（to_date,to_char）<br />
　　　　　　 We overwrite NLS_DATE_FORMAT into different formats for the session.　<br />
　　　　　　 SQL&gt; alter session set nls_date_format = 'DD-MON-RR'; Session altered. <br />
　　　　　　 SQL&gt; set pagesize 0<br />
　　　　 SQL&gt; set linesize 130<br />
　　　　 SQL&gt; select * from nls_session_parameters; <br />
　　　　 NLS_LANGUAGE　　　　　　　　　 AMERICAN<br />
　　　　 NLS_TERRITORY　　　　　　　　　AMERICA<br />
　　　　 NLS_CURRENCY　　　　　　　　　 $<br />
　　　　 NLS_ISO_CURRENCY　　　　　　　 AMERICA<br />
　　　　 NLS_NUMERIC_CHARACTERS　　　　 .,<br />
　　　　 NLS_CALENDAR　　　　　　　　　 GREGORIAN<br />
　　　　 NLS_DATE_FORMAT　　　　　　　　DD-MON-RR<br />
　　　　 NLS_DATE_LANGUAGE　　　　　　　AMERICAN<br />
　　　　 NLS_SORT　　　　　　　　　　　 BINARY<br />
　　　　 NLS_TIME_FORMAT　　　　　　　　HH.MI.SSXFF AM<br />
　　　　 NLS_TIMESTAMP_FORMAT　　　　　 DD-MON-RR HH.MI.SSXFF AM<br />
　　　　 NLS_TIME_TZ_FORMAT　　　　　　 HH.MI.SSXFF AM TZH:TZM<br />
　　　　 NLS_TIMESTAMP_TZ_FORMAT　　　　DD-MON-RR HH.MI.SSXFF AM TZH:TZM<br />
　　　　 NLS_DUAL_CURRENCY　　　　　　　$<br />
　　　　 NLS_COMP　　　　　　　　　　　 BINARY<br />
　　<br />
　　　　 15 rows selected.<br />
　　　　　　　specify it in SQL statement: <br />
　　　　　　　<br />
　　　　　　SQL&gt; select to_date('03-SEP-1999','DD-MON-YYYY') from dual; <br />
　　　　　　 03-SEP-99<br />
　　　　　　SQL&gt; alter session set nls_date_format = 'MM-DD-YYYY'; <br />
　　　　　　　　 Session altered. <br />
　　　　　　　　 <br />
　　　　　　SQL&gt; select to_date('03-SEP-99','DD-MON-YY') from dual; <br />
　　　　　　　　 TO_DATE('0 <br />
　　　　　　　　 ---------- <br />
　　　　　　　　 09-03-1999　<br />
　　　　　　SQL&gt; alter session set nls_date_format = 'RRRR-MM-DD'; <br />
　　　　　　　　 Session altered.　<br />
　　　　　　　　 <br />
　　　　　　SQL&gt; select to_date('03-SEP-1999','DD-MON-YYYY') from dual; <br />
　　　　　　　　 TO_DATE('0 <br />
　　　　　　　　 ---------- <br />
　　　　　　　　 1999-09-03　<br />
　　　　　　　　 <br />
　　　　When we use TO_CHAR function, we get expected results of format from　current SQL statement:　<br />
　　　　　　SQL&gt; alter session set nls_date_format = 'MM-DD-YY';<br />
　　　　　　　　 Session altered.　<br />
　　　　　　SQL&gt; select to_char(sysdate,'dd-mm-yyyy') from dual;<br />
　　　　　　　　 TO_CHAR(SYSDATE,'DD-MM-YYYY')　<br />
　　　　　　　　 07-09-1999　<br />
　　　　　　SQL&gt; alter session set nls_date_format = 'RR-MON-DD'; <br />
　　　　　　　　 Session altered.　<br />
　　　　　　SQL&gt; select to_char(sysdate,'dd-mon-yy') from dual; <br />
　　　　　　　　 TO_CHAR(SYSDATE,'DD-MON-YY')　<br />
　　　　　　　　 07-sep-99　<br />
　　　　　　SQL&gt; select to_char(sysdate,'dd-Mon-yy') from dual; <br />
　　　　　　　　 TO_CHAR(SYSDATE,'DD-MON-YY')　<br />
　　　　　　　　 07-Sep-99 <br />
　　8. <br />
　　　 select count(*)　<br />
　　　 from ( select rownum-1 rnum　<br />
　　　　　　　from all_objects　<br />
　　　　　　　where rownum &lt;= to_date('2002-02-28','yyyy-mm-dd') - to_date('2002- <br />
　　　　　　　02-01','yyyy-mm-dd')+1　<br />
　　　　　　 )　<br />
　　　 where to_char( to_date('2002-02-01','yyyy-mm-dd')+rnum-1, 'D' ) <br />
　　　 not　<br />
　　　 in ( '1', '7' ) <br />
　　　　<br />
　　　 查找2002-02-28至2002-02-01间除星期一和七的天数 <br />
　　　 在前后分别调用DBMS_UTILITY.GET_TIME, 让后将结果相减(得到的是1/100秒, 而不是毫秒).　　<br />
　　　<br />
　　9. <br />
　　　 select months_between(to_date('01-31-1999','MM-DD-YYYY'),　<br />
　　　　 to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;　<br />
　　　 1 <br />
　　　　<br />
　　　 select months_between(to_date('02-01-1999','MM-DD-YYYY'),　　 <br />
　　　　 to_date('12-31-1998','MM-DD-YYYY')) "MONTHS" FROM DUAL;　<br />
　　　　<br />
　　　 1.03225806451613 <br />
　　10.　　 Next_day的用法 <br />
　　　 Next_day(date, day) <br />
　　　　<br />
　　　 Monday-Sunday, for format code DAY　　　 <br />
　　　 Mon-Sun, for format code DY　　　　　<br />
　　　 1-7, for format code D　<br />
　　　<br />
　　11　　　 <br />
　　　 select to_char(sysdate,'hh:mi:ss') TIME from all_objects <br />
　　　 注意：第一条记录的TIME 与最后一行是一样的 <br />
　　　 可以建立一个函数来处理这个问题 <br />
　　　 create or replace function sys_date return date is　<br />
　　　 begin　<br />
　　　 return sysdate;　<br />
　　　 end;　<br />
　　　　<br />
　　　 select to_char(sys_date,'hh:mi:ss') from all_objects;　<br />
　　12. <br />
　　　　　　 获得小时数 <br />
　　　　　　　<br />
　　　　　　 SELECT EXTRACT(HOUR FROM TIMESTAMP '2001-02-16 2:38:40') from offer <br />
　　　　　　 SQL&gt;　 select sysdate ,to_char(sysdate,'hh')　from dual; <br />
　　　　　　　<br />
　　　　　　 SYSDATE　　　　　　　TO_CHAR(SYSDATE,'HH') <br />
　　　　　　 -------------------- --------------------- <br />
　　　　　　 2003-10-13 19:35:21　07 <br />
　　　　　　　<br />
　　　　　　 SQL&gt;　 select sysdate ,to_char(sysdate,'hh24')　from dual; <br />
　　　　　　　<br />
　　　　　　 SYSDATE　　　　　　　TO_CHAR(SYSDATE,'HH24') <br />
　　　　　　 -------------------- ----------------------- <br />
　　　　　　 2003-10-13 19:35:21　19 <br />
　　　　　　　<br />
　　　　　　 获取年月日与此类似 <br />
　　13. <br />
　　　 年月日的处理 <br />
　　　 select older_date, <br />
　　　　　　　　newer_date, <br />
　　　　　　　　years, <br />
　　　　　　　　months, <br />
　　　　　　　　abs( <br />
　　　　　　　　　trunc( <br />
　　　　　　　　　　 newer_date- <br />
　　　　　　　　　　　　 add_months( older_date,years*12+months ) <br />
　　　　　　　　　　　 ) <br />
　　　　　　　　　) days <br />
　　　　　from ( select　<br />
　　　　　　 trunc(months_between( newer_date, older_date )/12) YEARS, <br />
　　　　　 mod(tr .......</div>
 <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208869.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 14:49 <a href="http://www.blogjava.net/ftqiuqiu/articles/208869.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle10g 初始化参数说明</title><link>http://www.blogjava.net/ftqiuqiu/articles/208868.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Wed, 18 Jun 2008 06:48:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/208868.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/208868.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/208868.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/208868.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/208868.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 参数名： O7_DICTIONARY_ACCESSIBILITY类别：安全性和审计说明: 主要用于从 Oracle7 移植到 Oracle8i。如果该值为 TRUE, SYSTEM 权限 (如SELECT ANY TABLE) 将不限制对 SYS 方案中各对象的访问 (Oracle7 行为)。如果该值为FALSE, 只有被授予了 SELECT_CATALOG_ROLE, EXECUTE_C...&nbsp;&nbsp;<a href='http://www.blogjava.net/ftqiuqiu/articles/208868.html'>阅读全文</a><img src ="http://www.blogjava.net/ftqiuqiu/aggbug/208868.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-18 14:48 <a href="http://www.blogjava.net/ftqiuqiu/articles/208868.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JS刷新框架子页面的七种方法</title><link>http://www.blogjava.net/ftqiuqiu/articles/205634.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Tue, 03 Jun 2008 11:14:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/205634.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/205634.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/205634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/205634.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/205634.html</trackback:ping><description><![CDATA[<p><strong>项目中用到关于框架页面刷新的方法，在网上搜索以后发现有许多不错的代码，但不是很齐全。于是，我索性从网络上搜集以后经过精心编排，整理了一下。^ - ^ 希望大家多多指教！</strong></p>
<p>下面以三个页面分别命名为framedemo.html,left.html,right.html为例来具体说明如何做。</p>
<p>其中framedemo.html由左右两个页面组成，代码如下：</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;TITLE&gt; frameDemo &lt;/TITLE&gt;<br />
&lt;/HEAD&gt; <br />
&lt;frameset cols="200,*"&gt;<br />
&lt;frame name=top src="left.html"&gt;<br />
&lt;frame name=button src="right.html"&gt;<br />
&lt;/frameset&gt;<br />
&lt;/HTML&gt;</p>
<p>现在假设left.html即上面的页面有一个button来实现对下面页面的刷新，可以用以下七种语句，哪个好用自己看着办了。</p>
<p>语句1. window.parent.frames[1].location.reload();</p>
<p>语句2. window.parent.frames.bottom.location.reload();</p>
<p>语句3. window.parent.frames["bottom"].location.reload();</p>
<p>语句4. window.parent.frames.item(1).location.reload();</p>
<p>语句5. window.parent.frames.item('bottom').location.reload();</p>
<p>语句6. window.parent.bottom.location.reload();</p>
<p>语句7. window.parent['bottom'].location.reload();</p>
<p>解释一下：</p>
<p>1.window指代的是当前页面，例如对于此例它指的是top.html页面。</p>
<p>2.parent指的是当前页面的父页面，也就是包含它的框架页面。例如对于此例它指的是framedemo.html。</p>
<p>3.frames是window对象，是一个数组。代表着该框架内所有子页面。</p>
<p>4.item是方法。返回数组里面的元素。</p>
<p>5.如果子页面也是个框架页面，里面还是其它的子页面，那么上面的有些方法可能不行。<br />
top.html源代码；(页面上有七个按钮，功能都是刷新下面的框架页面)</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY&gt;<br />
&lt;input type=button value="刷新1" onclick="window.parent.frames[1].location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新2" onclick="window.parent.frames.bottom.location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新3" onclick="window.parent.frames['bottom'].location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新4" onclick="window.parent.frames.item(1).location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新5" onclick="window.parent.frames.item('bottom').location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新6" onclick="window.parent.bottom.location.reload()"&gt;&lt;br&gt;<br />
&lt;input type=button value="刷新7" onclick="window.parent['bottom'].location.reload()"&gt;&lt;br&gt;<br />
&lt;/BODY&gt;<br />
&lt;/HTML&gt;</p>
<p>下面是right.html页面源代码，为了证明下方页面的确被刷新了，在装载完页面弹出一个对话框。</p>
<p>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&gt;<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;/HEAD&gt;<br />
&lt;BODY onload="alert('我被加载了！')"&gt;<br />
&lt;h1&gt;This is the content in button.html.&lt;/h1&gt;<br />
&lt;/BODY&gt;<br />
&lt;/HTML&gt;</p>
<p>经我测试，只能1 和4 显示效果，别的好像不对哟<br />
=============＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝</p>
<p><span style="color: red"><strong>附：<br />
</strong><span style="color: #000000"><strong>Javascript刷新页面的几种方法：</strong><br />
1&nbsp;&nbsp;&nbsp; history.go(0) <br />
2&nbsp;&nbsp;&nbsp; location.reload() <br />
3&nbsp;&nbsp;&nbsp; location=location <br />
4&nbsp;&nbsp;&nbsp; location.assign(location) <br />
5&nbsp;&nbsp;&nbsp; document.execCommand('Refresh') <br />
6&nbsp;&nbsp;&nbsp; window.navigate(location) <br />
7&nbsp;&nbsp;&nbsp; location.replace(location) <br />
8&nbsp;&nbsp;&nbsp; document.URL=location.href <br />
</span><br />
</span>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>自动刷新页面的方法:<br />
</strong>1.页面自动刷新：把如下代码加入&lt;head&gt;区域中<br />
&lt;meta http-equiv="refresh" content="20"&gt;<br />
其中20指每隔20秒刷新一次页面.</p>
<p>2.页面自动跳转：把如下代码加入&lt;head&gt;区域中<br />
&lt;meta http-equiv="refresh" content="20;url=http://www.wyxg.com"&gt;<br />
其中20指隔20秒后跳转到http://www.wyxg.com页面</p>
<p>3.页面自动刷新js版<br />
&lt;script language="JavaScript"&gt;<br />
function myrefresh()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.location.reload();<br />
}<br />
setTimeout('myrefresh()',1000); //指定1秒刷新一次<br />
&lt;/script&gt;</p>
<p><strong>ASP.NET如何输出刷新父窗口脚本语句<br />
</strong>1.&nbsp;&nbsp; this.response.write("&lt;script&gt;opener.location.reload();&lt;/script&gt;");&nbsp;&nbsp;</p>
<p><span style="color: #000000">2.&nbsp;&nbsp; this.response.write("&lt;script&gt;opener.window.location.href = opener.window.location.href;&lt;/script&gt;");&nbsp;&nbsp;&nbsp;</span></p>
<p><span style="color: #000000">3.&nbsp;&nbsp; Response.Write("&lt;script language=javascript&gt;opener.window.navigate(''你要刷新的页.asp'');&lt;/script&gt;")</span></p>
<p><span style="color: #000000"><strong><br />
JS刷新框架的脚本语句<br />
</strong><br />
//如何刷新包含该框架的页面用&nbsp;&nbsp;&nbsp;<br />
&lt;script language=JavaScript&gt;<br />
&nbsp;&nbsp; parent.location.reload();<br />
&lt;/script&gt;&nbsp;&nbsp;&nbsp;<br />
</span></p>
<p><span style="color: #000000"><span style="color: #000000">//子窗口刷新父窗口<br />
&lt;script language=JavaScript&gt;<br />
&nbsp;&nbsp;&nbsp; self.opener.location.reload();<br />
&lt;/script&gt;</span><br />
(　或　<span>&lt;a href="javascript:opener.location.reload()"&gt;</span><span>刷新</span><font face="verdana,arial,helvetica,sans-serif"><span>&lt;/a&gt;&nbsp;&nbsp;&nbsp;</span></font>)<br />
<br />
//如何刷新另一个框架的页面用&nbsp;&nbsp;&nbsp;<br />
&lt;script language=JavaScript&gt;<br />
&nbsp;&nbsp; parent.另一FrameID.location.reload();<br />
</span><span style="color: #000000">&lt;/script&gt;</span><br />
<br />
<span><span style="color: #000000"><strong><span>如果想关闭窗口时刷新或者想开窗时刷新的话，在</span><span>&lt;body&gt;</span><span>中调用以下语句即可。</span></strong><span><br />
<br />
<font face="verdana,arial,helvetica,sans-serif">&lt;body onload="opener.location.reload()"&gt; </font></span><span><font face="verdana,arial,helvetica,sans-serif">开窗时刷新</font></span><span><br />
<font face="verdana,arial,helvetica,sans-serif">&lt;body onUnload="opener.location.reload()"&gt; </font></span><span><font face="verdana,arial,helvetica,sans-serif">关闭时刷新</font></span><span><br />
<br />
<font face="verdana,arial,helvetica,sans-serif">&lt;script language="javascript"&gt;<br />
window.opener.document.location.reload()<br />
&lt;/script&gt;</font></span></span></span></p>
    <img src ="http://www.blogjava.net/ftqiuqiu/aggbug/205634.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-03 19:14 <a href="http://www.blogjava.net/ftqiuqiu/articles/205634.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts标签</title><link>http://www.blogjava.net/ftqiuqiu/articles/205631.html</link><dc:creator>球球</dc:creator><author>球球</author><pubDate>Tue, 03 Jun 2008 11:07:00 GMT</pubDate><guid>http://www.blogjava.net/ftqiuqiu/articles/205631.html</guid><wfw:comment>http://www.blogjava.net/ftqiuqiu/comments/205631.html</wfw:comment><comments>http://www.blogjava.net/ftqiuqiu/articles/205631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ftqiuqiu/comments/commentRss/205631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ftqiuqiu/services/trackbacks/205631.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 文章目录<br>bean:cookie<br>bean:define<br>bean:header<br>bean:include<br>bean:message<br>bean:page<br>bean:parameter<br>bean:resource<br>bean:size<br>bean:struts<br>bean:write<br>html:base<br>html:cancel<br>html:select<br>html:checkbox<br>html:radio<br>html:multibox<br>html:link<br>html:errors<br>html:javascript<br>html:xhtml<br>logic:iterate<br>logic:present<br>logic:messagesPresent<br>logic:empty<br>logic:match<br>logic:equal<br>logic:forward<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/ftqiuqiu/articles/205631.html'>阅读全文</a><img src ="http://www.blogjava.net/ftqiuqiu/aggbug/205631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ftqiuqiu/" target="_blank">球球</a> 2008-06-03 19:07 <a href="http://www.blogjava.net/ftqiuqiu/articles/205631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>