SQLServer中使用javascript脚本验证数据_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

SQLServer中使用javascript脚本验证数据

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:验证数据脚本使用
黑客防线网安网讯:  SQLServer中用sp_OACreate等一系列系统存储过程可以调用服务器上的Com对象,因此可以通过调用COM使得T-SQL站在巨人的肩膀上,但这需要很高的权限。 比如下面的测试脚本示范了通过调用ja...

  SQLServer中用sp_OACreate等一系列系统存储过程可以调用服务器上的Com对象因此可以通过调用COM使得T-SQL站在巨人的肩膀上但这需要很高的权限 比如下面的测试脚本示范了通过调用javascript来实现用正则表达式验证数据表中Email的功能,你如果用过系统函数中类似isdate,isnumeric之类的功能就会去努力尝试用同样方便的方法实现自己的特定验证

--如果SQL2005提示没有权限则打开Ole Automation Procedures
--exec sp_configure 'show advanced options',1
--reconfigure
--exec sp_configure 'Ole Automation Procedures',1
--reconfigure
--测试email
create function isEmail(@value varchar(100))
returns bit
as
begin
  declare @object int
  declare @v bit
  declare @str varchar(8000)
  --javascript的正则表达式定义和调用语句
  set @str='var reg=/^w+[+.w-]*@([w-]+.)*w+[w-]*.([a-z]{2,3}|d+)$/i;reg.test("'+@value+'")'
  --调用脚本组件来执行脚本
  exec sp_OACreate 'MSScriptControl.ScriptControl',@object output 
  exec sp_OASetProperty @object, 'Language','javascript'
  exec sp_OAMethod @object, 'eval', @v out,@str
  --销毁com对象
  exec sp_OADestroy @object
  return @v
end
go
--测试函数
select * from(
  select 'aa.bb.com' as email union
  select 'aa@bb.com' union
  select 'aa.bb@com' union
  select 'aa@bb@com' ) a
  where dbo.isEmail(email)=1
go
--删除测试环境
drop function isEmail
go
/*----------------输出结果
email
---------
aa@bb.com
-----------------------*/

  Com能够实现的功能很多,有人会用sqlserver调用xmlhttp去获取网页数据,还有人用office组件去做简体和繁体的转换,甚至可以自己开发Com组件,但那样还不如去写扩展存储过程了。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9748-1.html
网站维护教程更新时间:2012-03-21 02:24:41  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer