2013年11月26日

struts2 tag裡 REPLACE的方法

 <s:set var="test1">AAA</s:set>

 <s:textarea name="testTEXT"   rows="3" cols="50" value='%{#test1.replace("AAA","")}'  "/>


另一寫法種(從bean來的)
<s:property value='member.mom.replace(\"\r\",\"<br>\").replace(\"\n\",\"<br>\").replace(\"<br><br>\",\"<br>\")'  escape="false"/>

2013年11月22日

jquery抓RADIO的值


    var item = $('input[name=member.type]:checked').val();

利用jquery disable或是enable

前言:
htmle裡的「disabled」和「checked」一樣 不管是=true false 都是true

所以只能靠js解決==

可以用removeAttr把disabled的這屬移移掉:
 $('.checkboxN').removeAttr('disabled');

或是設為空字串:
$('.element').attr('disabled', '');



如果是要disable

可以增加屬性:
$('.element').attr('disabled', 'disabled');

jquery 抓request的attribute

var myNewVariable  = '${myValueName}';

2013年11月15日

解除不能右鍵複製字

一般情況:
1.用firefox開 就能都解

2.或是用書籤方式  網址填入
javascript:(function() { function R(a){ona = "on"+a; if(window.addEventListener) window.addEventListener(a, function (e) { for(var n=e.originalTarget; n; n=n.parentNode) n[ona]=null; }, true); window[ona]=null; document[ona]=null; if(document.body) document.body[ona]=null; } R("contextmenu"); R("click"); R("mousedown"); R("mouseup"); R("selectstart");})()



大絕:
目前只適用chrome

1.裝套件「Quick Javascript Switcher

2.裝套件「Enable Copy


兩個同時使用!

2013年11月14日

struts2 tag裡用split

<s:property value="member.anss.split(',').length"/><br/>


<s:iterator value="member.anss.split(',')" status="st" var="ans">
<s:property value="#st.index"/>-<s:property value="#ans"/><br/>
</s:iterator>

如何在 iPad, iPhone 正確同步 Google Calendar 多個行事曆

http://www.playpcesor.com/2012/06/ipad-iphone-google-calendar.html


打開iPad、iPhone的Safari瀏覽器,進入「http://m.google.com/sync/settings」。並選擇「變更語言」。

切換到「English(US)」語言項目。

下一個頁面後,點選中間的「Sign in with your Google Account」。

輸入你的Google帳號、密碼進行登入。

「My Calendars」裡,可以勾選你想同步哪些子日曆

設定完成後回到iPad、iPhone桌面,點擊開啟你預設的行事曆。

2013年11月12日

備份CHROME


資料路徑

Win Xp:
C:\Documents and Settings\(使用者)\Local Settings\Application Data\Google\Chrome\User Data

Win 7:
C:\(使用者)\(你的使用者名稱,例如:Administrator)\App Data\Local\Google\Chrome\User Data


直接從A電腦複製到B電腦就好

Oracle SQL Developer UI 由中文改成英文

在sqldeveloper\sqldeveloper\bin\sqldeveloper.conf

加上

AddVMOption -Duser.country=US
AddVMOption -Duser.language=en

匯入匯出 DB所有的SCHEMA

oracle dump  more then one schemas


exp system/密碼@xe full=Y file=c:/xxxxx.dmp

imp system/密碼@xe full=Y file=c:/xxxxx.dmp

2013年11月6日

用HTML5+css 讓字閃爍

雖然本人很討厭網頁字會閃來閃去...但 ...嗯...

小時候剛寫網頁 就是烘培機很流行那時..會co很多js  然後有的就是會讓字閃不拉機

後來知道了css  然後有個屬性「text-decoration:blink; 」 可以讓字閃

but blink這招 幾乎沒browser支援了

然後js  我是完全懶的去看


然後就查到了新用法

在網頁中:

<p class="blink">這行字會閃 !!!</p>

css部份:

.blink {
    animation-duration: 1s;
    animation-name: blink;
    animation-iteration-count: infinite;
    animation-direction: alternate;
    animation-timing-function: ease-in-out;
}
@keyframes blink {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}


這樣的效果太smooth....

