提问人:Jchristophe Cherid 提问时间:11/2/2023 最后编辑:dbcJchristophe Cherid 更新时间:11/3/2023 访问量:61
带有使用“子字符串”字的 SQL 请求的 C# .Net OleDbCommand 不适用于 DB2/400 数据库
C# .Net OleDbCommand with SQL request using "substring" word not working with DB2/400 database
问:
我正在研究使用 DB2/400 数据库 (IBMi ) 的 Rest API。
我正在使用这个字符串连接到数据库:
// Defaut connexion string
ConnectString = "Provider=IBMDA400;" + "Password=xxxxxxx;" +"User ID=Bxxxxxxxx;" +"Data Source=XXX.XX.XX.XX;";
与系统的连接工作正常:
ConnectLst = new OleDbConnection(ConnectString);
try
{
ConnectLst = new OleDbConnection(ConnectString);
ConnectLst.Open();
ResCnx = true;
}
catch (Exception ex)
{
ResCnx = false;
}
finally
{ }
return ResCnx;
我的问题是带有子字符串的简单SQL请求不起作用:
string W_RqtSql = "SELECT SUBSTRING(CDMATN,2,3) " +
" FROM " + @_Schema + ".CSALAR CSAL " +
" where CSAL.NOPPHN = '" + @_NumPers + "'";
我有以下错误消息:
$exception {"SQL0104: Syntactic element ,2 is not correct. Possible elements: , FROM.\r\nCause . . . . .: A syntax error was detected at element ,2. , 2 is not a valid element. , FROM is a partial list of valid elements.
我也试过,但也不起作用。SUBSTR
没有“substring”字的相同 SQL 请求效果很好:
string W_RqtSql = "SELECT CDMATN " +
" FROM " + @_Schema + ".CSALAR CSAL " +
" where CSAL.NOPPHN = '" + @_NumPers + "'";
如何选择列值的子字符串?
答:
0赞
Jchristophe Cherid
11/3/2023
#1
解决方案是:
逗号和数字之间有空格的语法,如下所示:SUBSTRING(CDMATN, 2, 3)
非常感谢您的帮助:)
上一个:Xml 循环引用
评论
substr
not 。IBM 的这个文档页面还显示了 .所以你可以试一试。SUBSTRING
SUBSTR
SUBSTRING(CDMATN, 2, 3)