informix 11.5(含)版本以前沒有提供charindex功能.
因為想要依傳入的尋找 字元組合來取得符合的position,所以為了方便,自已寫了一個湊合著用
以下function是區分大小寫尋找的..
--DOP FUNCTION uf_charindex;
/*
in_str:被搜尋的字元
in_delimiter;尋找字元
in_occurence:被找到的次數
in_exact:是否依in_delimiter逐字尋找
*/
CREATE FUNCTION uf_charindex
(in_str VARCHAR(255),in_delimiter VARCHAR(255)
,in_occurence INTEGER, in_exact CHAR(1) )
RETURNING INTEGER ;
DEFINE q_pos INTEGER;
DEFINE i INTEGER;
DEFINE q_len INTEGER;
DEFINE q_time INTEGER;
DEFINE j INTEGER;
DEFINE q_len_del INTEGER;
DEFINE q_found CHAR(1);
DEFINE q_str VARCHAR(255);
DEFINE q_step INTEGER;
IF nvl(in_occurence,1) <=1 THEN
LET in_occurence = 1;
END IF;
LET q_time=0;
LET i = 1;
LET q_pos = 0;
LET j = 1;
LET q_found = '0';
LET q_step = 1;
LET q_len = char_length(in_str);
LET q_len_del = char_length(in_delimiter);
--是否依in_delimiter逐字尋找符合字
IF in_exact = '1' THEN --完全符合
LET q_step = q_len_del;--先記下完整字長度
LET q_len_del = 1; --最外層只跑一次即可
END IF ;
FOR j = 1 TO q_len_del STEP 1
LET i = 1;
LET q_time = 0;
LET q_pos = 0;
LET q_found = '0';
--取比較字(若in_exact='1'則全部符合)
IF in_exact = '1' THEN
LET q_str = in_delimiter;
ELSE --否則逐字找直到找到in_occurence為止
LET q_str = substr(in_delimiter,j,1);
END IF;
FOR i = 1 TO q_len STEP 1
IF substr(in_str,i,q_step) = q_str THEN
LET q_pos = i;
LET q_time = q_time +1;
--找到後若與指定出現次數相符則結束
IF q_time = in_occurence THEN
LET q_found = '1';
EXIT FOR;
END IF;
END IF;
END FOR;
IF q_found = '1' THEN
EXIT FOR;
END iF;
END FOR;
RETURN q_pos;
END FUNCTION;
測試一下
SELECT FIRST 1 uf_charindex("臺東縣臺東市","縣市",1,'0') FROM systables;
傳回3
SELECT FIRST 1 uf_charindex("臺北市信義區","縣市",1,'0') FROM systables;
傳回3
SELECT FIRST 1 uf_charindex("臺東縣臺東市","市縣",1,'0') FROM systables;
傳回6
SELECT FIRST 1 uf_charindex("This is a book","book",1,'1') FROM systables;
傳回11
SELECT FIRST 1 uf_charindex("This are a lot of bOOks","O",2,'1') FROM systables;
傳回21
2012年11月10日 星期六
SSRS 2008 R2 網站很慢
下載了Report Builder 3.0進行測試
安裝過程中,需要設定report server
結果在進入 http://servername/reportserver 網頁的過程中,好慢好慢.
試了半天,以為是自已的SSRS 2008 R2安裝有問題.
結果竟是因為防毒軟體NOD32 Web存取防護中,HTTP、HTTPS掃描設定中啟用了HTTP檢查.
雖然試著位址管理想要排除本機HTTP的掃描. 但似乎都無效??
只好先關閉啟用了HTTP檢查的功能.
關閉後,Report Server變得飛快..當然Report Builder Preview也變快了
另外, 在http://localhost/reports/ 下, 按下報表產生器後, 出現了以下訊息
安裝過程中,需要設定report server
結果在進入 http://servername/reportserver 網頁的過程中,好慢好慢.
試了半天,以為是自已的SSRS 2008 R2安裝有問題.
結果竟是因為防毒軟體NOD32 Web存取防護中,HTTP、HTTPS掃描設定中啟用了HTTP檢查.
雖然試著位址管理想要排除本機HTTP的掃描. 但似乎都無效??
只好先關閉啟用了HTTP檢查的功能.
關閉後,Report Server變得飛快..當然Report Builder Preview也變快了
另外, 在http://localhost/reports/ 下, 按下報表產生器後, 出現了以下訊息
若使用報表產生器,您必須在此電腦上安裝.Net Framework 3.5
但本機的.net framework明明就是上到了4.0
結果在切換成相容性檢視後,就正常了.
雖然我之前sql server 2008 r2安裝的是英文版,
但report manger web site的介面是跟著IE的語言設定而定的,所以介面就出現了中文
如果想要變回英文,則在IE網際網路選項中, 一般頁籤最下方的語言鍵,新增英文[en]語言,並調整序順到第一位
即可切換為英文介面.
另外,由 http://localhost/reports/ 下安裝報表產生器會自動安裝中文版report builder 3.0
若要使用英文版介面,則需再下載安裝英文版report builder後,再自行開啟即可.
訂閱:
文章 (Atom)
IIS 網站無法下載中文檔名檔案因為取消高位元字元
網址+中文檔案名稱方式下載檔案顯示 404 - 找不到檔案或目錄。 但英數字檔案名稱則可下載。 因為設定GCB IIS,其中1項 將高位元字元預設取消勾選了。 27 TWGCB-04-014-0028 要求篩選與其他限制模組 允許高位元字元 這項原則設定決定查詢...
-
一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...
-
Row.Cells[2].Text == "abc" ? "ok" : "not ok" ; 或加入Microsoft. VisualBasic 參考使用 vb namespace using Microsoft...
-
freeFTPd是套免費的SFTP SERVER支援22 port SFTP及21port FTP,一般找到免費的都不支援SFTP只有技援FTPS。 之前一直有個困擾在幾台主機安裝後,有幾台重開機後,SFTP SERVER必須手動去啟動,一直以來老是搞不懂為什麼,今天看到一篇文...