所以可以再改成:
@keyframes blink {
    0% {
        opacity: 1;
    }
    80% {
        opacity: 1;
    }
    81% {
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}



EZ 吧~

參考來源:http://fredericiana.com/2012/11/04/html5-blink-tag/

2013年10月29日

excel裡的 IF用法

成績大於60分時為及格 否則為不及格
=IF(A1>=60,"及格","不及格")


如果A1=B1=C1 則在D1顯示1,若不相等則返回0
在D1中輸入如下函數:
=IF(AND(A1=B1,A1=C1),1,0)

A1中的數值大於0小於等於10時返回1,大於10小於100返回2,大於等於100小於200返回3,否則為空格
=IF(AND(A1>0,A1<=10),1,IF(AND(A1>10,A1<100),2,IF(AND(A1>=100,A1<200),3,"" )))


http://rritw.com/a/caozuoxitong/OS/20100927/39185.html

2013年10月28日

jQuery 的 toggle

上次寫過 「jquery radio 顯示或隱藏一段顯示文字

但如果是按同一個button 或是同一個div或同一個span 也可以有顯示/隱藏效果
(雖然用jsp也能解決...但麻煩很多)

現在可以利用toggle解決

jQuery 寫法:
  $(document).ready(function(){                      
        $('#iswitch').toggle(
        function(){      
            $('#contentView').show();
        },
        function(){      
            $('#contentView').hide();
        }
    );
    });

2013年10月25日

利用jquery submit form

如果有一個form
<s:form action="Member/insert"   theme="simple"  >
.
.
.

</s:form>

利用jquery去submit的話 一般只要這樣寫:

$( "#Member_insert" ).submit();


但如果是要指定別的action (insertVIP):

$( "#Member_insert" ).attr("action", "insertVIP.do").submit();


如果method後面有要帶參數也可以:

$( "#Member_insert" ).attr("action", "insertVIP.do?dept=A1&code=XYZ").submit();

s:submit

若要button按下去 和form 執行不同的method

屬性多寫action


 <s:submit value="另一個動作"  action="Count/vipSale"/>

2013年10月17日

[Tomcat] PermGen space netbeans Could not reserve enough space for object heap

本來只有
-Xmx1024m -Xms512m

現在多加了
-XX:MaxPermSize=256m

HTML5 的新屬性:Placeholder

網頁表單的文字方塊 有時會有看到預設的說明文字 像這樣:


輸入時 字會自動消失

以前的方式是要用js 

語法差不多會是

<input name="user_name" type="text" size="28" id="user_name" value="Email" onfocus="if(this.value=='Email'){this.value='';}" onblur="if(this.value==''){this.value='Email';}">


2013年10月3日

PIVOT: 讓row轉column

前提:oracle11g後才能用

統計個類別數量時 一般查詢方法:
select  categoryNo,count(*)c from event group by categoryNo

結果如下

categoryNo
c
1
1979
2
105
3
46
4
9
5
30
6
86
7
484
8
4149



但如果我想要是表格轉置  以前只能用各種複雜方法

oracle11g後 就有PIVOT 這好用東西


with p as( select  categoryNo,count(*)c from event group by categoryNo)

 select * from p PIVOT (
 sum(c)
 FOR categoryNo
 in (1,2,3,4,5,6,7,8));


結果就會像下面這樣

1
2
3
4
5
6
7
8
1979
105
46
9
30
86
484
4149




消息來自dia 

GRANT SEQUENCE的權限給 另一個user(schema)


網路上找到的都是像下面這種寫法

GRANT SELECT ON schema1.xxx_seq TO schema2

但但但 如果這樣子 看似可以

但在schema2下面  只能用 SELECT schema1.xxx_seq .NEXTVAL FROM DUAL

我的終極目標是要能:SELECT xxx_seq .NEXTVAL FROM DUAL


怎麼辦怎麼辦~~~

終於找到上次的設定(糾竟我上次是怎麼找到解法的==)


 CREATE OR REPLACE SYNONYM "schema2"."xxx_seq " FOR " schema1"."xxx_seq ";





2013年9月23日

[jQuery] Colorbox

可以有燈箱效果 或是用來網站的廣告覆蓋整個頁面等等等


網站:http://www.jacklmoore.com/colorbox/

目前只是用來做網頁覆蓋

在網頁中加上

$.colorbox({href:"memo.html"});

就能在原本網頁上 蓋上memo的網頁內容


不只這麼陽春 還可以再加入一些參數 變得更客製化

例如:
$.colorbox({href:"${includePage}", height:"90%",width:"50%",opacity:0.7,closeButton:true })

${includePage} ←←是由下面set好

<s:set name="includePage"   >
        http://i-memo.blogspot.tw
</s:set>     

opacity←←底的透明度

closeButton:true ←←要不要closeButton






如果想要在網頁一load時就能有效果:
<script type="text/javascript">
        $(document).ready(function(){
            setTimeout(function() {
                $.colorbox({href:"${includePage}", height:"90%",width:"50%",opacity:0.7,closeButton:true });
            });
        });
            
</script>
如果不想讓使用者關掉:
<script type="text/javascript">
        $(document).ready(function(){
            setTimeout(function() {
                $.colorbox({href:"${includePage}", height:"90%",width:"50%",opacity:0.7 , escKey:false, overlayClose:false,onLoad: function() {                                   $('#cboxClose').remove();
}});
            });
        });
            
</script>


其他網頁上有更詳細的介紹

2013年9月18日

< s:property value 也可以有substring

 <s:property value='memo.memono.substring(5,8)'/>


注意要用單引號(')

以此類推也可以用在 <s:select 的default value

 <s:select name="noticeType"  list="# {'aaa':'第a種', 'bbb':'第b種', 'ccc':'第c種', 'ddd':'第d種'}"  value='memo.memono.substring(5,8)'/>

2013年9月14日

[JAVA] regular expressions 相關


線上驗證工具:http://www.regexplanet.com/advanced/java/index.html
Java Regular Expression的學習筆記:http://www.javaworld.com.tw/jute/post/view?bid=20&id=130126


看懂和寫對有點落差= =

反正先筆記用到的

   //是否含'"!$%^&*_|></\\\
    public static boolean isContainSymbols(String s) {
        Pattern p= Pattern.compile("[^'\"!$%^&*_|></\\\\]+");
        Matcher matcher = p.matcher(s);
        return !matcher.matches();
    }




    //是否為數字
    public static boolean isDigital(String s) {
        Pattern p= Pattern.compile("^[0-9]+$");
        Matcher matcher = p.matcher(s);
        return matcher.matches();
    }
 

順更記一個和正規表示式無關
 
    //是否byte超過設定長度
    public static boolean isOverMaxlenght(String s) {

        if (s.getBytes().length > Integer.parseInt(Property.getString("maxbyte"))) {  
            return true;
        } else {
            return false;
        }
    }

2013年9月13日

< s:hidden

一般的複雜寫法(值是request來):
<s:hidden  name="person.name" value="%{#request['personName']}" />


如果還要是時間格式...
<input type="hidden" value="<s:date name="%{#request['personBD']}" format="%{format.datetime}" />" name="person.bd"/>

區塊左右置中

.memoeDIV{ margin: 0 auto; }

oracle trigger update after insert SAME ROW

(標題 是多次google 用到的關鍵字組之一 ==  )

情境:新增一筆 record 或 修改record裡的某欄位  觸發triger 去update 這筆資料的edit_date欄位

CREATE OR REPLACE
TRIGGER ooo_TRIGGER
BEFORE  INSERT OR UPDATE OF PASSWORD ON ooo
FOR EACH ROW
BEGIN
 :NEW.edit_date:=sysdate ;
END;


我搞不懂before和after....

本來覺得要寫after 但怎麼run怎麼不對

其中還改到有一次版本是 所有資料 都同時被我update了......

最後再某篇範例發現 有人寫BEFORE so.......

2013年9月9日

[日文] 不吃的東西 (2013 09.09更新)

セロリ→芹菜
ピーマン→青椒 
にがうり →苦瓜
ゴーヤ →沖繩苦瓜
ニッキ /肉桂 (にっけい)/シナモン
パクチー/香菜(こうさい/シャンツァイ):(泰文/日文/中文)

2013年9月5日

ORACLE VACHAR2 字數上限

VARCHAR2データベース列の最大幅は4000バイト。

40000 byte 所以是可以 2000個中文字???

no!!!

一千多而已

∵  一個UTF-8的中文字用掉3 bytes

∴4000/3=1333.33333333333333333333333333


2013年8月29日

最新回應的widget


<script style=text/javascript src="http://helplogger.googlecode.com/svn/trunk/recent comments widget.js"></script><script style=text/javascript >var a_rc=5;var m_rc=false;var n_rc=true;var o_rc=100;</script><script src=http://your-blog-name.blogspot.com/feeds/comments/default?alt=json-in-script&callback=showrecentcomments ></script><span id=rcw-cr><a href=http://helplogger.blogspot.com/2012/03/recent-comments-widget-for-blogger.html>Recent Comments Widget</a></span><style type=text/css> .rcw-comments a {text-transform: capitalize;} .rcw-comments {border-bottom: 1px dotted; padding-top: 7px!important; padding-bottom: 7px!important;} #rcw-cr {font-family: Arial,Tahoma;font-size:9px;padding-top:7px;display:block;} </style>


資料來源:http://helplogger.blogspot.tw/2012/03/recent-comments-widget-for-blogger.html

oracle 設user 要有dblink的權限

11g 管理界面也太難qq

只好找語法.....

一樣要先以sydba身份連線

然後

 grant create database link to <使用者名稱>;

2013年8月28日

不用圖片 靠CSS也能背景漸層!

background: -ms-linear-gradient(top, #FFF 0%,#81D8D0 100%); /* IE10+ */
background: -webkit-linear-gradient(top, #FFF 0%,#81D8D0 100%); /* Chrome10+,Safari5.1+ */
background: -moz-linear-gradient(top, #FFF 0%, #81D8D0 100%); /* FF3.6+ */

CSS直接寫在網頁裡

<style TYPE="text/css">
<!--
@import url("rank.css");
-->
 </style>

CSS原生table屬性垂直置中

CSS:
.table-wrap {display:table; width:300px; height:300px; border:solid 1px #ccc; }

.table-cell {display:table-cell; vertical-align:middle; text-align:center;}



HTML:
<div class="table-wrap">
    <div class="table-cell">
        <div class="content">
           內容置中
        </div>
    </div>
</div>


資料來源:http://www.minwt.com/css/6694.html

垂直置中

 vertical-align:middle;


單行的處理比較ez  把 line-height 的高度設成跟外部區塊的 height 相同即可

#menuLinkL a {

text-align: center;

width:140px;

height:24px;

line-height:24px;

}

2013年8月22日

Subversion server 建立新需要版本控管的專案


 如果svn server已經裝好了 然後有一個專案叫ooo

 stpe1 建立目錄
 svnadmin create D:\Repositories\ooo

 step2 建帳號密碼
 到 D:\Repositories\ooo\conf裡 修改「passwd」

 預設檔案裡會有:
 [users]
# harry = harryssecret
# sally = sallyssecret

 harry就是帳號 harryssecret是密碼   #是註解


 step3 修改讀寫權限
到 D:\Repositories\ooo\conf裡 修改「svnserve.oconf」

貼上↓↓
[general]
anon-access = none
auth-access = write
password-db = passwd

完成 !

如果不行 就再啟動svn
【svn目錄】 -d -r d:\Projects --listen-port 9000


PS client 部份
如果裝好了TortoiseSVN

 stpe1 右鍵→checkout

 stpe2 右鍵→commit
(如果 一直授權失敗 可能是上面的第三步有問題)






2013年8月16日

ORA-28000: the account is locked


1. CONN /AS SYSDBA 

2. alter user username account unlock; 

【CSS新手筆記】左欄固定,右欄佔滿剩餘空間

http://blog.darkthread.net/post-2013-07-27-css-for-taking-remain-space.aspx

jQuery教學-浮動式固定上選單

http://www.minwt.com/js/8891.html

範例 :http://img.minwt.com/file/sampleView/jQuery/top-menu/top-menu-minwt.html

#top-bar{ width:100%; height:50px; background:#32b3bf; position:fixed; top:-65px; /* CSS3 陰影*/ -webkit-box-shadow: 0px 8px 15px #333; -moz-box-shadow: 0px 8px 15px #333; box-shadow: 0px 8px 15px #333; }

2013年8月14日

ORA-02298: cannot validate (ooxx.zzz_FK) - parent keys not found

表示子資料表裡對應到父資料表的欄位裡 有找不到對應的值
ex 父資料表存 部門相關資料 子資料表是員工資料
但員工資料表裡的部門欄位id 有著已經不存在的id

解法:把子table中不存在父table的資料刪除
解法2(如果只是為了用工具畫關系圖):這個外來鍵不要enable....

Foreign Key(外來鍵) 完整性限制


oracle  設定fk時 on delete的選項有三種

CASCADE (連帶)- 會將有所關聯的紀錄行也會進行刪除或修改。
SET NULL - 會將有所關聯的紀錄行設定成 NULL。
RESTRICT (限制) - 若欲刪除之資料有被參考到,則不允許刪除

2013年8月9日

[日文] 出國用 (2013 02.28更新)

荷物  を  預かって  もらえますか?
nimotsu wo azukatte  moraemasuka?
→ 行李可以寄放在這裡嗎?

往復切符(おうふくきっぶ)
片道切符(かたみちきっぶ)←單程票

払い戻し →退費

改札口(かいさつぐち)

乗り換え 轉車

路線図 (ろせんず)

小包(こづつみ) 包裹

ドラッグストア →藥妝店

[日文] NHK news easy


http://www3.nhk.or.jp/news/easy/index.html

逐字稿+語音

還有標示漢字假名 (沒有的話用CHROME開就有)


jquery radio 顯示或隱藏一段顯示文字


<script type="text/javascript">
$(document).ready(function(){
$('#d1').hide();
$("input[name='r1']").click(function(){
var item = $('input[name=r1]:checked').val();
if(item==1)
 $('#d1').show();
else
 $('#d1').hide();
});
});



</script>

<input type=radio name="r1" value="1">Show
<input type=radio name="r1" value="2">Hide


<div id="d1">
HIHIHIHI
</div>



資料來源:http://blog.bestdaylong.com/2013/07/jquery-radio.html

2013年7月29日

>>> FilterDispatcher <<< is deprecated! Please use the new filters

最近struts2發生了問題 照官方解法換了jar檔們 但換完後跑出下面訊息 *********************************************************************** * WARNING!!! * * * * >>> FilterDispatcher <<< is deprecated! Please use the new filters! * * * * This can be a source of unpredictable problems! * * * * Please refer to the docs for more details! * * http://struts.apache.org/2.x/docs/webxml.html * * * *********************************************************************** 原來是有一個filter 繼承了FilterDispatcher google到解法是換成 繼成 StrutsPrepareAndExecuteFilter 即可 但目前換完後 還沒測試出是否有影響原功能(照理來說應該是不會....)

ORA-01722 invalid number

select * from aaa where aaa.id=3 ←如果id 是vchar的話 在oracle11g就會發生錯誤 所以要記得乖乖用下面方法 select * from aaa where aaa.id='3'

2013年7月26日

[JAVA] 在Filter導入錯誤頁

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


/**
 *
 * @author i-memo
 */
public class ImemoFilter implements Filter {

    public void init(FilterConfig filterConfig) throws ServletException {
        //init
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
     
        if (如果ooxx) {

   

                HttpServletRequest hrequest = (HttpServletRequest) request;
                HttpServletResponse hresponse = (HttpServletResponse) response;

                hresponse.sendRedirect(hrequest.getContextPath() + "/error.jsp");

                return;

         
        }
          chain.doFilter(request, response);
    }



    public void destroy() {
    }
}


2013年7月25日

產生網頁html的空白字元

正常招:用 &nbsp;
(註:一個空白字元需要兩個 &nbsp; )


奇怪招:全型空白

2013年7月9日

如何用 JavaScript 取Radio選的值


function whichOne(){
        
        var confirm="";
        var confirms = document.getElementsByName('record.confirm');
 
    for(i=0;i<confirms.length;i++)
        {
            if(confirms[i].checked)
                confirm=confirms[i].value;
        }

   
        if(confirm=='是'){        
            //dosomething for 是
       
        }else if(confirm=='否'){        
            //dosomething for 否
        }          
     
    }

< s:if 如果要判斷單一中文字

平常寫 <s:if 的 test 會很直覺得寫

 <s:if test="record.id==1">ID是一!!!</s:if>

但  如果要判斷的是單字的中文字.....

<s:if test="record.confirm=='是'">ID確定!!</s:if>

他不會有反應==

要寫:
<s:if test='record.confirm=="是"'>ID確定!!</s:if>

有看出差別嗎


一個是 「"''"」 一個是「'""'」  

前著是雙引號包單引號 後面是 單引號包雙引號

每次都會忘記  然後又會花很久的時間才想起....希望這次可以記得久一點

2013年7月5日

< s:date

基本寫法:

<s:date name= "time" format="yyyy/MM/dd"/>

如果要用設定檔裡寫的格式 要先set

<s:set name="format.datetime"><s:text name="format.datetime"/></s:set>

<s:date name= "time" format="%{format.datetime}"/>



<s:date name= "%{time}" format="%{format.datetime}"/>

2013年6月26日

< s:iterator

如果要跑回圈的資料來源是一個list包著map

需要多一層<s:iterator

範例:
<s:iterator value="#request['immaplist']" status="stat">
  <s:iterator>
   <s:property value="#stat.index"/>
    <s:property value="key"/>
    <s:property value="value"/>
  </s:iterator>
 </s:iterator>

2013年6月20日

< s:fielderror 五四三

標準寫法(我最常用的):
<s:fielderror theme="myThem" cssClass="error-message" fieldName="email" />

 cssClass="error-message" ←←自己設的css

忘了為了什麼目的的寫法:
<s:fielderror  cssClass="error-message"><s:param>email</s:param> </s:fielderror>

無效寫法:
<s:fielderror value="startYear.val" />


判斷是不是有fielderror:
<s:if test="hasFieldErrors()">  有錯誤訊息!!</s:if>


2013年6月7日

字串從右邊算來取N位

substr(dept.name ,-N)

查詢各表 總筆數(總列數) 使用量(大小)

SELECT USER_TABLES.TABLE_NAME ,num_rows 列數 ,
SUM(BYTES) / (1024 * 1024) AS "size(M)"
FROM USER_TABLES,
USER_SEGMENTS WHERE USER_SEGMENTS.SEGMENT_NAME = USER_TABLES.TABLE_NAME
GROUP BY USER_TABLES.TABLE_NAME,num_rows
ORDER BY "size(M)" DESC

SQL Developer 不能enter 不能ctrl c v



Tools→Preferences→Accelerators→Load Preset button


資料來源:https://forums.oracle.com/forums/thread.jspa?threadID=692894

 Select Tools, Preferences, Accelerators and hit the Load Preset button. This rests them to default. It's less drastic than deleting the system folder.

oracle的亂數


select substr(to_char(dbms_random.value),5,5)rnd  from xx  --只有數字
SELECT ABS(dbms_random.normal)  from xx  --只有數字
SELECT (1+ABS(MOD(dbms_random.random,100000))) from xx   --只有數字


dbms_random.string(opt IN CHAR, len IN NUMBER) --RETURN VARCHAR2;
opt seed values:
'a','A'  alpha characters only (mixed case) ←只有字母
'l','L'  lower case alpha characters only
'p','P'  any printable characters ←有符號
'u','U'  upper case alpha characters only
'x','X'  any alpha-numeric characters (upper) ←字母和數字

SELECT dbms_random.string('A', 5) RNDMSTR from  xx   --只有字母

SELECT dbms_random.value(2, 5)RNDMSTR from xx --亂數區間2~5

2013年6月5日

ORA-12528


資料來源:http://blog.sina.com.cn/s/blog_636415010100x3lc.html

ORA-12528: TNS:listener: all appropriate instances are blocking new connections
    ORA-12528問題是因為監聽中的服務使用了動態服務,實例雖然啟動,但沒有註冊到監聽。實例是通過PMON進程註冊到監聽上的,而PMON進程需要在MOUNT狀態下才會啟動。所以造成了上面的錯誤。
    解決這個問題,有三種方法:1、把監聽設置為靜態,2、在tnsnames.ora中追加(UR=A),3、重新啟動服務。

    一、通過修改listener.ora的參數,把動態的參數設置為靜態的參數,然後從新啟動監聽# listener.ora Network Configuration File: $ORACLE_HOME\network\admin\listener.ora
# Generated by Oracle configuration tools.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))
    )
  )
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = [DBNAME])
      (ORACLE_HOME = [$ORACLE_HOME])
      (SID_NAME = [SID])
    )
  )
    靜態註冊的風險:如果在instance運行中,lisener重新啟動,就找不到instance了。靜態註冊需要先啟動lisener,再啟動instance。且靜態模式下,lisener status顯示的是unknown
    二、啟動到nomount狀態,通過修改tnsnames.ora的參數# tnsnames.ora Network Configuration File: $ORACLE_HOME\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SYK =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = [IP])(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = SYK)
      (UR=A)    )
  )
    然後連接上數據庫
    SQL>alter database mount;
    SQL>alter database open;
    三、重啟ORACLE或者重啟ORACLE服務

