Posts
>-
條款三十四,避免在 SQL 語句運行與 implicit cursor 中間使用 procedure 或是 function。
像是下面的例子,這邊先刪除了一些資料,後續要用 SQL%ROWCOUNT 去判斷刪除的筆數,但中間卻調用了其它 function,以致於 SQL%ROWCOUNT 的值不如我們的預期。
CREATE PROCEDURE remove_emp_and_process (in_id IN emp.empno%TYPE) AS BEGIN DELETE FROM emp WHERE empno = in_id RETURNING deptno INTO l_deptno; process_department (...); IF SQL%ROWCOUNT > 1 THEN -- Too many rows deleted! Rollback and recover... ROLLBACK; END IF; END remove_emp_and_process; 所以我們必須避免在 SQL 語句運行與 implicit cursor 中間使用 procedure 或是 function。
read morePosts
PL/SQL SQL CODING GUIDELINE 33 - Always close locally opened cursors
條款三十三,總是關閉開啟的游標。
像是下面這樣將游標開啟後並未揪游標關閉,使用的資源不會自動釋放。
CREATE PROCEDURE not_close_cursor (out_count OUT INTEGER) AS CURSOR c1 IS SELECT COUNT (*) FROM all_users; BEGIN out_count := 0; OPEN c1; FETCH c1 INTO out_count; END not_close_cursor; ... 應該要自己將游標在適當的時機點關閉,使用的資源才會被釋放。
CREATE PROCEDURE close_cursor (out_count OUT INTEGER) AS CURSOR c1 IS SELECT COUNT (*) FROM all_users; BEGIN out_count := 0; OPEN c1; FETCH c1 INTO out_count; CLOSE c1 END close_cursor;
read morePosts
>-
條款三十二,當使用 BULK 與 LIMIT 操作時,避免直接在後面用 %NOTFOUND 判斷是否有資料處理,應改用 COUNT() 判斷。
像是下面這樣的撰寫方式,迴圈內每次會處理 5 筆資料,假設今天總資料量為 14,那第三次處理時因為剩餘的筆數 4 小於 LIMIT 設定的筆數 5,%NOTFOUND 會為 true 跳離,剩餘的資料就都沒有跑到。
-- This example will only show 10 of 14 employees DECLARE TYPE t_employee_type IS TABLE OF emp%ROWTYPE; t_employees t_employee_type; CURSOR c_emp IS SELECT * FROM emp ORDER BY empno; BEGIN OPEN c_emp; <<process_emp>> LOOP FETCH c_emp BULK COLLECT INTO t_employees LIMIT 5; EXIT process_emp WHEN c_emp%NOTFOUND; <<display_emp>> FOR i IN 1.
read morePosts
Netling - A load tester client for easy web testing
Netling 是一簡易的網站測試工具,目前沒有尚未直接釋出版本,需要自行下載程式碼編譯後運行。
他有支援兩種 Client 版本,一種是 WPF client,一種是 Console client。
WPF client 運行起來會向下面這樣,只要設定用多少的執行緒、多少的運行時間、Piplining、Thread afinity、以及要測試的網站位置,按下 Run 按鈕即可開始運行測試。
測試完會用另外一個視窗顯示測試的結果。
如果想在進行網站的調整後做個比較的話,這邊可以先按下 USE AS BASELINE 按鈕,將當前的測試數據設為基準。
基準設定後網站調完再進行一次測試,測試結果就會跟基準值去做個比對,但下方的圖形部分不會進行比對,所以有需要的話基準的測試結果是不能關閉的。
至於 Console clinet 的部份,直接調用命令運行即可看到細部的使用參數。
最簡單的使用方式就是在命令後帶上要測試的網址。
也可以帶入 -t 可決定 執行緒個數,帶入 -d 設定測試的時間。
Link hallatore/Netling: Netling is a load tester client for easy web testing.
read morePosts
Hexo - Auto deploy with Travis CI
要使用 Travis CI 自動幫我們發佈 Hexo 部落格,先參閱筆者 Travis CI - Free Hosted Continuous Integration Platform for the Open Source Community | Level Up 這篇,登入 Travis CI ,給予授權,並為 Repository 啟用 Travis CI。
接著要準備一組 Personal access token 給 Travis CI。先將 GitHub 的 Settings 開啟。
切到 Personal access tokens 頁面。
按下 Generate new token 按鈕建立一組 token。
為這組 Token 設定一個名稱,並給予它 repo 的權限。
Token 產生後複製留存以供後續使用。
再來要準備 Travis CI 的設定檔 .travis.yml,放置於 Repository 的根目錄,內容大概像這樣 (branches 位置、使用者名稱、與電子郵件位置請自行替換):
language: node_js node_js: - '0.
read morePosts
>-
條款三十一,Always use %NOTFOUND instead of NOT %FOUND to check whether a cursor was successful。
不要用 Not %FOUND 去撰寫判斷邏輯。
LOOP FETCH c_employees INTO r_employee; EXIT WHEN NOT c_employees%FOUND; ... END LOOP; 取而代之的是要用 %NOTFOUND 去撰寫判斷邏輯。
LOOP FETCH c_employees INTO r_employee; EXIT WHEN c_employees%NOTFOUND; ... END LOOP; 這樣可讀性會比較好。
read morePosts
>-
Diagnostic Tools 視窗若出現 The Diagnostic Tools window does not support the current debugging configuration 這樣的訊息。
可開啟 Options 視窗,切到 [Debugging | General],取消勾選 Use Managed Compatiability Mode 選項。
Diagnostic Tools 就可正常運作了。
Link c# - Visual Studio 2015 diagnostics tool does not support current debugging configuration - Stack Overflow
read morePosts
Setup Android X86
使用 Virtual Machine 安裝 Android X86,先要下載 Android X86 的映像檔。
接著增加一個新的虛擬機。
由剛下載的映像檔進行安裝。
安裝前可調整一下虛擬機的設定。
設定虛擬機名稱存檔。
選取 Installation - Install Android-x86 to harddisk 進行安裝。
安裝前要先切割 partition。
接著選取剛建立的 Partition 進行安裝。
選擇檔案系統的格式。
安裝完後就可以開始運行 Android 系統。
Link Android-x86 - Porting Android to x86
read morePosts
ASP.NET MVC - MVC 5 on IIS 7
在 IIS 7 使用 ASP.NET MVC 5,Routing 功能會無法正常運作,會看到 403 或是 404 頁面。
這邊可以在 Web.Config 的 modules 這邊加上 runAllManagedModulesForAllRequests="true" 設定,並為網站加上 UrlRoutingModule-4.0 模組。
... <system.webServer> <modules runAllManagedModulesForAllRequests="true"> ... <remove name="UrlRoutingModule-4.0"></remove> <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""></add> </modules> ... 沒意外的話就會運作正常了。
Link MVC 5 on Windows Server 2008/IIS 7
read morePosts
Visual Studio - Clone git repository
使用 Visual Studio clone git repository,先將 Team Explorer 視窗開啟。
在 本機 Git 儲存機制 這邊點選 複製 按鈕。
再來要設定欲 clone 的 git repository 位置,以及 clone 下來存放的位置。
填完按下 複製 按鈕開始進行 Clone。
Clone 完成會在 Team Explorer 直接列出該 Repository。
透過滑鼠右鍵快顯選單我們可以用命令提示字元或是檔案總管開啟 Clone 下來的 Repository。
read more