- 浏览: 1304433 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kay11:
...
JAVA生成简单的随机字符串(a-zA-Z0-9) -
zhangliguoaccp:
您好关于登录页面的验验证码这块怎么解决的?还有登录成功后,跳转 ...
JAVA,模拟HTTP登录 -
107x:
不错,谢谢!
<c:foreach 循环 map -
wenjin:
不知楼主是不还在想请叫一下我自己开的Tomcat下载一个文件C ...
Android 下载文件及写入SD卡 -
zyywgf:
JSTL c标签,fn标签,fmt标签
简化 Java 编程语言数据类型到 SQL Server 数据类型的转换,Microsoft SQL Server JDBC Driver 根据 JDBC 规范的要求提供了数据类型转换。为了提高灵活性,所有类型都可以与 Object、String 和 byte[] 数据类型相互转换。
基于 SQL Server 的数据类型,以下图表包含 SQLServerResultSet 类的 get<Type>() 方法的 JDBC Driver 转换图,以及 SQLServerCallableStatement 类的 get<Type> 方法支持的转换。
JDBC Driver 的 getter 方法支持三类转换:
-
非丢失 (x):适用于 getter 类型与基础服务器类型相同或者小于基础服务器类型时的转换。例如,对基础服务器十进制数列调用 getBigDecimal 时,无需进行转换。
-
已转换 (y):从数值服务器类型转换为 Java 语言类型,其中转换是常规的并遵循 Java 语言转换规则。对于这些转换,总是直接截取有效位数(从不四舍五入),而溢出则按目标类型取模处理,以较小者为准。例如,对于包含“1.9999”的基础 decimal 列调用 getInt 时将返回“1”,或者,如果基础 decimal 值为“3000000000”,则 int 值溢出为“-1294967296”。
-
依赖于数据 (z):如果从基础字符类型转换到数值类型,则要求字符类型包含可转换为数值类型的值。不执行其他转换。如果值对于 getter 类型过大,则该值无效。例如,如果对包含“53”的 varchar(50) 列调用 getInt,则值将作为 int 返回;如果基础值为“xyz”或“3000000000”,则将引发错误。
如果对 binary、varbinary、varbinary(max) 或 image 列数据类型调用 getString,则值将作为十六进制字符串值返回。
对于传递给 SQLServerResultSet 类的 update<Type>() 方法的 Java 类型的数据,可应用下列转换。
JDBC Driver 的 updater 方法支持三类转换:
-
非丢失 (x):适用于 updater 类型与基础服务器类型相同或者小于基础服务器类型时的转换。例如,对基础服务器十进制数列调用 updateBigDecimal 时,无需进行转换。
-
已转换 (y):从数值服务器类型转换为 Java 语言类型,其中转换是常规的并遵循 Java 语言转换规则。对于这些转换,总是直接截取有效位数(从不四舍五入),而溢出则按目标(较小者)类型取模处理。例如,对包含“1.9999”的基础 int 列调用 updateDecimal 时将返回“1”,如果基础 decimal 值为“3000000000”,则 int 值溢出为“-1294967296”。
-
依赖于数据 (z):如果从基础源数据类型转换到目标数据类型,则要求源数据类型包含可转换为目标数据类型的值。不执行其他转换。如果值对于 getter 类型过大,则该值无效。例如,如果对包含“53”的 int 列调用 updateString,更新将成功;如果基础字符串值为“foo”或“3000000000”,将引发错误。
对 binary、varbinary、varbinary(max) 或 image 列数据类型调用 updateString 时,会将字符串值作为十六进制字符串值进行处理。
当 SQL Server 列的数据类型为 XML 时,数据值必须是有效的 XML。调用 updateBytes、updateBinaryStream 或 updateBlob 方法时,数据值应为 XML 字符的十六进制字符串表示形式。 例如:
请注意,如果 XML 字符使用特殊的字符编码,则需要字节顺序标记 (BOM)。
对于传递给 SQLServerPreparedStatement 类和 SQLServerCallableStatement 类的 set<Type>() 方法的 Java 类型的数据,可应用下列转换。
服务器会尝试所有转换,并在失败时返回错误。
对于 String 数据类型,如果值超过了 VARCHAR 的长度,则将映射为 LONGVARCHAR。同样,对于 NVARCHAR 数据类型,如果值超过了 NVARCHAR 的支持长度,则将映射为 LONGNVARCHAR。这同样适用于 byte[]。比 VARBINARY 长的值将成为 LONGVARBINARY。
JDBC Driver 的 setter 方法支持两类转换:
-
非丢失 (x):适用于 setter 类型与基础服务器类型相同或者小于基础服务器类型时的数值转换。例如,当对基础服务器 decimal 列调用 setBigDecimal 时,不需要进行转换。对于数值转换为字符的情形,Java numeric 数据类型转换为 String。例如,使用值“53”对 varchar(50) 列调用 setDouble 时将在该目标列中生成字符值“53”。
-
已转换 (y):从 Java numeric 类型转换为更小的基础服务器 numeric 类型。该转换为常规转换,并且遵循 SQL Server 转换约定。总是直接截取有效位数(从不四舍五入),而溢出将引发“不支持的转换”错误。例如,通过值“1.9999”对基础整数列使用 updateDecimal 时,将在目标列中生成“1”;但如果传递的值为“3000000000”,驱动程序将引发错误。
-
依赖于数据 (z):从 Java String 类型转换到基础 SQL Server 数据类型取决于以下条件:如有必要,驱动程序会将 String 值发送给 SQL Server,SQL Server 再执行转换。如果 sendStringParametersAsUnicode 设置为 True,并且基础 SQL Server 数据类型为 image,SQL Server 将不允许将 nvarchar 转换为 image并会引发 SQLServerException。如果 sendStringParametersAsUnicode 设置为 False,并且基础 SQL Server 数据类型为 image,SQL Server 将允许将 varchar 转换为 image,而不会引发异常。
SQL Server 执行转换,并在出现问题时将错误传回 JDBC Driver。
当 SQL Server 列的数据类型为 XML 时,数据值必须是有效的 XML。调用 updateBytes、updateBinaryStream 或 updateBlob 方法时,数据值应为 XML 字符的十六进制字符串表示形式。 例如:<hello>world</hello> = 0x3C68656C6C6F3E776F726C643C2F68656C6C6F3E
请注意,如果 XML 字符使用特殊的字符编码,则需要字节顺序标记 (BOM)。
对于传递给 SQLServerPreparedStatement 类的 setObject(<Type>) 方法的 Java 类型的数据,可应用下列转换。
没有指定目标类型的 setObject 方法将使用默认映射。对于 String 数据类型,如果值超过了 VARCHAR 的长度,则将映射为 LONGVARCHAR。同样,对于 NVARCHAR 数据类型,如果值超过了 NVARCHAR 的支持长度,则将映射为 LONGNVARCHAR。这同样适用于 byte[]。比 VARBINARY 长的值将成为 LONGVARBINARY。
JDBC Driver 的 setObject 方法支持三类转换:
-
非丢失 (x):适用于 setter 类型与基础服务器类型相同或者小于基础服务器类型时的数值转换。例如,当对基础服务器 decimal 列调用 setBigDecimal 时,不需要进行转换。对于数值转换为字符的情形,Java numeric 数据类型转换为 String。例如,使用值“53”对 varchar(50) 列调用 setDouble 时将在该目标列中生成字符值“53”。
-
已转换 (y):从 Java numeric 类型转换为更小的基础服务器 numeric 类型。该转换为常规转换,并且遵循 SQL Server 转换约定。总是直接截取有效位数(从不四舍五入),而溢出将引发不支持转换的错误。例如,通过值“1.9999”对基础整数列使用 updateDecimal 时,将在目标列中生成“1”;但如果传递的值为“3000000000”,驱动程序将引发错误。
-
依赖于数据 (z):从 Java String 类型转换到基础 SQL Server 数据类型取决于以下条件:如有必要,驱动程序会将 String 值发送给 SQL Server,SQL Server 再执行转换。如果 sendStringParametersAsUnicode 连接属性设置为 True,并且基础 SQL Server 数据类型为 image,SQL Server 将不允许将 nvarchar 转换为 image 并会引发 SQLServerException。如果 sendStringParametersAsUnicode 设置为 False,并且基础 SQL Server 数据类型为 image,SQL Server 将允许将 varchar 转换为 image,而不会引发异常。
SQL Server 执行大部分设置转换,并且在出现问题时将错误传回 JDBC Driver。客户端转换是例外情况,仅在值为 date、time、timestamp、Boolean 和 String 的情况下才执行。
当 SQL Server 列的数据类型为 XML 时,数据值必须是有效的 XML。调用 setObject(byte[], SQLXML)、setObject(inputStream, SQLXML) 或 setObject(Blob, SQLXML) 方法时,数据值应为 XML 字符的十六进制字符串表示形式。例如:<hello>world</hello> = 0x3C68656C6C6F3E776F726C643C2F68656C6C6F3E
请注意,如果 XML 字符使用特殊的字符编码,则需要字节顺序标记 (BOM)。
摘自:http://msdn.microsoft.com/zh-cn/library/ms378680.aspx
发表评论
-
oracle 按每天、周、月、季度、年统计
2018-07-30 09:27 1710//按天统计,createtime为数据库的date类型,格 ... -
oracle case when 复杂统计SQL
2015-10-21 10:18 2800select substr(unitcode,0,6),c ... -
oracle 取树形结构的数据,一条sql
2013-05-16 15:47 1796例子:select * from tb_cod_ ... -
SQL中in和exists的区别
2013-03-12 11:53 1441in和existsin 是把外表和内表作hash 连接,而e ... -
A表字段更新为B表的字段值
2013-03-12 11:34 2081T1表 结构 id name sc ... -
db2 备份表的sql
2013-03-07 18:09 15771)创建一个备份表create table t_public ... -
sql 添加修改删除字段 语句
2013-02-26 10:32 8451.增加字段 alter table docdsp ... -
Oracle一列的多行数据拼成一行显示字符
2013-01-23 11:16 8397Oracle一列的多行数据拼成一行显示字符 oracle ... -
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
2012-12-05 14:28 1374com.microsoft.sqlserver.jdbc.SQ ... -
db2采用移除而非删除,补救彻底删除数据库方法
2012-11-07 15:51 1426db2采用自带的客户端,删除数据库不小心点了 “移除”而非“删 ... -
DB2错误信息 查看命令
2012-11-07 15:49 850本机如果安装了DB2数据库,可以直接使用命令查看错误代码对应的 ... -
DB2错误信息(按sqlcode排序)
2012-10-22 13:21 10828DB2错误信息(按sqlcode排序) sqlcode sq ... -
数据库取表的前n条记录
2012-08-17 16:22 1348关于row_number() over()的用法 介绍 ... -
DB2 TOP N问题解决方法
2012-08-08 14:48 1137在sql server中的如下sql语句是正确的select ... -
SQL SERVER 2005 导出包含(INSERT INTO)数据的SQL脚本 (使用存储过程)
2012-05-08 19:08 1393通常情况下,SQL Server里面的生成SQL脚本,只 ... -
正在检查操作系统要求...要求的结果: 5.0,5.1,5.2,6.0 之一..
2012-04-11 10:43 18227在win7 下安装oracle_11gR1_databa ... -
java备份mysql数据库
2011-06-13 16:45 930package com.zjx.dbbackup; /* ... -
MySQL 创建用户,授权,撤销,删除
2011-03-30 21:31 2126一, 创建用户: 命令:CREATE USER ... -
mysql left join 多个表
2011-03-16 17:09 37770SQL: select * from t_a a left ... -
Oracle数据库遍历树形结构表[转]
2011-03-01 13:31 16821、从根结点开始找子节 ...
相关推荐
下面分别对这两种数据类型转换进行简要的说明: 1 显式转换 显示转换是将某种数据类型的表达式显式转换为另一种数据类型。常用的是CAST 和 CONVERT 函数。 CAST: CAST ( expression AS data_type ) CONVERT: ...
sql实验验证数据类型转换实现sql语句
SQL Server 2005中的类型与C#中的类型对应关系
常用的转换函数是 cast 和 convert,用于把表达式得出的值的类型转换成另一个数据类型,如果转换失败,该函数抛出错误,导致整个事务回滚。在SQL Server 2012版本中,新增两个容错的转换函数:try_cast 和 try_...
通过Oracle的透明网关和dblink直接取sqlserver表中的数据
SQL Server 2008 批量修改字段类型,查询出所有需要修改的字段,然后修改
功能: 根据表名、where条件,生成导出数据的SQL语句。(包含insert语句。结果可一键执行,利于数据导出、导入) 参数: @tableName nvarchar(100) --表名 ,@sqlWhere nvarchar(500) --where条件(传空时,导出全部...
C# 对SqlServer中Image字段的读写的思路是将图片转换为二进制在向数据库写.
您可能感兴趣的文章:详解SQL Server中的数据类型详解MySQL数据类型int(M)中M的含义mysql存储引擎和数据类型(二)Java数据类型与MySql数据类型对照表SQL Server数据类型转换方法SQL Server比较常见数据类型详解...
SQL与ACCESS (EXCEL)之间的数据转换
(保存成功到桌面没有找为代码错误)可以自己另存, 把SqlServer数据库表格式全部导出转换成word形式,包含字段名,字段类型,字段含义等
本文收录了SQL SERVER提供的25种数据类型,并对其操作特点和数据之间的转换一一做了详细说明。
用友T+从数据类型 nvarchar 转换为 numeric 时出错.pdf
给一个表名,自动生成java实体类,方便实用容易上手。前提,表中至少有一条数据。
第8章 SQL Server数据复制 8.1 复制概述 8.2 配置服务器 8.3 创建发布出版物 8.4 订购出版物 8.5 管理复制选项 8.6 复制代理程序和监视器 第9章 SQL Server 数据转换 9.1 数据的导入和导出 9.2 使用DTS设计器
本书涵盖了T-SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户...
SQL Server支持两种字符数据类型,一种是常规,另外一种则是Unicode。常规数据类型包括CHAR和VARCHAR,Unicode数据类型包括NCAHR和NVARCHAR。常规字符的每个字符使用1个字节存储,而Unicode数据的每个字符要求2个...
对于 SQL Server 2000 中的 Microsoft 数据访问组件 (MDAC) 客户端,请使用 SQL Server 2000 客户端网络实用工具。对于 SQL 本机客户端,请使用“添加或删除程序”卸载 SQL 本机客户端。在群集中,请卸载所有节点中...