找出一年內資料

SELECT * FROM XX WHERE stime> add_months(SYSDATE, -12)

匯入/匯出資料庫

匯入資料庫
imp username/password@sid
匯出資料庫
EXP username/password@sid file=c:\DB\OOO\ZZZ.DMP log=c:\DB\OOO\ZZZ.log
(sid xe)

exp 不要匯出資料 rows=no

 ↓↓忘了是什麼用法= = exp username/password@sid   FILE=/prod2/dbwork/expdata/EXP_A6417K01_H1.dmp tables=A6417K01
QUERY=\"where SYSDAT \< \'20090930235959\' and K1DEAL \<> \'1\'\"
log=/prod2/dbwork/expdata/EXP_A6417K01_S1.log ROWS=y GRANTS=y

ORACLE:ORA-01940 無法刪除使用者


解決辦法:
1.找出卡在線上的 SESSION ,請用有管理權限之帳號(我是用SYSTEM 做的 , 對 ORACLE DB 有點小小不熟,對權限控管的定義還不是很清楚) ,在可操作 ORACLE 的工具上\執行以下t T-SQL
select username,sid,serial# from v$session where username='USER_NAME';
2.可查出如以下列表資料
USERNAME   
SID
SERIAL#
USER_NAME
37
41363
USER_NAME
47
25604
USER_NAME
158
14321


