- 浏览: 1330832 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1766//按天统计,createtime为数据库的date类型,格 ... -
oracle case when 复杂统计SQL
2015-10-21 10:18 2856select substr(unitcode,0,6),c ... -
oracle 取树形结构的数据,一条sql
2013-05-16 15:47 1871例子:select * from tb_cod_ ... -
SQL中in和exists的区别
2013-03-12 11:53 1495in和existsin 是把外表和内表作hash 连接,而e ... -
A表字段更新为B表的字段值
2013-03-12 11:34 2173T1表 结构 id name sc ... -
db2 备份表的sql
2013-03-07 18:09 16521)创建一个备份表create table t_public ... -
sql 添加修改删除字段 语句
2013-02-26 10:32 8921.增加字段 alter table docdsp ... -
Oracle一列的多行数据拼成一行显示字符
2013-01-23 11:16 8466Oracle一列的多行数据拼成一行显示字符 oracle ... -
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
2012-12-05 14:28 1436com.microsoft.sqlserver.jdbc.SQ ... -
db2采用移除而非删除,补救彻底删除数据库方法
2012-11-07 15:51 1495db2采用自带的客户端,删除数据库不小心点了 “移除”而非“删 ... -
DB2错误信息 查看命令
2012-11-07 15:49 955本机如果安装了DB2数据库,可以直接使用命令查看错误代码对应的 ... -
DB2错误信息(按sqlcode排序)
2012-10-22 13:21 10998DB2错误信息(按sqlcode排序) sqlcode sq ... -
数据库取表的前n条记录
2012-08-17 16:22 1433关于row_number() over()的用法 介绍 ... -
DB2 TOP N问题解决方法
2012-08-08 14:48 1196在sql server中的如下sql语句是正确的select ... -
SQL SERVER 2005 导出包含(INSERT INTO)数据的SQL脚本 (使用存储过程)
2012-05-08 19:08 1449通常情况下,SQL Server里面的生成SQL脚本,只 ... -
正在检查操作系统要求...要求的结果: 5.0,5.1,5.2,6.0 之一..
2012-04-11 10:43 18319在win7 下安装oracle_11gR1_databa ... -
java备份mysql数据库
2011-06-13 16:45 986package com.zjx.dbbackup; /* ... -
MySQL 创建用户,授权,撤销,删除
2011-03-30 21:31 2195一, 创建用户: 命令:CREATE USER ... -
mysql left join 多个表
2011-03-16 17:09 37833SQL: select * from t_a a left ... -
Oracle数据库遍历树形结构表[转]
2011-03-01 13:31 17281、从根结点开始找子节 ...
相关推荐
SQL Server 数据类型是数据库管理系统中用于定义和存储数据的基础组件,它们决定了数据的结构和特性。在SQL Server 2000中,数据类型的选择至关重要,因为它直接影响到数据的存储方式、大小以及处理效率。 首先,让...
SQL Server 数据类型转换小实验 在本实验中,我们将探索 SQL Server 中的数据类型转换机制,并通过实践验证数据类型转换的实现方式。 数据类型转换的概念 在 SQL Server 中,数据类型转换是指将一种数据类型转换...
### Microsoft Access 数据类型与 SQL Server 数据类型的主要区别 在数据库设计和开发过程中,选择合适的数据类型对于确保数据的准确性和优化存储空间至关重要。Microsoft Access 和 SQL Server 虽然都是微软旗下的...
下面分别对这两种数据类型转换进行简要的说明: 1 显式转换 显示转换是将某种数据类型的表达式显式转换为另一种数据类型。常用的是CAST 和 CONVERT 函数。 CAST: CAST ( expression AS data_type ) CONVERT: ...
在SQL Server中,日期和时间数据类型的处理是数据库操作中的常见任务。无论是为了报表、数据分析还是用户界面展示,我们经常需要将日期格式进行转换。本文将深入探讨SQL Server中多种日期格式转换的方法。 1. `...
2. 数据迁移:工具会逐条读取SQL Server中的记录,根据字段映射规则将其转换为符合MySQL数据类型的格式,然后插入到对应的MySQL表中。这一步骤需要注意数据类型不兼容的问题,例如,SQL Server的datetime与MySQL的...
SQL Server 提供了两种常用的数据类型转换方式:`CAST()` 和 `CONVERT()` 函数。这两种方法各有特点,能够帮助用户灵活地处理各种类型的数据。 #### 一、`CAST()` 函数 `CAST()` 是 SQL-92 标准中定义的函数,用于...
### SQL数据类型与C#数据类型的转换 在开发过程中,我们经常会遇到需要将数据库中的数据类型映射到编程语言中的情况。特别是在使用SQL Server作为后端数据库与C#进行交互时,了解这两种环境下的数据类型及其对应...
在进行数据转换时,需要注意数据类型匹配、字段大小、编码格式等问题,确保数据的一致性和完整性。同时,对于大量数据的迁移,应考虑性能优化,如分批处理、索引重建等。 总的来说,ACCESS和SQL Server在数据处理...
本文将详细比较SQL Server和Oracle数据库之间的数据类型对应以及常用函数的转换。 首先,我们来看SQL Server和Oracle的数据类型对照: 1. **数值类型**: - `bigint`在SQL Server中对应Oracle的`NUMBER(19)`,...
本文将深入探讨SQL Server与Oracle中的数据类型区别,并通过具体的例子来说明这两种系统之间的转换方法。 ### SQL Server 数据类型 SQL Server 是微软开发的一款关系型数据库管理系统,它支持多种数据类型,可以...
例如,将`numeric`数据类型转换为`integer`会丢失小数部分,如15.415会被四舍五入成15。 4. **查询表结构获取数据类型**: 使用`sys.objects`和`sys.columns`系统视图可以查询SQL Server表中各列的数据类型。`TYPE...
在SQL Server中,数据类型包括数值型、字符型、日期/时间型等。有时需要将数据从一种类型转换为另一种。这可以通过`CAST`或`CONVERT`函数实现。例如,将字符串转换为整数,或者将日期字符串转换为日期类型。 3. **...
"通过Oracle的透明网关和DBLink直接取SQL Server表中的数据" 本文主要讲述了如何使用Oracle的透明网关和DBLink直接从SQL Server数据库中提取数据。首先,需要安装Oracle的透明网关软件win64_11gR2_gateways,接着...
在进行数据库迁移或数据交换时,需要将不同数据库管理系统之间的数据类型进行转换。在本文中,我们将讨论如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中。 Image 类型在 SQL Server 中的应用 ...
1. 数据类型映射:SQL Server和Oracle的数据类型可能存在差异,如SQL Server的`datetime`对应Oracle的`timestamp`,`varchar2`对应`nvarchar2`等,工具会自动进行转换,但也可能需要手动调整。 2. 函数和过程转换:...
- **转换组件**:处理数据流,包括数据类型转换、过滤、排序、合并等。这些组件可以在数据流中嵌入,以实现复杂的数据处理逻辑。 **3. DTS 设计与实施** 设计 DTS 包时,用户可以通过 SQL Server Management ...
在SQL Server中,数据类型转换是数据库操作中的常见任务,用于将一种数据类型转换为另一种。T-SQL提供了多种函数来实现这一目标,确保数据在不同的场景下能正确处理和展示。本文主要介绍SQL Server中常用的转换函数...
以下是一个简单的示例代码片段,展示了如何将SQL Server数据导出到Excel: ```csharp using System.Data.SqlClient; using Excel = Microsoft.Office.Interop.Excel; // 创建数据库连接 SqlConnection conn = new ...