2008年11月18日 星期二

【筆記】新開一個網頁時,以全螢幕開啟

有時在撰寫網頁時,需要另開視窗來顯示說明或新的網頁,下列範例說明如何以全螢幕新開一個網頁視窗。
var openToFullScreen = function(){
  var myWin = window.open('http://bioankeyang.blogspot.tw/','','fullscreen=yes');
  myWin.moveTo(0,0);
  myWin.resizeTo(screen.width, screen.height);
};

上列的window.open方法,請參考W3C官網說明

再來新增一顆按鈕,來做新開網頁視窗的動作:



你可以點按下列按鈕,看看執行結果:

 

2008年11月4日 星期二

【J筆記】將日期字串轉為Date物件

以前寫的舊文章,在此整理一下。
package idv.jk.date;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Date;

public class StringToDate 
{
 public static void main(String[] argv){
  try {
   String strDate = "20140409";

   if(strDate.length() != 6){
    //處理錯誤訊息

   }
   Date date = new SimpleDateFormat("yyyyMMdd").parse(strDate);
   System.out.println(date);
   
  } catch (ParseException e) {
   //處理錯誤訊息
   System.out.println("日期格式錯誤");

  }

 }
}
上列第19行中,丟入SimpleDateFormat類別的格式化字串中,若是要處理「月份」的話,要用大寫的「M」,若是使用小寫的「m」,是要用來處理「分鐘」的。

2008年10月20日 星期一

【筆記】用javascript來開新視窗

用javascript來開新視窗的語法如下:

window.open('你要開的視窗','','menubar=no,status=no,scrollbars=yes,top=260,left=480,toolbar=no,width=300,height=250');

2008年6月30日 星期一

在oracle建table時,因為不同username建的table需要在table name前再加一個username.tablename才能做select動作,因此需加一段,但此時需用Sys Admin的帳號登入:
CREATE SYNONYM username1.tableName FOR username2.tableName;
用username1登入時就能直接接用select * from tablename來做查詢。

2008年6月27日 星期五

SQL *Loader的錯誤訊息-出現ORA-00947值不夠

當欄位數都對時,若出現ORA-00947值不夠的訊息時,表示可能在使用Oracle中的function時,少或多了小括號,或其中錯誤。

例如:
"decode(:aaa, null, 'aaa', :aaa))"
可能會因為多了一個小括號,SQL *Loader就會辨別錯誤。

2008年6月7日 星期六

PHP中date()函式的格式參數

在date()中可以放入格式化的參數,來得到所需要的時間格式,如:
date('y-m-d h:i:s a')便會顯示08-06-07 22:59:59。
相關的格式化參數如下:
  1. Y:顯示四位數西元年,如2008。
  2. y;顯示兩位數西元年,如08。
  3. F:月份的英文名稱,不是縮寫,如January、October。
  4. M:月份的英文名稱,為縮寫,如Jan、Oct。
  5. m:以數字表示的二位數月份,補0,如01、10。
  6. n:二位數月份,不補0,如1、10。
  7. t:當月分的天數。
  8. d:以數字表示的兩位數日期,補0,如01、30。
  9. j:以數字表示的兩位數日期,不補0,如1、30。
  10. a:以am、pm表示上午或下午。
  11. A:以AM、PM表示上午或下午。
  12. g:12小時制顯示時,不補0,如1、12。
  13. h:12小時制顯示時,補0,如01、12。
  14. G:24小時制顯示時,不補0,如1、23。
  15. H:24小時制顯示時,補0,如01、23。
  16. i:分,00~59。
  17. s:秒,00~59。
  18. D:以英文縮寫來表示,如Mon、Fri。
  19. l:以非縮寫英文來表示,如Monday、Friday。
  20. N:以數字來顯示星期幾,1表周日、7表周六。
  21. w:以數字來顯示星期幾,0表周日、6表周六。
  22. O:顯示與格林威治標準時間的時差。

Oracle 的特殊 Table DUAL

Oracle 的特殊 Table DUAL
前陣子有同事問我,dual這個table是要幹嘛的,先看看它的schema,

Name Type Nullable Default Comments
----- ----------- -------- ------- --------
DUMMY VARCHAR2(1) Y

當我們下select 'XXXXX' from dual;
回傳結果為:

xxxxx

那有什麼用呢?因為dual裡面永遠只有一筆資料,所以用這樣的方法,可以得只有一筆的字串等資料,它的好處用過才知道。