3.把 SESSION 踢掉 , 請用以下 T-SQL  (SID=37 ,SERIAL=41363), 全部 踢完就可以去刪資料庫了
alter system kill session'37,41363';
資料來源:
http://www.google.com/url?q=http%3A%2F%2Fjason0324.pixnet.net%2Fblog%2Fpost%2F37310500&sa=D&sntz=1&usg=AFQjCNGGYJgZoiQ7KWKq38IcdiFp46r3-w

ORA-01536: 表格空間 xxx 已超過空間配額

解決辦法
ALTER USER <username> QUOTA UNLIMITED ON <tablespace name>

oracle要刪session

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time

select sql_text from v$session a,v$sqltext_with_newlines b
 where DECODE(a.sql_hash_value, 0, prev_hash_value, sql_hash_value)=b.hash_value
 and a.sid ='245' order by piece

 alter system kill session '235,714'

先定義子查詢

WITH XX AS (子查詢)

然後就可以對XX處理



with a as
  (
  select * from member,
  (
  SELECT name,org_id,COUNT(*)
  FROM member
  GROUP BY name,org_id
  HAVING COUNT(*) &gt; 1
  )t
  where member.name=t.name
  and member.org_id=t.org_id
  )

select id from a
WHERE a.id!=(select max(id)from a)

