sql 加密
use Tempdb
go
if object_ID ( 'fn_ACITEncryption' ) is not null
drop function fn_ACITEncryption
go
create function fn_ACITEncryption
(
@Str nvarchar ( 4000), -- 加密的字符串
@Flag bit = 1, --1 、加密 0 、解密
@Key nvarchar ( 50) -- 密文
)
returns nvarchar ( 4000) -- 這里可轉換成二進制
with Encryption
as
begin
Declare @LenStr int , @i int , @Str2 nvarchar ( 4000), @Split nvarchar ( 2), @LenKey int
select @Str= @Str+ 'A' , @LenStr= len ( @Str), @i= 1, @Str2= '' , @LenKey= Len ( @Key+ 'A' )- 1
while @i< @LenStr
select @Split= substring ( @Str, @i, 1),
@Split= nchar (( unicode ( @Split)+ case @Flag when 1 then unicode ( substring ( @Key+ 'A' , @i% @LenKey+ 1, 1))- 1
when 0 then 65535- unicode ( substring ( @Key+ 'A' , @i% @LenKey+ 1, 1))
else 0 end )% 65535+ cast ( @Flag as int )),
@Str2= @Str2+ @Split, @i= @i+ 1
return @Str2
end
go
select dbo. fn_ACITEncryption( N'Roy' , 1, '123' ) as 加密后字符串
/*
加密后字符串
------------------------------
(1 個資料列受到影響 )
*/
select dbo. fn_ACITEncryption( N, 0, '123' ) as 解密后字符串
/*
解密后字符串
--------------------------
Roy
(1 個資料列受到影響 )
*/
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/roy_88/archive/2009/11/12/4801917.aspx
相关文档:
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库CREATE ......
--处理示例
--示例数据
create table tb(ID int,Name varchar(10),ParentID int)
insert tb select 1,'AAAA' ,0
union all select 2,'BBBB' ,0
union all select 3,'CCCC' ,0
union all select 4,'AAAA-1' ,1
union all select 5,'AAAA-2' ,1
u ......
select语句中只能使用sql函数对字段进行操作(链接sql server),
select 字段1 from 表1 where 字段1.IndexOf("云")=1;
这条语句不对的原因是indexof()函数不是sql函数,改成sql对应的函数就可以了。
left()是sql函数。
select 字段1 from 表1 where charindex('云',字段1)=1; 字符串函数对二进制数据、字符串和 ......
解决方法一
在oraDb10g_home->配置和移植工具->net Manager
在本地中新建一个服务命名
这个网络服务名就是登陆时的数据库名
完成这些操作后,选择菜单中文件->保存网络配置就ok了。
解决方法二
打开安装目录下服务器端的tnsnames.ora,比如我的完整目录是E:\oracle\product\ ......