oracle trunc()函数的用?br />
1.TRUNC(for dates)
TRUNC函数为指定元素而截ȝ日期倹{?br />其具体的语法格式如下Q?br />TRUNCQdate[,fmt]Q?br />其中Q?br />date 一个日期?br />fmt 日期格式Q该日期由指定的元素格式所截去。忽略它则由最q的日期截去
2.TRUNC(for number)
TRUNC函数q回处理后的数|其工作机制与ROUND函数极ؓcMQ只是该函数不对指定数前或后的部分做相应舍入选择处理Q而统l截厅R?br />其具体的语法格式如下
TRUNCQnumber[,decimals]Q?br />其中Q?br />number 待做截取处理的数?br />decimals 指明需保留数点后面的位数。可选项Q忽略它则截L有的数部分
下面是该函数的用情况:
TRUNCQ?9.985Q?Q?89.98
TRUNCQ?9.985Q?89
TRUNCQ?9.985Q?1Q?80
注意Q第二个参数可以敎ͼ表示为小数点左边指定位数后面的部分截去,卛_?记?/p>
{
format为day?只精到?而不几q几月只要是W合的day可以了,要想定一q中的某月的某一天就要用trunc(date,''dd'').
通俗的说?format为年?_?----q?/p>
为月?_?-----q??不管哪年,只要是相同的月和哪天)
为日?_?-----q???不管哪年的哪?只关心是哪天)
}
和其他数据库pȝcMQ?a style="color: #004276; text-decoration: underline; ">Oracle字符串连接?#8220;||”q行字符串拼接,其用方式和MSSQLServer中的加号“+”一栗?/p>
比如执行下面的SQL语句Q?br />
SELECT '工号?||FNumber||'的员工姓名ؓ'||FName FROM T_Employee
WHERE FName IS NOT NULL
除了“||”QOracleq支持用CONCAT()函数q行字符串拼接,比如执行下面的SQL语句Q?br style="clear: both; width: 0px; height: 0px; " />SELECT CONCAT('工号:',FNumber) FROM T_Employee
如果CONCAT中连接的g是字W串QOracle会尝试将其{换ؓ字符Ԍ比如执行下面的SQL语句Q?br />
SELECT CONCAT('q龄:',FAge) FROM T_Employee
与MYSQL的CONCAT()函数不同QOracle的CONCAT()函数只支持两个参敎ͼ不支持两个以上字W串的拼接,比如下面的SQL语句在Oracle中是错误的:
SELECT CONCAT('工号?,FNumber,'的员工姓名ؓ',FName) FROM T_Employee
WHERE FName IS NOT NULL
q行以后Oracle会报Z面的错误信息Q?br style="clear: both; width: 0px; height: 0px; " />参数个数无效
如果要进行多个字W串的拼接的话,可以使用多个CONCAT()函数嵌套使用Q上面的SQL可以如下改写Q?br style="clear: both; width: 0px; height: 0px; " />SELECT CONCAT(CONCAT(CONCAT('工号?,FNumber),'的员工姓名ؓ'),FName) FROM
T_Employee
WHERE FName IS NOT NULL
windows xp下配|JDK环境变量Q?br /> 1.安装JDKQ安装过E中可以自定义安装目录等信息Q例如我们选择安装目录为D:\java\jdk1.5.0_08Q?/p>
2.安装完成后,叛_“我的电脑”Q点?#8220;属?#8221;Q?/p>
3.选择“高”选项卡,点击“环境变量”Q?/p>
4.?#8220;pȝ变量”中,讄3属性,JAVA_HOME,PATH,CLASSPATH(大小写无所?,若已存在则点?#8220;~辑”Q不存在则点?#8220;新徏”Q?/p>
5.JAVA_HOME指明JDK安装路径Q就是刚才安装时所选择的\径D:\java\jdk1.5.0_08Q此路径下包括libQbinQjre{文件夹Q此变量最好设|,因ؓ以后q行tomcatQeclipse{都需要依*此变量)Q?br />
Path使得pȝ可以在Q何\径下识别java命oQ设为:
%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH为java加蝲c?class or lib)路径Q只有类在classpath中,java命o才能识别Q设为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar (要加.表示当前路径)
%JAVA_HOME%是引用前面指定的JAVA_HOMEQ?/p>
6.“开?#8221;Q?gt;;“q行”Q键?#8220;cmd”Q?/p>
7.键入命o“java -version”Q?#8220;java”Q?#8220;javac”几个命oQ出现画面,说明环境变量配置成功Q?/p>
8.好了Q打完收工。下面开始你的第一个javaE序吧?/p>
下面讲讲java几个环境变量的含义和linux下的配置ҎQ?/p>
通常Q我们需要设|三个环境变量:JAVA_HOME、PATH ?CLASSPATH?/p>
JAVA_HOMEQ该环境变量的值就?Java 所在的目录Q一?Java 版的软g和一?Java 的工具需要用到该变量Q设|?PATH ?CLASSPATH 的时候,也可以用该变量以方便设|?/p>
PATHQ指定一个\径列表,用于搜烦可执行文件的。执行一个可执行文gӞ如果该文件不能在当前路径下找刎ͼ则依ơ寻?PATH 中的每一个\径,直至扑ֈ。或者找?PATH 中的路径也不能找刎ͼ则报错。Java 的编译命?(javac)Q执行命?(java) 和一些工具命?(javadoc, jdb {? 都在其安装\径下?bin 目录中。因此我们应该将该\径添加到 PATH 变量中?/p>
CLASSPATHQ也指定一个\径列表,是用于搜?Java ~译或者运行时需要用到的cR在 CLASSPATH 列表中除了可以包含\径外Q还可以包含 .jar 文g。Java 查找cL会把q个 .jar 文g当作一个目录来q行查找。通常Q我们需要把 JDK 安装路径下的 jre\lib\rt.jar (Linux: jre/lib/rt.jar) 包含?CLASSPATH 中?/p>
PATH ?CLASSPATH 都指定\径列表,列表中的各项 (卛_个\? 之间使用分隔W分隔。在 Windows 下,分隔W是分号 (;)Q而在 Linux 下,分隔W是冒号 (:)?/p>
下面分别说明三个环境变量?Windows ?Linux 下如何设|,不过在此之前Q我们需要做个假设。假?JDK ?Windows 下的安装路径?C:\jdk\Q在 Linux 下的安装路径?/usr/local/jdk/。那么,安装后的 JDK 臛_会包括如下内容:
C:\jdk (/usr/local/jdk)
|-- bin
|-- demo
|-- include
|-- jre
| |-- bin
| `-- lib
`-- lib
***** ?Windows 下设|?/p>
Windows 下?set 命o讄环境变量Qؓ了每一ơ启动计机都设|这些环境变量,应该在系l盘根目录下?autoexec.bat 文g中进行设|,如:
set JAVA_HOME=C:\jdk
set PATH=%JAVA_HOME%\bin;C:\Windows;C:\Windows\Command
set CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;.
有些版本?Windows 不能?%变量? 来替换环境变量的内容Q那么就只好直接?C:\jdk 而不?%JAVA_HOME% 了。另外,C:\Windows ?C:\Windows\Command ?Windows 会自动加入\径的Q所以可以从讄中去掉。如果在 autoexec.bat 中已l设|了 PATHQ那只需要将 %JAVA_HOME%\bin 加到原来讄 PATH 的那条语句中p了?/p>
CLASSPATH 也可以根据需要设|或者加入其它的路径Q比如你x自己写的一些类攑֜ C:\java 中,可以把 C:\java 也添加到 CLASSPATH 中去Qset CLASSPATH=%JAVA_HOME%\jre\lib\rt.jar;C:\java;.?/p>
注意Q在 CLASSPATH 中包含了一?#8220;当前目录 (.)”。包含了该目录后Q就可以CQ意目录下L行需要用到该目录下某个类?Java E序Q即使该路径q未包含?CLASSPATH 中也可以。原因很单:虽然没有明确的把该\径包含在 CLASSPATH 中,?CLASSPATH 中的 “.” 在此时就代表了该路径Q如Q?/p>
假设?C:\java 目录下有可运行的c?HelloJava.classQ那?/p>
C:\> set CLASSPATH=C:\jdk\jre\lib\rt.jar;. // 讄 CLASSPATH 环境变量Q注意最后有一?“.”
C:\> cd java // 转到 C:\java 目录
C:\java> java HelloJava // q行 HelloJava
Hello, Java. // q行l果
C:\java> _
**** ?Linux 下设|?/p>
Linux 下?#8220;变量?变量?#8221;讄变量Qƈ使用 export 命o其导出为环境变量。ؓ了每一ơ登录都自动讄好这些变量,你需要在 ~/.bash_profile 里或?~./bashrc 里进行设|,?/p>
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.
讄 PATH 时用?$JAVA_HOME 是指替换变量 JAVA_HOME 的值到 $JAVA_HOME 所在位|。如上句实际是 export PATH=/usr/local/jdk/bin:$PATH。这句中 $PATH 也是同样的作用,不过q里?PATH 是指以前讄?PATH 变量的|而非本次讄 PATH 变量的倹{?/p>
注意Q在 CLASSPATH 中包含了一?#8220;当前目录 (.)”。包含了该目录后Q就可以CQ意目录下L行需要用到该目录下某个类?Java E序Q即使该路径q未包含?CLASSPATH 中也可以。原因很单:虽然没有明确的把该\径包含在 CLASSPATH 中,?CLASSPATH 中的 “.” 在此时就代表了该路径Q例?/p>
假设?/home/fancy/java 目录下有可运行的c?HelloJava.classQ那?/p>
[fancy@matrix fancy]$ export CLASSPATH=/usr/local/jdk/jre/lib/rt.jar:. // 讄 CLASSPATHQ注意最后的“.”
[fancy@matrix fancy]$ cd ~/java // 转到 /home/fancy/java
[fancy@matrix java]$ pwd // 昄当前目录
/home/fancy/java // 当前目录?/home/fancy/java
[fancy@matrix java]$ java HelloJava // q行 HelloJava
Hello, Java // q行l果
[fancy@matrix java]$ _
?/p>
***** 实例分析
只是操作pȝ不同Q略有差别?/p>
两个例子都提C?#8220;可运行的c?#8221;Q它是指包含?public static void main(String[] args) Ҏ的类Q这在下一?HelloJava 一节中详述。例中的 CLASSPATH 均未包含 HelloJava.class 所在的目录(C:\java, /home/fancy/java)Q但是均包含了当前目?(.)。因此{到包?HelloJava.class 的目录下L?java HelloJavaQ在 Java L?CLASSPATH 中的“. (当前目录QC:\java, /home/fancy/java)”Ӟ扑ֈ?HelloJava.classQ运行成功?/p>
1.
目 右键 新徏 ?/p>
右键单击新徏的包Q新?actionscriptc?/p>
代码如下(代码1)
package btnEvents
{
import flash.events.Event;
public class btnEvent1 extends Event
{
public static var EVENT_NAME:String="customEvent";//该事件所携带的数?br /> public var EventData:String;
public function btnEvent1(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
}
}
}
2.
主MXML文g如下所C?/p>
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" xmlns:Modules="Modules.*"
creationComplete="init()"
><fx:Script>
<![CDATA[
import btnEvents.btnEvent1;
private function init():void{
this.addEventListener(btnEvent1.EVENT_NAME,appCatchMyEvent,true);
this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);
}
private function sendEvent(flag:int):void{
var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME);
if(flag == 1){
Event.EventData = "内部按钮";
btn1.dispatchEvent(Event);//事件分zֈ事g中
}else{
Event.EventData = "外部按钮";
btn2.dispatchEvent(Event);//事件分zֈ事g中
}
}
private function appCatchMyEvent(par_event:btnEvent1):void{
label1.text += par_event.currentTarget.id+par_event.EventData;//currentTarget是传播\径上的当前捕捉?br /> }
private function panelCatchEvent(par_event:btnEvent1):void{
label1.text += par_event.currentTarget.id+par_event.EventData;
}
]]>
</fx:Script><fx:Declarations>
<!-- 非可视元素Q例如服务、值对象)攑֜此处 -->
</fx:Declarations>
<s:Panel id="panel1" x="198" y="128" width="250" height="200">
<s:Button click="sendEvent(1)" id="btn1" x="89" y="61" label="内部BTN"/>
</s:Panel>
<s:Button id="btn2" click="sendEvent(2)" x="378" y="360" label="外部BTN"/>
<s:Label id="label1" x="198" y="66" text="事g来自~~~~" width="189"/></s:Application>
3.
q行E序
点击“内部BTNQ?/p>
l果如图所C?/p>
大家可以看到
事g是从外层容器到内层容器依ơ执行的
4.
h面
点击“外部BTN”
l果如图所C?/p>
因ؓ事g的引发者没有在panl1中所以不会再触发panel1的事件了
以上说的都是非冒泡事Ӟ事g的执行顺序是从外层容器到内层容器执行?/span>
5.
如果要在事g冒阶段捕捉事g
创徏事g的代码ؓ
var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数bubbles应ؓtrue
事g监听的代码应如下
this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//最后一个参数useCapture是false
q样讄后就是冒泡事Ӟ事g的执行顺序是从内层容器到外层容器执行?br />
6.
如果卌捕捉非冒泡事Ӟ又要捕捉冒事g
那么
创徏事g的代码ؓ
var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数bubbles应ؓtrue
同时Q监听事件的代码q要讄两次
this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,true);//非冒泡监?br />this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒监听
q样讄之后Q事件先从外部执行到内部Q在从内部执行到外部我们展CZ下几U例子:通过命名I间来定义全局CSS样式Q通过具体lg的ID来定义个别组件的样式Q通过c里面的lgID来定义样式;通过lg样式定义样式?/p>
详细说明Q?/p>
首先让我们新Z个application。如下。包含两个按钮(一个Halo按钮和一个Spark按钮Q和一个包含在容器VGroup里面progressBar。代码如下:
<?xml version=”1.0″ encoding=”utf-8″?>
<s:Application xmlns:fx=”http://ns.adobe.com/mxml/2009″
xmlns:s=”library://ns.adobe.com/flex/spark”
xmlns:mx=”library://ns.adobe.com/flex/halo” minWidth=”1024″ minHeight=”768″>
<fx:Style source=”global.css” />
<s:layout>
<s:VerticalLayout />
</s:layout>
<mx:Button label=”Click me, I’m a Halo button!” id=”haloButton” />
<s:Button label=”Click me, I’m a spark cool and funkybutton !” id=”sparkButton” />
<s:VGroup id=”myBox”>
<mx:ProgressBar />
</s:VGroup>
</s:Application>
在CSS里面需要导入相应的命名I间Q如Q?/p>
@namespace s “library://ns.adobe.com/flex/spark”;
@namespace mx “library://ns.adobe.com/flex/halo”;
定制全局样式
mx|Button
{
color:#ffffff;
}
s|Button
{
color:#000000;
}
当然也可在组件的属性里面指定样式类Q然后在css中声明相应的样式c?/p>
.myStyleClass
{
color:#ff0000;
}
lgID讄相应的组件样?/p>
#haloButton
{
base-color:#0000ff;
}
#sparkButton
{
base-color:#ffffff;
}
c里面的lgID来定义样?/p>
s|VGroup#myBox mx|ProgressBar
{
color:#ff0000;
}
通过状态定义样?/p>
s|Button:down
{
color:#33CC33;
}
ȝQ?/p>
通过q些语法Q我们能够更L的ؓlg制作样式了?/p>
效果图: