Posts
PL/SQL - NUMTODSINTERVAL function
NUMTODSINTERVAL function 會將帶入的值轉成特定單位的 Interval。
使用語法如下:
NUMTODSINTERVAL( number, expression ) number 這邊帶入的是要轉換的值,expression 這邊帶入的是要轉換的單位,可以是 Day、 Hour、 Minute、 Second。
使用上可搭配日期使用,對日期做些增減處理。像是下面這樣:
{% img /images/posts/NUMTODSINTERVALFunction/1.png %}
{% img /images/posts/NUMTODSINTERVALFunction/2.png %}
{% img /images/posts/NUMTODSINTERVALFunction/3.png %}
{% img /images/posts/NUMTODSINTERVALFunction/4.png %}
{% img /images/posts/NUMTODSINTERVALFunction/5.png %}
{% img /images/posts/NUMTODSINTERVALFunction/6.png %}
Link Oracle/PLSQL: NUMTODSINTERVAL Function
read morePosts
PL/SQL - Sysdate function
Sysdate function 會回傳資料庫系統當前的日期與時間。
使用語法如下:
Sysdate 直接叫用即可,不需帶入任何的參數。
像是這樣:
{% img /images/posts/SysdateFunction/1.png %}
Link Oracle/PLSQL: SYSDATE function
read morePosts
ASP.NET - Logging application shutdown events
做網站服務最害怕的就是服務不能正常運作,有時要追出實際發生的問題需要花費我們很多的時間。這時如果系統能將停止服務的原因正確的記錄下來,可有助於我們將問題快速的釐清。
可惜的是服務停止的原因預設是無法取得的,因為並沒有直接開放給開發人員調用。不過好在這樣的資訊還是有的,只是未被開出而已,所以我們仍舊可以透過反射下去取得。
要擷取這樣的資訊我們要從 HttpRuntime 類別下手,類別內有個 _theRuntime 靜態私有欄位用以存放唯一的物件實體,實體內的 _shutDownMessage 與 _shutDownStack 私有欄位分別存放著 Shutdown 的訊息與呼叫堆疊。
程式寫起來就像下面這樣:
... private void LogShutDownInfo() { if (! m_Logger.IsInfoEnabled ) return; var type = typeof (HttpRuntime ); var runtime = ( HttpRuntime) type .InvokeMember( "_theRuntime" , BindingFlags.NonPublic | BindingFlags.Static | BindingFlags .GetField, null, null , null); if (runtime == null) return; var message = ( string) type .InvokeMember( "_shutDownMessage" , BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags .GetField, null, runtime, null); var stack = ( string) type .
read morePosts
PL/SQL - Decode function
Decode function 可用於取代簡單的 If-Then-Else 陳述式。
使用語法如下:
DECODE( expression , search , result [, search , result]... [, default] ) 簡單來說如果 expression 的值等同 search 值的話,則回傳對應的 result 值。
像是要將數值帶入,依其值決定要回傳 ’true’ 或是 ‘false’,可以像下面這樣撰寫:
{% img /images/posts/DecodeFunction/1.png %}
{% img /images/posts/DecodeFunction/2.png %}
Link Oracle/PLSQL: DECODE Function
read morePosts
Mac - Add new applications to Launchpad
要將 Application 加入 Launchpad,只要將要加入的 Application 檔案拖曳至 Application Folder。
{% img /images/posts/AddAppsToLaunchpad/1.png %}
{% img /images/posts/AddAppsToLaunchpad/2.png %}
加進 Application Folder 後,我們就可以在 Launchpad 中看到加入的 Application。
{% img /images/posts/AddAppsToLaunchpad/3.png %}
read morePosts
Outlook - Check mailbox size
要檢查 Outlook 用量大小,我們可以在 Mailbox 上按下滑鼠右鍵,在彈出的滑鼠右鍵快顯選單中選取 Properties 選單選項。
{% img /images/posts/CheckMailBoxSizeWithOutlook/1.png %}
在 Properties 對話框中的 General 頁面找到 Folder Size... 按鈕並點選。
{% img /images/posts/CheckMailBoxSizeWithOutlook/2.png %}
就可以在彈出的 Folder Size 對話框中看到細部的用量資訊。
{% img /images/posts/CheckMailBoxSizeWithOutlook/3.png %}
Link How to Check the Size of Your Mailbox in Outlook
read morePosts
LeetCode - Contains Duplicate II
LeetCode 的 Contains Duplicate II 題目如下:
Given an array of integers and an integer k, find out whether there there are two distinct indices i and j in the array such that nums[i] = nums[j] and the difference between i and j is at most k.
簡單說他要的是要一個功能,當給予一個整數陣列與一個整數值 k,能找出兩個不同的索引值,這兩個索引值的差距最多為 k,且其對應到的整數陣列的值是相同的。
這邊筆者是用迴圈搭配 Dictionary 來處理,每跑一個數就去判斷 Dictionary 是否有含有一樣的數值,如果有則去判斷索引值的差距是否在 k 內,是的話則回傳 true。如果不是或是數值不存在在 Dictionary 內,則將其加入或是將 Dictionary 中的索引值更新,便於後續查找。如果整個陣列跑完都找不到結果,將 false 回傳。
public class Solution { public bool ContainsNearbyDuplicate(int[] nums, int k) { var length = nums.
read morePosts
Visual Studio 2015 - New Exception Settings Window
在使用 Visual Studio 對 .NET 程式進行除錯時,有時候我們會需要對 Exception Setting 進行些調整,以便快速的找出問題發生的點。
但是以往的 Exception Setting 是以對話框形式呈現,開關設定十分的不便,且不具搜尋過濾的功能,要找到指定的設定很不容易。
這樣的問題在 Visual Studio 2015 獲得了改善,Exception Setting 改以 Window 方式呈現能方便我們隨時進行調動,也新噌了搜尋與過濾的功能便於快速找到指定的設定。
舉個例子來說,今天我們的程式碰到了個不如預期的問題,我們的程式會被導到例外被攔截的位置。
{% img /images/posts/ExceptionSettingWindowInVS2015/1.png %}
但例外被攔截的位置並非我們所關注的地方,此時我們會調整 Exception Setting 讓 Common Language Runtime Exceptions 設定被勾選,這樣因為可以攔截到 First chance exception,所以程式會改停在錯誤實際發生的位置。
{% img /images/posts/ExceptionSettingWindowInVS2015/2.png %}
若要細部指定特定的例外,像是 NullReferenceException,可以直接透過搜尋找到對應的設定。
{% img /images/posts/ExceptionSettingWindowInVS2015/3.png %}
針對非系統提供的例外,這邊也允許自行加入設定。
{% img /images/posts/ExceptionSettingWindowInVS2015/4.png %}
Link The New Exception Settings Window in Visual Studio 2015 - Microsoft Application Lifecycle Management - Site Home - MSDN Blogs Understanding Exceptions while debugging with Visual Studio - Microsoft Application Lifecycle Management - Site Home - MSDN Blogs
read morePosts
Web Deploy - Synchronize IIS
若要做 IIS 之間的同步,我們可以使用 Web Deploy。
它可以做到 Local To Remote。
msdeploy -verb:sync -source:webServer -dest:webServer,computerName=Server2 Remote To Local。
msdeploy -verb:sync -source:webServer,computerName=Server2 -dest:webServer 以及 Remote To Remote。
msdeploy -verb:sync -source:webServer,computerName=Server2 -dest:webServer,computerName=Server3 簡單來說就只是用 msdeploy 帶入 sync verb,並指定 source 與 dest。source 與 dest若是針對整個 Server 同步則帶入 webServer,若是遠端電腦則要多帶入 computerName。
像是如果我要將本地的 IIS 整個同步到 192.168.0.2 的 IIS,就要像下面這樣:
msdeploy -verb:sync -source:webServer -dest:webServer,computerName=192.168.0.2 命令執行後 Web Deploy 即會將 WebSite、Application Pool、Binding、File、以及 Setting 等在指定的電腦間進行同步,十分的方便.
Link Synchronize IIS : The Official Microsoft IIS Site Web Deploy sync Operation
read morePosts
Web Deploy - Import Package
要將 Application 或 Server 的匯出檔匯入 IIS,我們可以透過 Web Deploy 的匯入功能來做。先確定 Server 有安裝 Web Deploy,安裝後在 IIS 的 Application 或是 Server 節點上按下滑鼠右鍵,在彈出的滑鼠右鍵快顯選單中應該會多出 Deploy 的功能選項。這邊點選 [Deploy | Import Server Package…] 選單選項。
{% img /images/posts/ImportWebDeployPackage/1.png %}
點選後會彈出匯入對話框,選取要匯入的匯出檔。
{% img /images/posts/ImportWebDeployPackage/2.png %}
{% img /images/posts/ImportWebDeployPackage/3.png %}
{% img /images/posts/ImportWebDeployPackage/4.png %}
接著要選取要匯入的內容。確定後點選 Next 按鈕繼續。
{% img /images/posts/ImportWebDeployPackage/5.png %}
接著會彈出確認對話框,確認是否要進行匯入的動作,確定無誤則按下 OK 按鈕繼續。
{% img /images/posts/ImportWebDeployPackage/6.png %}
匯入完成會帶出 Summary 資訊,按下 Finish 按鈕即可。
{% img /images/posts/ImportWebDeployPackage/7.png %}
對話框關閉後我們可以看到網站已被正常的匯入。
{% img /images/posts/ImportWebDeployPackage/8.
read more