Oracle密碼忘記怎麼辦

以下都是查到的方法

有兩種方法

一、ALTER USER (USERNAME) IDENTIFIED BY 「密碼」
二、CREATE USER (USERNAME) IDENTIFIED BY "密碼";。


1.在 CMD下
 SQLPLUS /NOLOG

2.
 CONN /AS SYSDBA


  ALTER USER (USERNAME) IDENTIFIED BY 「密碼」;

( 可以改變USERNAME的密碼)

另一種是:

CREATE USER (USERNAME) IDENTIFIED BY "密碼";


PS 改變用戶權限的命令是:

GRANT ROLES TO (USERNAME);

判斷DB欄位非數字

先作一個Function:
FUNCTION IS_NUMBER (p_str IN VARCHAR2)
RETURN INTEGER
IS
v_num NUMBER;
BEGIN
v_num := TO_NUMBER (p_str);
RETURN 1;
EXCEPTION
WHEN OTHERS
THEN
RETURN 0;
END;

可以用了:
select * from your_table where is_number(your_field)=0

ORACLE的保留字

ACCESS DECIMAL INITIAL ON START ADD NOT INSERT ONLINE SUCCESSFUL ALL DEFAULT INTEGER OPTION SYNONYM ALTER DELETE INTERSECT OR SYSDATE AND DESC INTO ORDER TABLE ANY DISTINCT IS PCTFREE THEN AS DROP LEVEL PRIOR TO ASC ELSE LIKE PRIVILEGES TRIGGER AUDIT EXCLUSIVE LOCK PUBLIC UID BETWEEN EXISTS LONG RAW UNION BY FILE MAXEXTENTS RENAME UNIQUE FROM FLOAT MINUS RESOURCE UPDATE CHAR FOR MLSLABEL REVOKE USER CHECK SHARE MODE ROW VALIDATE CLUSTER GRANT MODIFY ROWID VALUES COLUMN GROUP NOAUDIT ROWNUM VARCHAR COMMENT HAVING NOCOMPRESS ROWS VARCHAR2 COMPRESS IDENTIFIED NOWAIT SELECT VIEW CONNECT IMMEDIATE NULL SESSION WHENEVER CREATE IN NUMBER SET WHERE CURRENT INCREMENT OF SIZE WITH DATE INDEX OFFLINE SMALLINT CHAR VARHCAR VARCHAR2 NUMBER DATE LONG CLOB BLOB BFILE INTEGER DECIMAL SUM COUNT GROUPING AVERAGE TYPE

