史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 作業系統操作技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-26, 10:55 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - 取得拼音字頭的存儲過程

-- =============================================
-- Create scalar function (NWGetPYFirst)
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N'NWGetPYFirst')
DROP FUNCTION NWGetPYFirst
GO

CREATE FUNCTION NWGetPYFirst
(@str varchar(500) = '')
RETURNS varchar(500)
AS
BEGIN
Declare @strlen int,
@return varchar(500),
@ii int,
@c char(1),
@chn nchar(1)
--//初始化變量
Declare @pytable table(
chn char(2) COLLATE Chinese_PRC_CS_AS NOT NULL,
py char(1) COLLATE Chinese_PRC_CS_AS NULL,
PRIMARY KEY (chn)
)
insert into @pytable values('丫', 'A')
insert into @pytable values('八', 'B')
insert into @pytable values('嚓', 'C')
insert into @pytable values('咑', 'D')
insert into @pytable values('婀', 'E')
insert into @pytable values('發', 'F')
insert into @pytable values('旮', 'G')
insert into @pytable values('鉿', 'H')
insert into @pytable values('丌', 'I')
--insert into @pytable values('丌', 'J')
insert into @pytable values('卡', 'K')
insert into @pytable values('垃', 'L')
insert into @pytable values('嘸', 'M')
insert into @pytable values('拏', 'N')
insert into @pytable values('噢', 'O')
insert into @pytable values('妑', 'P')
insert into @pytable values('七', 'Q')
insert into @pytable values('呥', 'R')
insert into @pytable values('仨', 'S')
insert into @pytable values('他', 'T')
insert into @pytable values('洼', 'U')
--insert into @pytable values('洼', 'V')
--insert into @pytable values('洼', 'W')
insert into @pytable values('夕', 'X')
insert into @pytable values('丫', 'Y')
insert into @pytable values('匝', 'Z')

select @strlen = len(@str), @return = '', @ii = 0
--//循環整個字符串,用拼音的首字母替換漢字
while @ii < @strlen
begin
select @ii = @ii + 1, @chn = substring(@str, @ii, 1)
if @chn > 'z' --//檢索輸入的字符串中有中文字符
SELECT @c = max(py)
FROM @pytable
where chn <= @chn
else
set @c=@chn

set @return=@return+@c
end
return @return
END
GO

-- =============================================
-- Example to execute function
-- =============================================
SELECT dbo.NWGetPYFirst('夢想國度'), dbo.NWGetPYFirst('noctwolf分享源碼'), dbo.NWGetPYFirst('')
GO


補充一個Oracle的。

直接用SQLPLUS運行附件中的 install.pdc,這個腳本將做以下幾件事。
1、在當前用戶中建立 D_PINYIN_INDEX 表。
如果你覺得不爽,那就改腳本。
2、往D_PINYIN_INDEX裡面填數據。
3、建立觸發器 T_D_PINYIN_INDEX_ALL
禁止修改 D_PINYIN_INDEX 裡面的數據。
4、建立包 UTIL_PINYIN

使用樣例如下:
代碼 (雙擊代碼複製到粘貼板)SQL> select util_pinyin.getspell('中文1是a嗎?') from dual;

UTIL_PINYIN.GETSPELL('中文1是A嗎?')
--------------------------------------------------------------------------------
ZW1SAM?
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
舊 2006-05-27, 04:24 PM   #2 (permalink)
註冊會員
榮譽勳章
UID - 4587
在線等級: 級別:16 | 在線時長:326小時 | 升級還需:31小時級別:16 | 在線時長:326小時 | 升級還需:31小時級別:16 | 在線時長:326小時 | 升級還需:31小時級別:16 | 在線時長:326小時 | 升級還需:31小時級別:16 | 在線時長:326小時 | 升級還需:31小時級別:16 | 在線時長:326小時 | 升級還需:31小時
註冊日期: 2002-12-07
VIP期限: 2011-05
文章: 618
精華: 0
現金: -120 金幣
資產: 3516 金幣
預設

下載中!感謝分享...........
kyoshih 目前離線  
送花文章: 206, 收花文章: 36 篇, 收花: 76 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 11:11 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1