2 godlujinshen GODLUJINSHEN 于 2016.04.18 18:57 提问

存储过程执行SQL与Print SQL语句单独执行结果不同

代码如下:
DECLARE @SQLEX1 nVARCHAR(MAX)
DECLARE @TempEX1 VARCHAR(MAX)
SELECT @SQLEX1 = ''
SELECT @TempEX1 = ''
SET @SQLEX1 = 'SELECT @Temp3 = A.T FROM (SELECT T = REPLACE((SELECT DISTINCT ''20'' AS ''machine/@id1'',1 AS ''machine/@actionId''
FROM TEKIOUKISYU_適応機種 AS TK WHERE IUINDEX = ''' + @IUID +'''
AND MDPACKKATAMEI = '''+@MDPACKKATAMEI+''' AND ID3 = ''' + @Tekiouos
+ ''' FOR XML PATH(''machineSupport'')),''/>'',''/>''+ISNULL((SELECT DISTINCT ID AS ''@id'' FROM TEXTINFO
INNER JOIN (SELECT DISTINCT IUINDEX,MDPACKKATAMEI,BPQ20001000 AS BK FROM TEKIOUKISYU_適応機種
WHERE BPQ20001000 <> '''' AND ID3 = '''+@Tekiouos+''' AND MDPACKKATAMEI = '''+@MDPACKKATAMEI+''' AND IUINDEX = '''+@IUID+''' ) AS IPT
ON IPT.IUINDEX = TEXTINFO.IUINDEX AND IPT.MDPACKKATAMEI = TEXTINFO.MDPACKKATAMEI WHERE TEXTINFO.NAME LIKE ''[0-9]%''
AND RDBv6.dbo.findRegex(VALUE,CASE WHEN IPT.BK = '''' THEN ''#'' ELSE IPT.BK END,0) = 1 FOR XML PATH(''noteRef''),
ROOT(''noteRefs'')),''''))) A WHERE A.T LIKE ''%actionId%'''
print @SQLEX1
EXEC sp_executesql @SQLEX1,N'@Temp3 varchar(max) output',@TempEX1 output
该段代码嵌套在一个游标中,@SQLEX1返回值@Temp3在执行的sp_executesql时返回“”而使用Print出来的语句单独执行时返回“”
求大神帮忙啊,是在不懂为什么会出现这种情况

2个回答

GODLUJINSHEN
GODLUJINSHEN   2016.04.18 19:00

求大神帮忙啊,求大神帮忙啊

CSDNXIAOD
CSDNXIAOD   2016.04.18 19:02

在nhibernate中执行SQL语句和存储过程
在nhibernate中执行SQL语句和存储过程
用SQL语句创建存储过程,并执行
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
执行存储过程与单独执行存储过程中的SQL查询速度不一致
表象:执行存储过程超时,把存储过程中的SQL单独拿出来执行不超时。 诊断: SET QUOTED_IDENTIFIER { ON | OFF } --原值为 OFF 改为 ON 问题解决 SET QUOTED_IDENTIFIER ON GO 是什么意思? 语法 SET QUOTED_IDENTIFIER { ON | OFF } 注释 当 SET QUOTED_ID
奇怪!同一条sql语句在数据库和代码中执行结果不同?!当然是人错了 ……
sql语句就是它:      select count(1) from syscolumns where [id]=object_id( 'tablecommon' )       判断数据库中是否存在表tablecommon,本想让在数据库中查到的值返回到程序里,值却总不是想要的:     程序里返回 -1     sql里返回大于0的值(意为存在该表)
[PL/SQL] oracle sql语句 存储过程执行慢,单独执行快
1、执行计划情况 当存储过程挂住的时候,看看V$SESSION里面的 SQL_ID, SQL_CHILD_NUMBER 再根据这两个信息用DBMS_XPLAN.DISPLAY_CURSOR把计划拿出来看看。 2、锁表情况 Oracle: select  ao.owner,ao.object_name,lo.LOCKED_MODE,lo.OS_USE
Sql Server中用Print命令轻松调试【存储过程】的技巧或经验!
Sql Server中用Print命令轻松调试【存储过程】的技巧或经验! 经常为存储过程的调试犯愁,通过不断的调试,终于找到一个简单的方法: 1、在存储过程中,用【print】输出,来判断错误问题点。 2、关键是这一步,执行存储过程时,一定要用 EXEC [info]  -- 直接运行存储过程,不要用return参数那种运行。
在Oracle中不通过存储过程一次执行多条SQL语句Oracle PL/SQL
  PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE 服务器和其他工具中了,近几年中更多的开发人员和DBA开始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件、以及如何设计并执行一个PL/SQL程序。  PL/SQL的优点  从版本6开始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的优点以及其独有的数据管理的便
sql 查询存储过程、sql执行情况
--某个库中存储过程平均耗时 SELECT TOP ( 25 )         p.name AS [SP Name] ,         qs.total_elapsed_time / qs.execution_count AS [avg_elapsed_time] ,         qs.total_elapsed_time ,         qs.execution_coun
把SQL语句整个做参数传进存储过程查询或者执行
执行::CREATE OR REPLACE PROCEDURE "DYNAMIC_SQL"(    sqlstatement IN  VARCHAR2)-- Author:Andy Xie-- Date:2006-09-06-- Desc: execute the sql statementISBEGIN    EXECUTE IMMEDIATE sqlstatement;    --EXEC
oracle 存储过程执行可输入sql语句并返回结果集
1.建立测试表: create table AAA (   aa NVARCHAR2(100),   bb NVARCHAR2(100),   cc NVARCHAR2(100),   dd NVARCHAR2(100) ) 并导入测试数据insert into aaa values('1','1','1','1'); 2.测试可行性: DECLARE        v_
mysql 存储过程 根据参数 动态执行sql语句
#输入用户名查询记录 不输入用户名为全查询 DELIMITER// DROP PROCEDURE IF EXISTS userinfoByParamter// CREATE PROCEDURE userinfoByParamter ( userName VARCHAR(50)) BEGIN DECLARE stmt VARCHAR(2000); #如果用户名长度大于0
mysql存储过程执行动态sql语句并返回值
Java代码 set @sql=’xxx’; prepare stmt from @sql; execute stmt; deallocate prepare stmt; select @curd1; set @sql=’xxx’; prepare stmt from @sql; execute stmt; deallocate prepare stmt; sele