仅限于 SQL Server.
将以下脚本复制到"common\dbo.convert_CharSet.UDF"文件中。/*
半角字符串转全角
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_BJ2QJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_BJ2QJ]
GOCREATE FUNCTION convert_CharSet_BJ2QJ(@AnsiString nvarchar(2000)) -- 输入的字符串,半角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
while @i<=len(@AnsiString)
begin
select @ret = @ret + NCHAR(ascii(SUBSTRING(@AnsiString, @i, 1))+ 0xFEE0 ) -- $FEE0
SET @i=@i+1
end return @ret
endgo--
/*
select dbo.convert_CharSet_BJ2QJ( '12345678.900')
--
*//*
全角字符串转半角
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_QJ2BJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_QJ2BJ]
GOCREATE FUNCTION convert_CharSet_QJ2BJ(@WideString nvarchar(2000)) -- 输入的字符串,全角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
WHILE SUBSTRING(@WideString,@i,1)<>''
BEGIN
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@WideString,@i,1))-
CASE
WHEN SUBSTRING(@WideString,@i,1)='。' THEN 12244 ELSE 65248
END )
SET @i=@i+1
END return @ret
endgo--
/*
select dbo.convert_CharSet_QJ2BJ( '12345678.9。00')
--
*/
/*
数字字符串转全角。可以包含中文。
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_2QJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_2QJ]
GOCREATE FUNCTION convert_CharSet_2QJ(@AnsiString nvarchar(2000)) -- 输入的字符串,半角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
while @i<=len(@AnsiString)
begin
if unicode(SUBSTRING(@AnsiString, @i, 1))<256
select @ret = @ret + NCHAR(unicode(SUBSTRING(@AnsiString, @i, 1))+ 0xFEE0 )
else
select @ret = @ret + SUBSTRING(@AnsiString, @i, 1)
SET @i=@i+1
end return @ret
endgo--
/*
select dbo.convert_CharSet_2QJ( '7我们12345678.900')
--
*//*
数字字符串转半角。包含汉字的字符串输出 null.
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_2BJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_2BJ]
GOCREATE FUNCTION convert_CharSet_2BJ(@WideString nvarchar(2000)) -- 输入的字符串,全角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
WHILE SUBSTRING(@WideString,@i,1)<>''
BEGIN
if UNICODE(SUBSTRING(@WideString,@i,1))>255
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@WideString,@i,1))-
CASE
WHEN SUBSTRING(@WideString,@i,1)='。' THEN 12244 ELSE 65248
END )
else
SET @ret=@ret+(SUBSTRING(@WideString,@i,1))
SET @i=@i+1
END return @ret
endgo--
/*
select dbo.convert_CharSet_2BJ( '15612345678.9。00')
--
*/
执行命令行:REM F 字符串转换:半角、全角
REM -----------------+--------------------------------------------------
REM 半角转换成全角 | convert_CharSet_BJ2QJ(AnsiString): WideString
REM 半角转换成全角 | convert_CharSet_QJ2BJ(WideString): AnsiString
REM 数字字符串转全角 | convert_CharSet_2QJ(String): WideString
REM 数字字符串转半角 | convert_CharSet_2BJ(String): AnsiString
REM -----------------+--------------------------------------------------
osql -S %1 -d %2 -U %3 -P %4 -b -i "common\dbo.convert_CharSet.UDF"
if %ERRORLEVEL% NEQ 0 goto errors
将以下脚本复制到"common\dbo.convert_CharSet.UDF"文件中。/*
半角字符串转全角
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_BJ2QJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_BJ2QJ]
GOCREATE FUNCTION convert_CharSet_BJ2QJ(@AnsiString nvarchar(2000)) -- 输入的字符串,半角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
while @i<=len(@AnsiString)
begin
select @ret = @ret + NCHAR(ascii(SUBSTRING(@AnsiString, @i, 1))+ 0xFEE0 ) -- $FEE0
SET @i=@i+1
end return @ret
endgo--
/*
select dbo.convert_CharSet_BJ2QJ( '12345678.900')
--
*//*
全角字符串转半角
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_QJ2BJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_QJ2BJ]
GOCREATE FUNCTION convert_CharSet_QJ2BJ(@WideString nvarchar(2000)) -- 输入的字符串,全角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
WHILE SUBSTRING(@WideString,@i,1)<>''
BEGIN
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@WideString,@i,1))-
CASE
WHEN SUBSTRING(@WideString,@i,1)='。' THEN 12244 ELSE 65248
END )
SET @i=@i+1
END return @ret
endgo--
/*
select dbo.convert_CharSet_QJ2BJ( '12345678.9。00')
--
*/
/*
数字字符串转全角。可以包含中文。
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_2QJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_2QJ]
GOCREATE FUNCTION convert_CharSet_2QJ(@AnsiString nvarchar(2000)) -- 输入的字符串,半角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
while @i<=len(@AnsiString)
begin
if unicode(SUBSTRING(@AnsiString, @i, 1))<256
select @ret = @ret + NCHAR(unicode(SUBSTRING(@AnsiString, @i, 1))+ 0xFEE0 )
else
select @ret = @ret + SUBSTRING(@AnsiString, @i, 1)
SET @i=@i+1
end return @ret
endgo--
/*
select dbo.convert_CharSet_2QJ( '7我们12345678.900')
--
*//*
数字字符串转半角。包含汉字的字符串输出 null.
*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[convert_CharSet_2BJ]')
and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[convert_CharSet_2BJ]
GOCREATE FUNCTION convert_CharSet_2BJ(@WideString nvarchar(2000)) -- 输入的字符串,全角
RETURNS nvarchar(2000)
WITH ENCRYPTION
AS
BEGIN
DECLARE @i int
,@ret nvarchar(2000)
select @i=1
SET @ret=''
WHILE SUBSTRING(@WideString,@i,1)<>''
BEGIN
if UNICODE(SUBSTRING(@WideString,@i,1))>255
SET @ret=@ret+NCHAR(UNICODE(SUBSTRING(@WideString,@i,1))-
CASE
WHEN SUBSTRING(@WideString,@i,1)='。' THEN 12244 ELSE 65248
END )
else
SET @ret=@ret+(SUBSTRING(@WideString,@i,1))
SET @i=@i+1
END return @ret
endgo--
/*
select dbo.convert_CharSet_2BJ( '15612345678.9。00')
--
*/
执行命令行:REM F 字符串转换:半角、全角
REM -----------------+--------------------------------------------------
REM 半角转换成全角 | convert_CharSet_BJ2QJ(AnsiString): WideString
REM 半角转换成全角 | convert_CharSet_QJ2BJ(WideString): AnsiString
REM 数字字符串转全角 | convert_CharSet_2QJ(String): WideString
REM 数字字符串转半角 | convert_CharSet_2BJ(String): AnsiString
REM -----------------+--------------------------------------------------
osql -S %1 -d %2 -U %3 -P %4 -b -i "common\dbo.convert_CharSet.UDF"
if %ERRORLEVEL% NEQ 0 goto errors
我一会试试