带有使用“子字符串”字的 SQL 请求的 C# .Net OleDbCommand 不适用于 DB2/400 数据库

问题描述 投票:0回答:1

我正在开发使用 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
,但还是不行。

没有“子字符串”一词的相同 SQL 请求效果很好:

string W_RqtSql = "SELECT CDMATN " +                
                 " FROM " + @_Schema + ".CSALAR CSAL " +                     
                 " where CSAL.NOPPHN = '" + @_NumPers + "'";

如何选择列值的子字符串?

c# sql .net db2-400 oledbcommand
1个回答
0
投票

我认为至少存在一个带有len的rec<6.you can check Len then get substring

© www.soinside.com 2019 - 2024. All rights reserved.