無條件進位/ 無條件捨去/四捨五入

CEIL(n) 無條件進位的整數
SELECT ceil(3.12) FROM DUAL; 執行結果:4

FLOOR(n)   無條件捨去的整數
SELECT floor(3.6) FROM DUAL; 執行結果:3

ROUND (m[,n]) m四捨五入,取到小數點第n位[n default=0]
SELECT round(3.16,1) FROM DUAL; 執行結果:3.2

找出重覆的資料

SELECT f1,COUNT(*)/*重複出現的次數*/ FROM tabl1 GROUP BY f1 HAVING COUNT(*) > 1

取得所有table名稱(非系統預設table)

select table_name from user_tables

手動insert資料需要sequence

INSERT INTO MarsTest (ID_, Content)
VALUES (Seq_MarsTest.NEXTVAL, 'MarsTest');


這也表示說Sequence 不只是提供給特定 Table 使用,也能給其他任一個 Table 共用。

隨機亂數取得資料

Select *
From ( Select *
?????? From 表格名稱
?????? Order By dbms_random.random )
Where Rownum <= 10;

顯示 < 10 > 5資料

SELECT * FROM (SELECT ROWNUMAS rn, FORT.* FROM FORT  WHERE <10 ORDER BY ID) WHERE rn > 5 ORDER BY  ID
--顯示 ID 11 12 13 15資料

