opendatasource 255字符限制问题

wgzaaa 2007-06-15 05:00:59
用opendatasource导入excel到数据库,发现只能导入255个汉字即510个字节,
字段用nvarchar(1000)接收,查询分析器结果放大到1000查询结果还是255个汉字,
请各位帮忙分析,急用,多谢了
...全文
735 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
应该打了,我连着其它两台机器上的个人版,我自己的也是个人版,家里是服务器版的
hellowork 2007-06-15
  • 打赏
  • 举报
回复
看看你单位的SQLSERVER打没打sp4补丁.
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
多谢多谢,辛苦了,我在家也通过了,可能是环境问题,我回单位再试试
hellowork 2007-06-15
  • 打赏
  • 举报
回复
set @str = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc'

select len(@str),datalength(@str)


/*结果1(opendatasource)
966 1932
*/

/*结果2(从EXEL复制)
966 1932
*/
hellowork 2007-06-15
  • 打赏
  • 举报
回复
declare @str nvarchar(4000)
SELECT top 1 @str = 产品类型
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
print @str
select len(@str),datalength(@str)
hellowork 2007-06-15
  • 打赏
  • 举报
回复
在我的机器上测试正常!
测试环境: Windows Server2003 SP1,SQLSERVER2000 SP4
EXECL文件:d:\test.xls,Sheet1表中只有一行.
(又不能一次全贴出了,只好拆开了,被CSDN折磨死了@!@)
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
确实为空,我将@str = 去了是有内容的;print 改为select 也是明显的空白
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
命令已成功完成。
没有其它任何内容,为空了''
hellowork 2007-06-15
  • 打赏
  • 举报
回复
但用opendatasource查长度一样,就是字符数实际只有255
--------------------------------------------------------------------------
也就是说查询的字符并没有被截断,只是在查询分析器中只能显示前255个字符?
再这样用print试试:
declare @str nvarchar(4000)
select top 1 @str = 产品类型 from opendatasource()....
print @str
看看打印出的字符串是否被截断,或把print的字符串复制,再
declare @str nvarchar(4000)
set @str = N'从print复制的字符串'
select len(@str)看看长度.
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
晕,上面那句话应该是这样的:
以上是用opendatasource查的,但只能看到255个汉字,插入库后也是255个
以下是导入到数据库后select查表
510 255
hellowork 2007-06-15
  • 打赏
  • 举报
回复
看起来象是opendatasource的问题了.
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
hellowork(一两清风) 按你的方法,查询长度一样,内容是真实的,但用opendatasource查长度一样,就是字符数实际只有255 如下:
智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型发动机,智能型
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
以上是用opendatasource查的,以下是导入到数据库的,用opendatasource 查询就只能看到255个汉字
510 255
hellowork 2007-06-15
  • 打赏
  • 举报
回复
把EXECL里面的产品类型复制一下,让后在查询分析器中:
declare @str nvarchar(4000)
set @str = N'从EXECL复制的字符串'
select len(@str)看看长度是否与select *,len(产品类型) from openrowset()获得的长度一致.
hellowork 2007-06-15
  • 打赏
  • 举报
回复
既然len(产品类型)长度已经超过了255,那就说明查询本身没有问题,而是查询分析器的问题了.
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
多谢,改成nvarchar(2000)试下不行,bill024(咖啡熊的没看明白
datalength(产品类型),len(产品类型)
726 363
hellowork 2007-06-15
  • 打赏
  • 举报
回复
使用len(B)或datalength(B)测试一下长度看看.
bill024 2007-06-15
  • 打赏
  • 举报
回复
try:
http://support.microsoft.com/kb/298418/zh-cn
wgzaaa 2007-06-15
  • 打赏
  • 举报
回复
维修台数 ---52 和 那堆n长 的是excel中的内容,
A B
1|维修台数|机器类型
2|52 |智能型发动机,智能型发动机,...
昵称被占用了 2007-06-15
  • 打赏
  • 举报
回复
你把nvarchar(1000)改成nvarchar(2000)试下

加载更多回复(5)
它通过读取 Excel 表格中的业务数据,结合 Word 模板,自动生成多个独立的合同文件,并自动处理了表格中“合计”行的合并与中文大写金额转换。 资源名称:合同文档自动化生成脚本 (1.py) 名字真是乱起 核心功能:Excel 数据读取 → Word 模板渲染 → 表格单元格合并与金额处理 → 批量导出 Word 文档。 适用场景:财务、销售或行政部门需要根据订单或业务明细,批量制作格式统一的合同、报价单或结算单。 1. 自动把“钱”变成“大写” 它干了啥:它内置了一个翻译功能,专门把阿拉伯数字(比如 100.50)自动转换成财务专用的中文大写(比如 壹佰元伍角)。 为什么有用:写合同最怕手滑写错金额,或者大写格式不对。这个功能全自动搞定,既标准又不会出错。 2. 自动“装修”表格底部 它干了啥:生成文档后,它会自动找到表格的最后一行,把前几列合并成一个大格子,写上“合计:XXX(大写金额)”,并在最右边填上具体的数字总额。 为什么有用:平时我们做完表格,还得手动去合并单元格、算总数、填大写,非常繁琐。这个脚本直接一步到位,把表格收尾工作做得漂漂亮亮。 3. 像“发传单”一样批量做合同 它干了啥:它会看你的 Excel 表格,按照“编号”把数据归类。 如果是同一个编号的货物,它会把它们塞进同一个合同里(比如一个客户买了三样东西,会自动列三行)。 如果是不同的编号,它就生成不同的合同文件。 为什么有用:不管你有一百个还是一千个订单,它都能自动拆分,给每个客户生成一份独立的、内容准确的合同,完全不用人工去复制粘贴。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