问题标签 [varcharmax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3510 浏览

sql-server - 无法使用 ADODB 从 varchar(max) 读取数据

我有一个使用 ADODB 执行存储过程并将结果作为记录集读取的方法。一切正常,直到我将输出字段之一从 varchar(2000) 更改为 varchar(max) (SQL2008)。现在我无法从该字段中读取数据。奇怪的是,数据在运行Execute后立即在调试器中可见,但单步进入调试器会使数据消失。

这是代码:

如果我在执行后立即查看调试器,我会看到这一点。请注意 EacJustCom 字段具有正确的字符串值: 在此处输入图像描述

我在调试器中迈出了一步,看到了这一点。价值消失了。请注意,“_Account”字段仍然完好无损(它被定义为 varchar(100)): 在此处输入图像描述

0 投票
1 回答
4579 浏览

sql-server-2008 - 字符串或二进制数据将在 varchar(max) 上被截断

我已经检查过了,每个人似乎都遇到了列长度太小的问题。我不认为这是我的问题,因为一切都是 varchar max。

我有一个大文本字符串存储在一列中

我正在尝试用新文本替换旧文本并遇到此问题

这是我的错误被抛出的地方。

我的 NewText 的长度为 12067,旧文本的长度为 14279。看到我的新文本小于我的新文本,它应该适合并且不应该抛出错误。我什至可以将 varchar(max) 中的当前文本加倍,这很合适。

这很好,它仍然适合数据类型,然后适合列。

所以我的问题是为什么在替换时会说会有截断?它看起来好像数据类型足够大,可以将整个文档存储两次。替换功能有大小限制吗?如果是这样,是否有更好的方法来完成和替换它?

0 投票
1 回答
1583 浏览

sql-server-2008 - 在 mssql2008 上将 varchar(n) 转换为 varchar(max)

我有一个大约有 8,000 行的表,我想将一列从 varchar(1000) 更改为 varchar(max) 我输入

它没有用。如何更改列的数据类型?还是我必须写 varchar(5000) 或其他东西而不是 varchar(MAX)?谢谢你。

0 投票
0 回答
459 浏览

sql - 在 varchar(MAX) SQL 2012 中保存超过 111305 个字符

正如标题所说,我正在尝试将转换为 base64 的 PDF 保存在 SQL varchar(MAX) 列中。当我的示例 PDF 转换为 base64 时,是一个 111305 个字符长度的字符串。我将该字符串复制并粘贴到 SQL varchar(MAX) 列,但是当我从表中选择 * 并复制数据时,它只是一个 43120 个字符的字符串。

所以它看起来像 SQL 被我的字符串削减了一半

所以问题是:“如何在 SQL 中保存 111305 个字符长度或更多字符的字符串?” “ varchar(MAX) 对此是否正确?”

POSTDATA:我无法将 PDF 保存为二进制文件,因为要将其保存到 webapp 中的数据库,它使用 web 服务,如果我将二进制数据发送到 web 服务,它不接受它。请帮忙。

0 投票
1 回答
4084 浏览

asp-classic - 从存储过程返回 varchar(max) 输出参数截断为 4000 个字符

我有一个带有 SQL2012 数据库的经典 ASP 应用程序。我最近将表列从 varchar(8000) 更改为 varchar(max),因为它不足以存储所需的数据。

我可以用我需要存储的所有数据来更新列,但是我用来将列数据作为输出参数返回的 SP 只返回 4000 个字符(至少这是以下代码的结果给我的结果:

我使用以下参数声明作为对 SP 的调用的一部分:

8 是 adBStr 的值。我尝试将 8 更改为 200、201 和 203,但这会产生以下错误:

错误:800a0e7c

说明:
参数对象定义不正确。提供的信息不一致或不完整。

我认为更新数据会很困难,但我只是不知道如何检索列的全部内容。

我正在返回该列的 DATALENGTH,它说它的长度为 10,536,但我只得到 4,000 个字符,包括通过输出参数返回的空格。我可以从 Visual Studio 中看到所有数据(10k 个字符),所以我知道它在那里。

我的连接字符串 Provider=SQLOLEDB.1。这可能是一个问题吗?我应该使用较新的 SQL Server Native Client 11.0 OLE DB Provider - SQLNCLI11 吗?

有人有什么想法吗?

干杯,迈克。

0 投票
1 回答
141 浏览

sql - sql插入varchar或数据

我正在开发生成大型 html 报告的应用程序。我需要将数据存储在数据库中的临时表中以获取 html 页面。最好的方法是什么?在表 tmpTable(num, xmlStr)(xmlStr - aprox. 400 Kb) 中为 HTML 页面生成大 xml 字符串,插入到表中,然后在用户请求后选择此页面。或者将数据保存在临时表中,例如 tmpTable1(num, val1, val2, val3...),其中 val - 只是短字符串、int 和 double,并在用户请求后使用此数据生成 xml。哪种方式对性能有好处?

0 投票
0 回答
193 浏览

sql-server-2012 - sql server 只选择结果集中字符串列的一部分

我有 A 列的表 T,因为Varchar(max)当我在结果平移中选择此字段时,它仅显示此列的部分数据(仅 1457 个字符)但 len(A) 返回 1730 个字符。当我选择 A 时,结果以这个字符串结尾:

但是当我选择 right(A) 时,它会给我另一个字符串。

结果窗格中的packet列只给我 1457 个字符,但 len(packet) 在结果中给我 1730

0 投票
2 回答
1352 浏览

sql-server - 谜之:Sql Server中选择大xml

我的表中有一个列,它将 XML 数据存储为 varchar(MAX)。例如,我的一个值有大约 1 个 LAC 字符。从表中选择它时,我最终只得到所有样本的 43679 个字符。

这个谜团背后的原因是什么?如果有任何方法可以检索完整的数据,请帮忙。

0 投票
1 回答
64 浏览

sql - 从 XML 字符串 SQL 中获取多个答案

我有一个 XML 文档作为 varchar(max) 保存在列中。我想要的文本被包围,<Text> Words I Want</Text>但这些文本标签有时会重复 4 或 5 次。

如何根据文本标签的数量在同一个文档中循环 x 次?

目前我正在使用它来提取文本的第一部分

我知道 Text 标签出现了多少次。

这是保存 varchar(max) 的 xml 文档的示例:

先感谢您。

0 投票
1 回答
427 浏览

sql - 将varchar(max)字符串分离到sql server中的列表中

我将数据保存为 1-2-4-5-7,我想将它们拆分为第一个响应 = 1、第二个响应 = 2、第三个响应 = 4、第四个响应 = 5 和第五个响应 = 7。它们在列为 varchar(max) 并且需要报告这些。有没有办法将它们分成5个不同的行或排名列表?并非所有的列都有 5 个部分,有些列有更多,有些则更少,所以如果答案对此灵活,那就太好了。

我正在使用 SSRS 2008R2 和 SQL Server 2008R2

先感谢您