Syntax OLEDB语法错误-IColumnsInfo::GetColumnInfo失败

Syntax OLEDB语法错误-IColumnsInfo::GetColumnInfo失败,syntax,sas,oledb,Syntax,Sas,Oledb,我试图通过SAS EG运行此查询,但我一直收到以下错误消息- 错误:描述错误:IColumnsInfo::GetColumnInfo失败: [DB2/AIX64]SQL0104N发现以下意外标记 1.组号,最佳。。预期的令牌可能包括:。SQLSTATE=42601 我不确定SAS想告诉我什么。我对代码做了很多调整,但我无法修复错误,甚至无法更改错误消息。谢谢你的帮助!代码如下: proc sql; connect to OLEDB(provider=IBMDADB2 datasourc

我试图通过SAS EG运行此查询,但我一直收到以下错误消息-

错误:描述错误:IColumnsInfo::GetColumnInfo失败: [DB2/AIX64]SQL0104N发现以下意外标记 1.组号,最佳。。预期的令牌可能包括:。SQLSTATE=42601

我不确定SAS想告诉我什么。我对代码做了很多调整,但我无法修复错误,甚至无法更改错误消息。谢谢你的帮助!代码如下:

proc sql;
     connect to OLEDB(provider=IBMDADB2 datasource=OCCPR user=&papiuid password=&papipwd);
  create table M1Enrollment (compress=yes) as select * from connection to OLEDB

(SELECT   t1.HICN, 
          t1.SERVICEMONTH, 
          /* Group Number */
            (case when  t1.ENROLLMENTSOURCESYSTEM = '002' then substr(t1.MEMBERID,1,find(t1.MEMBERID,"-")-1) 
            when t1.ENROLLMENTSOURCESYSTEM = '007' then substr(t1.GROUPNUMBER,1,6) 
            when t1.ENROLLMENTSOURCESYSTEM = '001' 
            then PUT(INPUT(t1.GROUPNUMBER, best.), z5.) end 
            ) AS GroupNumber
      FROM TABLE.M1_PLANNEDENROLLMENT t1
      WHERE t1.PBPID BETWEEN '800' AND '899' and t1.SERVICEMONTH >= 201601
        and t1.SERVICEMONTH <= 201612);
 disconnect from OLEDB;
quit;

无法运行代码,因为它是连接

你能试试崔斯吗

proc sql;
    connect to OLEDB(provider=IBMDADB2 datasource=OCCPR user=&papiuid password=&papipwd);
        create table M1Enrollment (compress=yes) as select * from connection to OLEDB

        (
            SELECT  t1.HICN, 
                    t1.SERVICEMONTH, 
                    /* Group Number */
                    (case
                        when  t1.ENROLLMENTSOURCESYSTEM = '002' then substr(t1.MEMBERID,1,find(t1.MEMBERID,"-")-1) 
                        when t1.ENROLLMENTSOURCESYSTEM = '007' then substr(t1.GROUPNUMBER,1,6) 
                        when t1.ENROLLMENTSOURCESYSTEM = '001' then PUT(INPUT(t1.GROUPNUMBER, best5.), z5.)
                    end) AS GroupNumber
            FROM TABLE.M1_PLANNEDENROLLMENT t1
            WHERE t1.PBPID BETWEEN 800 AND 899
                and t1.SERVICEMONTH >= 201601
                and t1.SERVICEMONTH <= 201612
        );
    disconnect from OLEDB;
quit;
变化最大。超过5。以及介于"800"与"899"之间至"800"与"899"之间


无法运行代码,因为它是连接

你能试试崔斯吗

proc sql;
    connect to OLEDB(provider=IBMDADB2 datasource=OCCPR user=&papiuid password=&papipwd);
        create table M1Enrollment (compress=yes) as select * from connection to OLEDB

        (
            SELECT  t1.HICN, 
                    t1.SERVICEMONTH, 
                    /* Group Number */
                    (case
                        when  t1.ENROLLMENTSOURCESYSTEM = '002' then substr(t1.MEMBERID,1,find(t1.MEMBERID,"-")-1) 
                        when t1.ENROLLMENTSOURCESYSTEM = '007' then substr(t1.GROUPNUMBER,1,6) 
                        when t1.ENROLLMENTSOURCESYSTEM = '001' then PUT(INPUT(t1.GROUPNUMBER, best5.), z5.)
                    end) AS GroupNumber
            FROM TABLE.M1_PLANNEDENROLLMENT t1
            WHERE t1.PBPID BETWEEN 800 AND 899
                and t1.SERVICEMONTH >= 201601
                and t1.SERVICEMONTH <= 201612
        );
    disconnect from OLEDB;
quit;
变化最大。超过5。以及介于"800"与"899"之间至"800"与"899"之间


当我这样做的时候,它会清除前面评论中的错误消息。但是,我得到了一个新的错误,即libref表未分配。这是因连接不同而不同的东西,还是有一些我应该放在这里的标准代码?我尝试将libref全部删除,这也返回了一个错误。当我这样做时,它会删除前面评论中的错误消息。但是,我得到了一个新的错误,即libref表未分配。这是因连接不同而不同的东西,还是有一些我应该放在这里的标准代码?我尝试将libref全部取出,但也返回了一个错误。