換環境時複製資料表的小撇步

換環境時, 要COPY資料表, 先利用pl/sql developer連到舊環境中, 選擇到匯出的TABLE, 點VIEW, 再點右下角的VIEW SQL, 會出現CREATE TABLE的語法, 再登出連到到匯入的DB去, 點選APPLY, 再CLOSE, 便完成匯出

如何連接 Oracle

  為了連接oracle,你要先知道組態檔的位置
  oracle 組態檔位置: # TNSNAMES.ORA Network Configuration File: 安裝根目錄\oracle\ora92\NETWORK\ADMIN\tnsnames.ora,然後打開編輯,加入:

連線名稱 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 連接埠號))
)
(CONNECT_DATA =
(SERVICE_NAME = 服務名稱)
)
)
當然也有工具可以設定,點選[開始]-[所有程式]找到下面的選項:
點選進去後就可以按步設定連線。

【筆記】開新網頁並可以接收其回傳值

var ReturnValue=window.showModalDialog('AAA.aspx?BBB=' + BBB, 
          '', 
          'dialogHeight: 280px; dialogWidth: 850px; dialogTop: px; dialogLeft: px; edge: Sunken; center: Yes; help: No; resizable: Yes; status: No; scroll: auto;');

2008年6月5日 星期四

在JSF中下載檔案.csv

FacesContext faces = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) faces
.getExternalContext().getResponse();
response.setContentType("application/csv");
response.setContentLength(data.length);
response.setHeader("Content-disposition", "inline; filename=\""
+ filename + "\"");
try {
ServletOutputStream out = response.getOutputStream();
out.write(data);
} catch (IOException ex) {

}

faces.responseComplete();

2008年5月8日 星期四

取得rowIndex

使用者若是要使用滑鼠按一下表格的儲存格就可以取得rowIndex的屬性,語法是:
rowIndex = event.srcElement.parentElement.rowIndex;

2008年5月6日 星期二

在oracle中使用to_char函式對數字轉型

函式使用方式為to_char(var1, var2),若var2的格式不同時,會有不同的結果:
1.使用'99999',9的個數依所需位數而定:
ex.
select to_char(12345, '999999999') from dual;
所得結果為:
12345

2.使用'099999',9的個數依所需位數而定:
ex.
select to_char(12345, '0999999999') from dual;
所得結果為:
0000012345

3.使用'000000',0的個數依所需位數而定:
ex.
select to_char(12345, '0000000000') from dual;
所得結果為:
0000012345



4.使用'000000',再加一個s,0的個數依所需位數而定:
ex.
select to_char(12345, 's0000000000') from dual;
所得結果為:
+0000012345

5.使用'999999',再加一個s,9的個數依所需位數而定:
ex.
select to_char(12345, 's99999999999') from dual;
所得結果為:
+12345

2008年5月5日 星期一

在oracle要查index的狀態

可以從user_indexes (或是 all_indexes或 dba_indexes)這幾個 data dictionary view去查如下:

SELECT index_name, status FROM user_indexes;
就會跑出如下的結果:
INDEX_NAME STATUS
------------------------------ --------
IDX_INDEX1 VALID
IDX_INDEX2 VALID

2008年5月2日 星期五

【筆記】Oracle中的left join

在oracle 9i之前,在oracle使用left outer join是要在where條件中,在被join的table之欄位後面, 加一個(+)要做這件事。但從oracle 9i以後,就用iso99的SQL語法,使用left [outer] join來進行。

下面範例中可以看出兩種join的語法的差異: 在Oracle8i中的left outer join
select
last_name,
department_name
from
employees e,
departments d
where
e.department_id = d.department_id(+);
在Oracle9i中的left outer join
select
last_name,
department_name
from
employees e
left outer join
departments d
on
e.department_id = d.department_id;
參考網址

2008年4月29日 星期二

【筆記】在做JSF的navigation時要主意的設定

在下列程式碼中,

這裡的action中的someResult必須符合navigation rule中的一個outcome。

 /index.jsp
 
  someResult
  /welcome.jsp
 

注意這裡的view ID前面一定要有/ ,然後副檔名一定是.jsp(這讓拜歐吃過虧)。

2008年4月28日 星期一

要在JSF中取得session....

把object放到session中:
Map sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();

sessionMap.put("aaaa");
從session中把object拿出來:
Map sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();

_logger.debug("textss" + sessionMap.get("aaaa"));