我得到一个“消息258,级别15,状态1,第2行无法调用varchar上的方法”错误 [英] I get a "Msg 258,Level 15, state 1, line 2 cannot call methods on varchar" error

查看:137
本文介绍了我得到一个“消息258,级别15,状态1,第2行无法调用varchar上的方法”错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是sql语句:

  INSERT   INTO  BinarizeResults(url,[ file ],[state],Binarize,Binarize2,FilterGaussian,FilterMedianSmooth,HoughLines,OptimizeImageSize,PreprocessImage,RemovePepperNoise,RemoveSaltNoise,accuracy ,Task_Length)
SELECT Xaquery(' url' .value(' 。'' VARCHAR(50)')),
Xaquery(' file' .value(' 。'' VARCHAR(50)')),
Xaquery(' state' .value (' 。'' VARCHAR(20)')),
Xaquery(' Binarize' .value(' 。'' VARCHAR(6)')),
Xaquery(' Binarize2' .value(' 。'' VARCHAR(6)')),
Xaquery(' FilterGaussian' .value(' 。'' VARCHAR(6)')),
Xaquery(' FilterMedianSmooth' .value(' 。'' VARCHAR(6)')),
Xaquery(' HoughLines' .value(' 。'' VARCHAR(6)')),
Xaquery(' OptimizeImageSize' .value(' 。'' VARCHAR(6)')),
Xaquery(' PreprocessImage' .value(' 。'' VARCHAR( 6)')),
Xaquery(' RemovePepperNoise' .value(' 。'' VARCHAR(6)')),
Xaquery(' RemoveSaltNoise' .value(' 。'' VARCHAR(6) ')),
Xaquery(' precision' .value(< span class =code-string>' 。'' VARCHAR(6)')),
Xaquery(' Task_Length' .value(' 。'' VARCHAR(10)') )
FROM
SELECT CAST(x AS XML)
FROM OPENROWSET
< span class =code-keyword> BULK ' C:\ Users \ Jarmendariz \Desktop \ocrbinarize.xml',SINGLE_BLOB

AS T(x)

< span class =code-keyword> AS T(x)
CROSS APPLY x.nodes(' resultset / results / result' AS X(a);

解决方案

看起来你的括号在错误的地方。而不是:

 Xaquery('  url'.value(' 。''  VARCHAR(50)'))



尝试:

< pre lang =sql> Xaquery(' url')。value(' 。'' VARCHAR(50)'


Here is the sql statement:

INSERT INTO BinarizeResults(url, [file],[state],Binarize,Binarize2,FilterGaussian,FilterMedianSmooth,HoughLines,OptimizeImageSize,PreprocessImage,RemovePepperNoise,RemoveSaltNoise,accuracy,Task_Length)
SELECT X.a.query('url'.value('.','VARCHAR(50)')),
       X.a.query('file'.value('.','VARCHAR(50)')),
	   X.a.query('state'.value('.','VARCHAR(20)')),
	   X.a.query('Binarize'.value('.','VARCHAR(6)')),
	   X.a.query('Binarize2'.value('.','VARCHAR(6)')),
	   X.a.query('FilterGaussian'.value('.','VARCHAR(6)')),
	   X.a.query('FilterMedianSmooth'.value('.','VARCHAR(6)')),
	   X.a.query('HoughLines'.value('.','VARCHAR(6)')),
	   X.a.query('OptimizeImageSize'.value('.','VARCHAR(6)')),
	   X.a.query('PreprocessImage'.value('.','VARCHAR(6)')),
	   X.a.query('RemovePepperNoise'.value('.','VARCHAR(6)')),
	   X.a.query('RemoveSaltNoise'.value('.','VARCHAR(6)')),
	   X.a.query('accuracy'.value('.','VARCHAR(6)')),
	   X.a.query('Task_Length'.value('.','VARCHAR(10)'))
FROM (
	  SELECT CAST(x AS XML)
      FROM OPENROWSET(
					  BULK 'C:\Users\Jarmendariz\Desktop\ocrbinarize.xml', SINGLE_BLOB
					  ) 
	  AS T(x)
	  )
AS T(x)
CROSS APPLY x.nodes('resultset/results/result') AS X(a);

解决方案

It looks like you've got your parentheses in the wrong place. Instead of:

X.a.query('url'.value('.','VARCHAR(50)'))


try:

X.a.query('url').value('.','VARCHAR(50)')


这篇关于我得到一个“消息258,级别15,状态1,第2行无法调用varchar上的方法”错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