我正在尝试在列数据类型为的表中插入数据NTEXT
。理想情况下,它应该存储8000个以上的字符,但就我而言,它将其减少到8000个字符。
我正在过程中的运行时进行插入查询。下面是该程序正在执行的示例查询。
INSERT INTO TMPRESULTS SELECT ('A' + ',' + 'B' + ',' + 'C')
A,B,C等是示例数据,实际数据将在运行时被标识,实际内容跨越8000个字符。同样,用于存储值的变量也定义为’ NVARCHAR(MAX)
‘
但是,当我尝试以下查询时,它的确在表中插入了超过8000个字符
INSERT INTO TMPRESULTS SELECT ('ABCdddd................')
我想在尝试用“ +”号连接数据时,sql server将长度减少到8000。我不能使用该CONCAT
数据,因为数据将超过256列/参数。
任何想法,为什么这样做?另外,如果有人可以提供一些替代解决方案的帮助,那么我将不得不在运行时进行插入查询。
记录在+(字符串串联)(Transact-SQL)-备注中:
如果字符串连接的结果超过了8,000个字节的限制,则结果将被截断。但是,如果串联的字符串中的至少一个是大值类型,则不会发生截断。
对于varchar
8,000个字节,则为8,000个字符,对于nvarchar
4000个字节。
查询INSERT INTO TMPRESULTS SELECT ('A' + ',' + 'B' + ',' + 'C')
中的所有文字字符串都是非大值类型(实际上,它们都是varchar(1)
)。如果您CONVERT
/CAST
其中之一varchar(MAX)
解决了此问题,请执行以下操作:
INSERT INTO TMPRESULTS
SELECT (CONVERT(varchar(MAX),'A') + ',' + 'B' + ',' + 'C');
如果需要nvarchar
,请确保也将文字字符串声明为nvarchar
:
INSERT INTO TMPRESULTS
SELECT (CONVERT(nvarchar(MAX),N'A') + N',' + N'B' + N',' + N'C');
问题内容: 有没有办法在不知道字符串长度的情况下,将一个字符长的字符串切成4个字符串,每个字符长? 例如: 问题答案:
问题内容: 如果与环境无关,那么python字符串中理论上最大的字符数是多少? 另外,如果它与版本号不同,我想在python 2.5.2中知道它 问题答案: 使用64位Python安装和(例如)64 GB的内存,大约63 GB的Python 2字符串应该是非常可行的(如果不是最快的话)。如果您可以将内存升级到更大的程度(当然,这将花费您一臂之力和一条腿),则最大可行字符串应成比例地变长。(我不建议
要求出字符串的长度(字符的个数),我们可以使用length函数。调用这个函数的语法和我们前面看到的有点不同: int length; length = fruit.length(); 对于这种函数调用,我们称之为在字符串变量fruit上**调用(invoke)**length函数。“调用(invoke)”这个词可能看起来有点奇怪,但是后面我们还会遇到很多在对象上调用函数的例子。 函数调用的语法称
问题内容: 我正在从另一台服务器下载CSV文件,作为供应商的数据提要。 我正在使用curl获取文件的内容,并将其保存到名为的变量中。 我可以很好地达到那部分,但是我尝试通过爆炸并获得行数组,但是失败并出现“内存不足”错误。 我,大约是3050万个字符。 我需要处理这些值并将它们插入数据库。为了避免内存分配错误,我该怎么办? 问题答案: PHP令人窒息,因为它耗尽了内存。不要使用curl来用文件的内
问题内容: 那么PHP中的大小可以达到多少呢?我已经尝试过测试,但是我不确定系统内存是否足够(〜2gb)。我认为必须有某种限制。字符串太大时会发生什么?它是串联的,还是PHP抛出异常? 问题答案: http://php.net/manual/en/language.types.string.php说: 注意:自PHP 7.0.0起,对64位版本中的字符串长度没有特殊限制。在32位版本和较早版本中,
问题内容: 如果长度超过10个字符,我想修剪字符串。 假设字符串长度为12(),则新的修剪后的字符串将包含。 我该如何实现? 问题答案: s = s.substring(0, Math.min(s.length(), 10)); 这样使用字符串可以避免在字符串已经短于的情况下出现异常。 笔记: 上面做了真正的修剪。如果您实际上想将截断的最后三个(!)字符替换为点,请使用Apache Commons