--问题:将aa转换为Int类型失败 string aa="3,5,11,56,88,45,23"; select * from ERPBuMen where ID in(aa) ; --方法select * from ERPBuMen where charindex(','+ltrim(ID)+',',','+'3,5,11,56,88,45,23'+',')>0 ltrim(rtrim(m.cust_id)) 去掉cust_id字段的左右空格 CHARINDEX 返回字符串中…
消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,7' 转换成数据类型 int 时失败. 原sql select  UserName from s_User  where Id in ( select UndertakerList from ZW_HandlerSend where HsID=7 ) 改成 select  UserName from s_User  where  charindex(rtrim(Id), (select top 1 Undertaker…
假设有存储过程:proc_test2 create proc proc_test2 @Id int begin as declare @sql varchar(max) @sql = 'select * from test2 where 1=1' if @Id <> 0 set @sql += ' and Id = ' +@Id exec (@sql) end 存储过程需要的参数是int类型,按道理直接传值(+@Id)是没有问题的,但是在执行存储过程的时候,却弹出 “sql 在将 nvarch…
调试别人的存储过程,然后报错了 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败 这让我一通找.找了一个多小时. 通过这个错可以知道,错误肯定是在联表 字段.UNION 之间.如果有其他情况会补充. UNION  All  两个表.如果表字段类型不同,sql默认会强转. 例子来了~~~~ 博客园这个渣,不能插入代码了. 图片居然也不能搞了~ pasting  SELECT * FROM [dbo].[t_U1]  SELECT * FROM [dbo]…
alter PROCEDURE PrTradingDelete ) AS BEGIN WHERE id in(@id) END GO 执行上面这个存储过程会异常.提示 :在将 varchar 值 '1,2,3,4,5,6,7,8' 转换成数据类型 int 时失败. 将存储过程更改为: alter PROCEDURE PrTradingDelete ) AS BEGIN ; END GO 可以正常执行了.…
MSSQL  错误:在将 varchar 值 '1,2,3,5,6' 转换成数据类型 int 时失败.…
select * from table where title like '%'?'%'; 采用? 传参会报错:sql server like 在将值转换成数据类型int失败 select * from table where title like '%str%'; 采用字符串拼接就OK,way?…
错误问题: 消息 245,级别 16,状态 1,第 1 行在将 varchar 值 '2,8' 转换成数据类型 int 时失败. ps: 这是在后台分配菜单权限这个功能时出现的问题 一,解决方法: 将用户表和菜单表用CHARINDEX方法来选择存在的rows,返回集合, SELECT * FROM dbo.Meun m WHERE CHARINDEX(CONVERT(VARCHAR, m.Id), ( SELECT AuthorityId FROM dbo.UserInfo u WHERE u.…
有执行sql条件语句where id in(@参数)的时候,如果处理不当,就会出现问题:如下面这个存储过程: alter proc Web_gettwtwgoldgameserverGoldSell@ID int asdeclare @twgoldsellID nvarchar(1000)select @twgoldsellID=twgoldsellID from twgoldgameserver where ID=@IDset @twgoldsellID=replace(@twgoldsell…
   今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所看到的:      经百度:字符串变量和整型变量连接不能用+连接. 于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了. 正确代码例如以下所看到的: ALTER PROCEDURE [dbo].[Proc_SH_WXJDLi…
解决办法 string userIds = "1,2,3,4";using (SqlConnection conn = new SqlConnection(connectionString)){ conn.Open(); SqlCommand comm = new SqlCommand(); comm.Connection = conn; comm.CommandText = string.Format("select * from Users(nolock) where U…
把int类型的值修改为varchar类型的值…
我们有时候用in语句的时候,发现存在Sql注入漏洞,想参数化处理一下,遇到语句执行问题!! declare @ids varchar() set @ids='216,218' select * from tbl_temp where id in(@ids) 但是还是必须要解决Sql注入的问题,解决方案:利用CHARINDEX系统函数处理 declare @ids varchar() set @ids='216,218' 查到正确的数据结果.…
最近做oracle和sqlserver数据库兼容,感觉sqlserver真心没oracle好用,存储过程竟然只能返回int类型,疯了 疯了 存储过程的output及return的区别 sql取整 ceiling() RETURN从查询或过程中无条件退出.RETURN 即时且完全,可在任何时候用于从过程.批处理或语句块中退出.不执行位于 RETURN 之后的语句.返回的整型值.存储过程可以给调用过程或应用程序返回整型值 除非特别指明,所有系统存储过程返回 0 值表示成功,返回非零值则表示失败. 当…
系统:WIndows 10 工具:Visual Studio 2017 在写代码的过程中,我遇到了这样的一个问题.如图 vs错误提示是在SqlHelper中有错,可是怎么改都不能解决问题. 最后发现是前端往后端传数据的时候,多写了一个Id,如图 在下面编号中我已经回传了一个Id的值,就不再需要一个hidden来再回传Id. 当回传两个Id值的时候,后端程序会全部接受,并且用逗号分隔,就会出现转换错误的问题. 删掉我圈出的代码就可以了.…
今天遇到一个这样的错误,具体的报错情况如下 解决的方案如下. 数据库MSSQL在比较大小时,出错提示:“将 varchar 值 '24.5' 转换为数据类型为 int 的列时发生语法错!”分析数据库设计列时的类型为VARCHAR,当搜索比较语句执行 “select * from datalist where price>10 order by id ”时即报告以上错误.   琢磨下,只要price列里含有小数,就出错,而price为varchar类型,必须转换为数字类型. 可以这样改写:“sel…
原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免会遇到. 今天我写了个存储过程来解决这种问题.主要方式是利用master..spt_values表. 具体存储过程如下: -- Author: LHM -- Create date: 2015-01-10 -- Description: 把…
在一个医药行业的系统中需要根据患者的接触记录ID获取不同接触类型的集合,效果像这样     --患者接触记录信息,一个患者可以有N个不同的接触记录,每个接触记录又有N个接触类型记录 IF OBJECT_ID ('dbo.TEST') IS NOT NULL DROP TABLE dbo.TEST GO CREATE TABLE dbo.TEST ( ID ,) NOT NULL, cid INT,--接触记录号 REMARK ), CONTACTTYPE ), DESCRIBE ), ADDDA…
我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免会遇到. 今天我写了个存储过程来解决这种问题.主要方式是利用master..spt_values表. 具体存储过程如下: -- Author: LHM -- Create date: 2015-01-10 -- Description: 把表中某一个列按照逗号拼接列表 --示例: EXEC [Sp_Str…
如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例: 比如有一个字符串,其值为:香港,张家港,北京,上海用SQL把这个字符串转换成列表的方法是: 1.方法一 WITH A AS (SELECT '香港,张家港,北京,上海' A FROM DUAL) ,SUBSTR(A,C),SUBSTR(A,C,B-C)) city FROM ( ,) C FROM( ,LEVEL) B,LEVEL LV FROM A CONNECT ) ) 输出结果是: 香港 张家港 北京 上海 应用举例:如果t…
+ (NSString *)replaceUnicode:(NSString *)unicodeStr  {             NSString *tempStr1 = [unicodeStrstringByReplacingOccurrencesOfString:@"\\u"withString:@"\\U"];      NSString *tempStr2 = [tempStr1stringByReplacingOccurrencesOfString:@…
  我们日常开发过程中,非常常见的一种需求,把某一个用逗号或者/或者其他符号作为间隔的字符串分隔成一张表数据. 在前面我们介绍了 [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式,当然按照这种方式转变一下也是可以实现的,但是我这里有以前我一直使用的另外一种方式,也记录一下吧. 依照惯例,我们首先来看看效果. 调用:SELECT Id FROM [Fn_StringSplitToTable]('1,12,36,65,58,56,DF',',') 具体函数如下: -- ==========…
sql中varchar的默认值为null 当在页面绑定数据时就会出现无法绑定情况此时就需要在查询时转换为空,, isnull(key,'')  key 为字段名,后面的参数就是空值…
合并列值 表结构,数据如下: id value ----- ------ aa bb aaa bbb ccc 需要得到结果: id values ------ ----------- aa,bb aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) . 旧的解决方法(在sql server 2000中只能用函数解决.) --. 创建处理函数 create table tb(id )) insert into tb values(, 'aa') insert i…
sql中varchar(n),nvarchar(n) 长度性能及所占空间分析 1.varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 2.所占空间: nvarchar(n)一个字符会占两个字节空间. varchar(n)中文占两字节空间,英文占一个. 3.n的取值范围: nvarchar(n)   n的范围是:1与4000之间 varchar(n)   n的范围是:1与…
SQL中varchar和nvarchar的基本介绍及其区别 varchar(n) 长度为 n 个字节的可变长度且非 Unicode 的字符数据.n 必须是一个介于 1 和 8,000 之间的数值.存储大小为输入数据的字节的实际长度,而不是 n 个字节. nvarchar(n) 包含 n 个字符的可变长度 Unicode 字符数据.n 的值必须介于 1 与 4,000 之间.字节的存储大小是所输入字符个数的两倍. 两字段分别有字段值:我和coffee 那么varchar字段占2×2+6=10个字节…
问题是: 我是这样解决的  : 网上的 转型方法 并不好使 ,我想了想 可能是由于返回值是String  我 就成功的解决错误了  ..下面是关于原理的讲解肯定方法不唯一   至于错误,的产生,这个肯能和数据库  myeclpise 之间的接口有关系 ,数据存储来回转换.这就当一个经验,有这个函数 ,以后项目有错误就这样解决.学以致用嘛,嘿嘿 java和数据库之间的日期和时间转换 第一种: Date time= new java.sql.Date(new java.util.Date().get…
目录(?)[+] 1. 问题起因 最近在进行Oracle的一些操作时,总会遇到这个错误:  ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小,错误如下: ORA-00604: 递归 SQL 级别 1 出现错误 ORA-06502: PL/SQL: 数字或值错误 :  字符串缓冲区太小 ORA-06512: 在 line 7 2.官方解释 查看官方文档上的解释: ORA-06502: PL/SQL: numeric or value errorstring Cause:…
Sql语句varchar或nvarchar字段条件前加N的话是对这个字段进行Unicode编码, 这样做的目的是避免在这种字段中存入俄文.韩文.日文的情况下有可能会出现乱码. 但这样做也会有性能问题,举例如下: SELECT * FROM UserInfo WHERE Name = N'taiyonghai' 查询时会解析器会认为[人为因素优先],你加了N他会理解为你希望用编码后的结果作对比, 所以会先对数据表中的Name字段的[所有数据进行Unicode编码],再进行对比 SELECT * F…
SQL语句的分类: DDL: Data Define Language,数据定义语言——定义列 CREATE / DROP / ALTER / TRUNCATE DML: Data Manipulate Language,数据操作语言——操作行 INSERT / DELETE / UPDATE DQL: Data Query Language,数据查询语言——不影响数据 SELECT DCL: Data Control Language,数据控制语言——控制权限 GRANT / REVOKE m…