存储过程中拼接sql的示例】的更多相关文章

create or replace package body CRF_CMS_DOCTOR_PKG is --根据医院查询医生PROCEDURE P_HOSPITALBYDOCTOR_LIST ( v_HOSPITAL_ID IN NUMERIC, v_DEPT_ID IN NUMERIC, v_JOBTITLE_ID IN NUMERIC, v_USER_NAME IN VARCHAR2, v_MOBILE IN VARCHAR2, v_DIMDOCTOR_LIST OUT DOCTDRSOR…
很多时候我们需要利用参数在存储过程中重新组织SQL语句,在存储过程中拼接的SQL语句只是一个字符串,不会被直接执行,所以加一个execute执行它就可以了.具体看如下演示代码: 代码: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go -- ============================================= -- Author:      yy -- Create date: 2012-1-17 -- Description: 存…
一个朋友问我一个问题,他写了一个存储过程,并在存储过程调用了另外一个自定义的函数.该函数返回类型如'1,34,56'的字符串,并将该字符串作为存储过程的select的id条件. begin DECLARE my_id integer(); set @var = func_name(); // var = '1,456'; select id into @my_id from student where id in(@var); return @my_id; end; select语句in里的是函…
ALTER PROCEDURE [dbo].[proc_test] ( ) = ' order by id desc ', @userid int, @stime datetime, @etime datetime ) AS BEGIN )=''; --where条件 ); -- 主语句 ); -- 参数 -------拼接where条件--------------------------------------------------------------------- ) begin SE…
ALTER PROC [dbo].[Student_Friend_Get] @startRowIndexId INT, @maxNumberRows INT, @schoolId INT, @gradeId INT, @cId INT, @keyWords NVARCHAR(100), @userName VARCHAR(50) AS BEGIN DECLARE @sqlfilter VARCHAR(max) SET @sqlfilter = ' ' IF(@schoolId <> -1) S…
今天遇到了一个奇葩的问题:存储过程中的sql字符串拼接的太长,超出了分页存储过程执行sql参数的nvarchar(4000)的长度. 没办法,只能修改自己的存储过程,因为分页存储过程是不能动的. 开始想到的方法是将里层的select语句抽出来,用exec(strInnerSql)执行,将查询胡来的数据放到临时表中,在@s中用临时表获取数据,结果以时报告终 错误原因:执行@s语句的时候找不到执行exec(strInnerSql)产生的临时表 好郁闷啊,怎么会这样呢,明明在一个存储过程中执行的,怎么…
这里我昨天碰到的问题就是执行一段根据变量tableName对不同的表进行字段状态的更改.由于服务器原因,我不能直接在数据访问层写SQL,所以只好抽离出来放到存储过程里面. 这里就出现了一个问题,我花费了好久才弄通! 其实就是很简单的一个SQL语句: update table1 set field1=value1,field2 = value2 where id = id 我写成什么样子了呢?大家且看: ), @field1 int, @field2 nvarchar, @id int decla…
)) BEGIN ## 定义变量 ,) ; ## @表示全局变量 相当于php $ ## 拼接赋值 INTO 必须要用全局变量不然语句会报错 SET @strsql = CONCAT('SELECT SUM(',_xnb,') INTO @tnum FROM btc_user_coin'); ## 预处理需要执行的动态SQL,其中stmt是一个变量 PREPARE stmt FROM @strsql; ## 执行SQL语句 EXECUTE stmt; ## 释放掉预处理段 deallocate…
在SQL Server数据库中书写复杂的存储过程时,一般的做法是拼接字符串,最后使用EXEC sp_executesql '拼接的字符串' 查询出结果. 先看一段代码: -- ============================================= -- Author: XXX -- Create date: 2014-09-19 -- Description: 获取学生列表信息 -- =============================================…
请看黄色部分 --区县指标 THEN TVALUE_SQL := 'SELECT TO_CHAR(' || CUR_ROW.MAIN_FIELD || ') FROM ' || CUR_ROW.END_TABLE || '_' || CUR_MONTH || ' WHERE TO_CHAR(DISTRICT_ID)=''' || CUR_ROW.E_DISTRICT_ID || ''''; ELSE --客户经理指标 TVALUE_SQL := 'SELECT TO_CHAR(' || CUR_…