`

用于执行(计算) "字符串表达式" 的 T-SQL 存储过程

 
阅读更多

如果不滤除危险字符小心 SQL 注入攻击

create procedure sp_CalcExpression
@Expression varchar(8000)
,@ decimal(10,2) out
as
declare @sql nvarchar(4000)
set @sql = N'set @ = ' + @Expression
exec SP_EXECUTESQL @sql ,N'@ decimal(10,2) out', @ out
select @

--==============================
--调用示例:
declare @x decimal(10,2)
exec sp_CalcExpression '(100 + 2.1)*0.01', @x out
select @x

--==============================
--相关帖子:
数据varbinary与varchar变换的问题
http://community.csdn.net/Expert/TopicView.asp?id=3619946

请教一个数据类型转换的问题
http://community.csdn.net/Expert/TopicView.asp?id=3569862

--================
--下面是支持 SQL 其他内置函数的
create procedure sp_ExecExpression
@Expression varchar(8000)
,@ varchar(8000) out
as
declare @sql nvarchar(4000)
set @sql = N'set @ = ' + @Expression
exec SP_EXECUTESQL @sql ,N'@ varchar(8000) out', @ out
select @

--调用示例:
declare @x varchar(100)
exec sp_ExecExpression 'left(''aBcD'',2)',@x

分享到:
评论

相关推荐

    模仿SQL语句的正则表达式

    模仿SQL语句的正则表达式练习,是我学习正则表达式过程中,对字符串经常sql语句匹配,达到练习正则表达式的目的。语句中包括了,"创建超级用户权限,"*.*"代表数据库里的所有数据,"root"代表超级用户名称,"%"代表...

    ASP和SQL网站数据库程序设计(DOC)

    8-1-2 字符串表达式 209 8-1-3 比较表达式 209 8-1-4 逻辑表达式 210 8-1-5 表达式的优先级 210 8-2 Transact-SQL数据类型 211 8-3 Transact-SQL 函数 213 8-4 Query Analyzer工具程序 220 8-5 Transact-...

    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别.doc

    3、EXEC 执行纯动态SQL,执行时可能无法使用预编译的执行计划,关键是不安全,可以导致 SQL 注入 ,而 SP_EXECUTESQL 执行参数化动态 SQL ,执行时能使用预编译的执行计划,而且保存存储过程时就可以确定可以使用的预...

    ASP与SQL网页数据库程序设计

    Transact-SQL语法基础…………….207 8-1 Transact-SQL 表达式 208 8-1-1 数学表达式 208 8-1-2 字符串表达式 209 8-1-3 比较表达式 209 8-1-4 逻辑表达式 210 8-1-5 表达式的优先级 210 ...

    php中常见的sql攻击正则表达式汇总

    本文实例讲述了php中常见的sql...注:正则表达式中 ^[a-z] 表示字符串中开始字符是在 a-z范围内 复制代码 代码如下:index.php?id=1 and 1=(SELECT 1 FROM information_schema.tables WHERE TABLE_SCHEMA=”blind_sqli”

    SQL Server2005基础教程

     8.13 字符串函数  8.14 顺序!顺序!  8.15 LIKE运算符  8.16 生成数据:SELECT INTO  8.17 谁能添加、删除或选取数据  8.18 更新数据  8.19 事务  8.20 删除数据  8.21 截断表(删除表中的所有...

    精通sql结构化查询语句

    12.5.1 创建默认值 12.5.2 默认值的绑定与松绑 12.6 小结第5篇 T-SQL高级编程篇第13章 存储过程 13.1 存储过程概述 13.1.1 存储过程的基本概念 13.1.2 存储过程的优缺点 13.2 存储过程中常用的流控制语句 13.2.1 IF....

    Microsoft SQL Server 2005 Express Edition SP3

    此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储过程。为了避免出现此类问题,您必须在安装有 SQL Server Express 的服务器中完全启用 MS DTC 服务。 若要完全启用 MS DTC,请执行下列操作: 在...

    精髓Oralcle讲课笔记

    --(将sal的查询结果转化为字符串,与ename连接到一起,相当于Java中的字符串连接) 7、select ename||'afasjkj' from emp; --字符串的连接 8、select distinct deptno from emp; --消除deptno字段重复的值 9、...

    SQL21日自学通

    字符串类型377 数值数据类型378 二进制数据类型378 日期数据类型378 逻辑数据类型378 ROWID379 PL/SQL 块的结构379 注释380 DECLARE 部分380 变量声明380 常量定义381 指针定义381 %TYPE 属性382 %ROWTYPE 属性382 %...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    sql2005教程

    SQL2005中利用xml拆分字符串序列 SQLSERVER2005中分区表的设计 安装SQL Server 2005 时报“-2146233087”错误的解决办法 将Excel表导入到SQL Server 2005 的DB 中文系统上重装SQL Server 2005 英文版的问题 (转...

    SQL注入攻击与防御

    3.2.4 复查PL/SQL和T-SQL代码 88 3.3 自动复查源代码第1章 什么是SQL注入 94 3.3.1 YASCA 96 3.3.2 Pixy 96 3.3.3 AppCodeScan 97 3.3.4 LAPSE 97 3.3.5 SWAAT 97 3.3.6 Microsoft SQL注入源代码分析器 98 3.3.7 CAT...

    SQL注入攻击与防御(安全技术经典译丛)

     3.2.4 复查PL/SQL和T-SQL代码  3.3 自动复查源代码第1章 什么是SQL注入  3.3.1 YASCA  3.3.2 Pixy  3.3.3 AppCodeScan  3.3.4 LAPSE  3.3.5 SWAAT  3.3.6 Microsoft SQL注入源代码分析器  3.3.7 ...

    SQL培训第一期

    用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 1.9.2 准备 create table t_user ( username varchar2(20), password varchar2(20) ); create table t_user_temp ( username varchar...

    SQL示例大全.pdf

    以下示例显示使用 sp_executesql 执行动态生成的字符串。该示例中的存储过程用于向一组表中插入数据,这些表用于划分一年的销售数据。一年中的每个月均有一个表,格式如下: CREATE TABLE May1998Sales (OrderID ...

    SQL sever 实训

    SQL sever 2008 Rar! ?s X<t ? ? ? ?祕BwL0 17240671-1.sql ?<9--2018年3月9日 --1.查询course表的所有信息(所有行所有列) USE Xk GO SELECT * FROM Course --有哪些种类的选修课?学分是多少 USE XK GO SELECT...

    分页存储过程整理(三种方法)

    分页存储过程整理: 1.拼字符串 2.SQL2005 TOP (表达式) 新功能 3.通过SQL2005 ROW_NUMBER 使用,易用。

    c++ 面试题 总结

    ==strcpy拷贝的结束标志是查找字符串中的\0 因此如果字符串中没有遇到\0的话 会一直复制,直到遇到\0,上面的123都因此产生越界的情况 建议使用 strncpy 和 memcpy ---------------------------------------------...

    node-mppg:物化路径模式生成器-SQL数据库中的树

    “物化路径”模式需要使用字符串和正则表达式的其他步骤,但是mppg可以帮助实现这一点。 该模式在使用路径时也提供了更大的灵活性,例如通过部分路径查找节点。 正在安装 请注意, mppg被transpiled并包括有关...

Global site tag (gtag.js) - Google Analytics