ORACLE 中ROWNUM用法總結!(精華)
bbs.linuxpk.com/thread-10595-1-1.html

ROWNUM 是一個序列,是oracle數據庫從數據文件或緩衝區中讀取數據的順序。它取得第一條記錄則rownum值為1,第二條為2,依次類推。如果 你用>,>=,=,between...and這些條件,因為從緩衝區或數據文件中得到的第一條記錄的rownum為1,則被刪除,接著取下 條,可是它的rownum還是1,又被刪除,依次類推,便沒有了數據。

有了以上從不同方面建立起來的對 rownum 的概念,那我們可以來認識使用 rownum 的幾種現像

1. select rownum,c1 from t1 where rownum != 10 為何是返回前9條數據呢?它與 select rownum,c1 from tablename where rownum < 10 返回的結果集是一樣的呢?
因 為是在查詢到結果集後,顯示完第 9 條記錄後,之後的記錄也都是 != 10,或者 >=10,所以只顯示前面9條記錄。也可以這樣理解,rownum 為9後的記錄的 rownum為10,因條件為 !=10,所以去掉,其後記錄補上,rownum又是10,也去掉,如果下去也就只會顯示前面9條記錄了

2. 為什麼 rownum >1 時查不到一條記錄,而 rownum >0 或 rownum >=1 卻總顯示所以的記錄
因為 rownum 是在查詢到的結果集後加上去的,它總是從1開始

3. 為什麼 between 1 and 10 或者 between 0 and 10 能查到結果,而用 between 2 and 10 卻得不到結果
原因同上一樣,因為 rownum 總是從 1 開始

從上可以看出,任何時候想把 rownum = 1 這條記錄拋棄是不對的,它在結果集中是不可或缺的,少了rownum=1 就像空中樓閣一般不能存在,所以你的 rownum 條件要包含到 1

但如果就是想要用 rownum > 10 這種條件的話話就要用嵌套語句,把 rownum 先生成,然後對他進行查詢。
select *
from (selet rownum as rn,t1.* from a where ...)
where rn >10


SQL>select * from(select rownum no ,id,name from student) where no>2;
        NO ID     NAME
---------- ------ ---------------------------------------------------
         3 200003 李三
         4 200004 趙四

(+) outer join

DECODE

DECODE(欄位,xx,oo,**)
如果欄位=xx 會變oo
預設欄位=**

DECODE(cen.Rate,null,'0',cen.Rate)


decode(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)
該函數的含義如下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
......
ELSIF 條件=值n THEN
RETURN(翻譯值n)
ELSE
RETURN(缺省值)
END IF

· 使用方法:
1、比較大小
select decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值
sign()函數根據某個值是0、正數還是負數,分別返回0、1、-1
例如:
變量1=10,變量2=20
則sign(變量1-變量2)返回-1,decode解碼結果為「變量1」,達到了取較小值的目的。

2、表、視圖結構轉化
現有一個商品銷售表sale,表結構為:
month    char(6)      --月份
sell    number(10,2)   --月銷售金額

現有數據為:
200001  1000
200002  1100
200003  1200
200004  1300
200005  1400
200006  1500
200007  1600
200101  1100
200202  1200
200301  1300
想要轉化為以下結構的數據:
year   char(4)      --年份
month1  number(10,2)   --1月銷售金額
month2  number(10,2)   --2月銷售金額
month3  number(10,2)   --3月銷售金額
month4  number(10,2)   --4月銷售金額
month5  number(10,2)   --5月銷售金額
month6  number(10,2)   --6月銷售金額
month7  number(10,2)   --7月銷售金額
month8  number(10,2)   --8月銷售金額
month9  number(10,2)   --9月銷售金額
month10  number(10,2)   --10月銷售金額
month11  number(10,2)   --11月銷售金額
month12  number(10,2)   --12月銷售金額

結構轉化的SQL語句為:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
as
select
substrb(month,1,4),
sum(decode(substrb(month,5,2),'01',sell,0)),
sum(decode(substrb(month,5,2),'02',sell,0)),
sum(decode(substrb(month,5,2),'03',sell,0)),
sum(decode(substrb(month,5,2),'04',sell,0)),

如何用SQL insert 語句插入一「日期/時間」的值

insert   into   tablename   (datetime)   values   (to_date('2001-12-05','YYYY-MM-DD'));  

NVL :轉換 Null 值函數

NVL(expr1, expr2) 拿expr1來判斷,是null就用expr2取代
NVL2(expr1, expr2, expr3) 拿expr1判斷,不是null填expr2,是null填expr3
NULLIF(expr1, expr2) 如果expr1=expr2就塞null,不相等就填expr1
COALESCE (expr1, expr2,…,exprn) 從expr1開始找,不是null就回傳

顯示的時間格式

alter session set nls_date_format = 'yyyy/mm/dd hh24:mi:ss'

網站ICON



<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />

↑↑要放在<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="EN" lang="EN" dir="ltr">前

A4大小

A4紙:pageWith=”595” pageHeight=”842”   單位PX

Java預設每英吋72點

@SkipValidation

@SkipValidation用來放在不要驗證的方法前

用javascript驗證

<!--用javascript驗證 >
 <s:if test="hasFieldErrors()">
  <script language="JavaScript">
   var msg = 'xxxxx';
   alert(msg);
  </script>
 </s:if>
<用javascript驗證  -->

< s:fielderror

直覺上可能會寫成:

<s:fielderror value="startYear.val" />

但這樣是無效的

有效寫法是:
<s:fielderror  cssClass="error-message"><s:param>startYear</s:param> </s:fielderror>

@InputConfig

@InputConfig(methodName="inputMethod", resultName="someInputResultName") methodName 

resultName 可分開用
methodName:指定要去run哪一個method
resultName:對應struts裡的result

同時都有 會以methodName為主

< s: TAG裡 的theme

theme=xhtml時:會默認額外生成tr,td。
them=simple時:就生成標籤所對應的html標籤形式。

< s:property 的換行

平常寫法是
<s:property value="memo.note"/>
但發現 如果裡面文字本身有換行時  用這方式 他不會換行 !!!!

2013年5月23日

group_concat (mysql) 的oracle用法

group 變成一列....用逗號分隔  直的變橫的

例如

Base Data: 
DEPTNO ENAME 
---------- ---------- 
20 SMITH 
30 ALLEN 
30 WARD 
20 JONES 
30 MARTIN 
30 BLAKE 
10 CLARK 
20 SCOTT 
10 KING 
30 TURNER
20 ADAMS 
30 JAMES 
20 FORD 
10 MILLER 


Desired Output: 
DEPTNO EMPLOYEES 
---------- -------------------------------------------------- 
10 CLARK,KING,MILLER 20 SMITH,FORD,ADAMS,SCOTT,JONES 
30 ALLEN,BLAKE,MARTIN,TURNER,JAMES,WARD


2013年5月22日

ORA-01502

找到一個解法:REBUID PK

 alter index XXX_PK rebuild

2013年5月19日

幸福的顏色? #81D8D0

某次看到有篇文章介紹到幸福的顏色


但套用他色碼感覺就不對....

沒想到 原來wiki就寫的很明確

 Tiffany Blue
Hex triplet #81D8D0
sRGBB    (r, g, b) (129, 216, 208)
HSV       (h, s, v) (174°, 40%, 85%)





2013年5月18日

CSS的換行


方法1:
white-space:normal; width:200px;

但可能無效...


方法2:
 white-space:normal;
 overflow:hidden;
 word-wrap: break-word; /*word-wrap 只有fx不支援*/



強制不換行:
div{
 white-space:nowrap;

自動換行:
div{ word-wrap: break-word;  word-break: normal; }

強制英文單詞斷行:
div{  word-break:break-all; }



參考資料:http://www.wowbox.com.tw/blog/article.asp?id=2247

CSS的上下左右順序



margin: 2pt 3pt 2pt 3pt; /*宣告四邊不同值順序為*/
margin: 2pt 3pt; /*上下或左右值相同時順序為上下右左*/

2013年5月17日

[JAVA] URL上不要有JSESSIONID

有設定過 不會顯示了

但 如果把BROWSER的COOKIE功能關掉 就會跑出來了 (因為OOXX我懶得寫的原因)

註:如果套用以下內容 可能會有功能遺失 EX需登入的功能之類


2013年5月16日