首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL中提取的SAS不起作用。

从MySQL中提取的SAS不起作用。
EN

Stack Overflow用户
提问于 2017-03-13 15:34:33
回答 1查看 270关注 0票数 0

我正在尝试构建一个数据集成作业,通过它从MySQL数据库中的视图中提取数据。我们在这个项目中使用了大量的pass,主要是从Redshift中提取数据,但是使用MySQL我无法使它正常工作。

它不断抱怨一个表丢失了,即使当关机关闭,视图被找到,数据被提取……

尝试了我所知道的每一个技巧,从启用区分大小写的DBMS对象名称开始,手动从语句中删除单引号/双引号,以防MySQL混淆了它和其他东西.

不走运。ODBC驱动程序是MySQLmysqld-5.5.53。在Windows环境下运行。

知道怎么解决这个问题吗?

提前谢谢你。

编辑

因此,首先,一次修正(尽管没有那么重要--我从视图中提取,而不是从一张表中提取)。

这是由SAS创建表转换生成的代码,通过已启用。我只放置了一个星号,而不是列的完整列表:

代码语言:javascript
复制
proc sql;
  connect to ODBC
  ( 
    READBUFF=10000 DATASRC="cmp.web_api" AUTHDOMAIN="MYSQL_CMP_Auth" 
  ); 
  create table work."W7ZZZKOC"n as
    select
    *
    from connection to ODBC
     (
      select
      V_BI_ACCOUNT.ACCOUNT_NAME,
      V_BI_ACCOUNT.ACQUISITION_SOURCE__C,
      V_BI_ACCOUNT.ZUORA__ACTIVE__C,
      V_BI_ACCOUNT.ADDRESS_LINE_1__C,
      V_BI_ACCOUNT.ADDRESS_LINE_2__C,
      V_BI_ACCOUNT.ADDRESS_LINE_3__C,
      V_BI_ACCOUNT.AGREEMENT_DATE,
      V_BI_ACCOUNT.AGREEMENT_LEGAL_CLAUSE_1__C,
      V_BI_ACCOUNT.AGREEMENT_LEGAL_CLAUSE_2__C,
      V_BI_ACCOUNT.PERSONBIRTHDATE,
      V_BI_ACCOUNT.BLOCKED_REASON__C,
      V_BI_ACCOUNT.BRAND__C,
      V_BI_ACCOUNT.CPN__C,
      V_BI_ACCOUNT.ACCCREATEDBYID,
      V_BI_ACCOUNT.ACCCREATEDDATE,
      V_BI_ACCOUNT.CURRENCY_PREFERENCE__C,
      V_BI_ACCOUNT.CUSTOMER_FULL_NAME__PC,
      V_BI_ACCOUNT.ACCOUNTID,
      V_BI_ACCOUNT.ZUORA__CUSTOMERPRIORITY__C,
      V_BI_ACCOUNT.DELIVERY_SALUTATION__C,
      V_BI_ACCOUNT.DISPLAY_NAME,
      V_BI_ACCOUNT.PERSONEMAIL,
      V_BI_ACCOUNT.EMAILKEY__C,
      V_BI_ACCOUNT.FACEBOOKKEY,
      V_BI_ACCOUNT.FIRSTNAME,
      V_BI_ACCOUNT.GENDER__C,
      V_BI_ACCOUNT.PHONE,
      V_BI_ACCOUNT.ACCLASTACTIVITYDATE,
      V_BI_ACCOUNT.ACCLASTMODIFIEDDATE,
      V_BI_ACCOUNT.LASTNAME,
      V_BI_ACCOUNT.OTHER_EMAIL__C,
      V_BI_ACCOUNT.PI_TYPE__C,
      V_BI_ACCOUNT.ACCPARENTID,
      V_BI_ACCOUNT.POSTCODE__C,
      V_BI_ACCOUNT.PRIMARY_ACCOUNT_OF_THIS_CUSTOMER,
      V_BI_ACCOUNT.ACCPRIMARY__C,
      V_BI_ACCOUNT.ACCREASON_FOR_STATUS__C,
      V_BI_ACCOUNT.ZUORA__SLA__C,
      V_BI_ACCOUNT.ZUORA__SLASERIALNUMBER__C,
      V_BI_ACCOUNT.SALUTATION,
      V_BI_ACCOUNT.ACCSYSTEMMODSTAMP,
      V_BI_ACCOUNT.PERSONTITLE,
      V_BI_ACCOUNT.ZUORA__UPSELLOPPORTUNITY__C,
      V_BI_ACCOUNT.X_CODE__C,
      V_BI_ACCOUNT.ZUORA__ACCOUNT_ID__C,
      V_BI_ACCOUNT.ZUORA__PAYMENTMETHODID__C,
      V_BI_ACCOUNT.CITY,
      V_BI_ACCOUNT.ORIGINAL_CREATED_DATE,
      V_BI_ACCOUNT.SOURCE_SYSTEM_ID,
      V_BI_ACCOUNT.STATUS,
      V_BI_ACCOUNT.ZUORA__CONTACT_ID,
      V_BI_ACCOUNT.ACCISDELETED,
      V_BI_ACCOUNT.BILLING_ACCOUNT_NAME,
      V_BI_ACCOUNT.ACZCREATEDDATE,
      V_BI_ACCOUNT.ACZSYSTEMMODSTAMP,
      V_BI_ACCOUNT.ACZLASTACTIVITYDATE,
      V_BI_ACCOUNT.ZUORA__ACCOUNT__C,
      V_BI_ACCOUNT.ZUORA__ACCOUNTNUMBER__C,
      V_BI_ACCOUNT.ZUORA__AUTOPAY__C,
      V_BI_ACCOUNT.ZUORA__BALANCE__C,
      V_BI_ACCOUNT.ZUORA__CREDITCARDEXPIRATION__C,
      V_BI_ACCOUNT.ZUORA__CURRENCY__C,
      V_BI_ACCOUNT.ZUORA__MRR__C,
      V_BI_ACCOUNT.ZUORA__PAYMENTTERM__C,
      V_BI_ACCOUNT.ZUORA__PURCHASEORDERNUMBER__C,
      V_BI_ACCOUNT.ZUORA__LASTINVOICEDATE__C,
      V_BI_ACCOUNT.COUNTRY_NAME,
      V_BI_ACCOUNT.COUNTRY_CODE,
      V_BI_ACCOUNT.FAVOURITE_FOOTBALL_CLUB,
      V_BI_ACCOUNT.COUNTY
      from
      web_api.V_BI_ACCOUNT as V_BI_ACCOUNT

    );

   %rcSet(&sqlrc); 

disconnect from ODBC; 
quit;

再说一次,当我提取数据时没有通过-工作成功,

EN

回答 1

Stack Overflow用户

发布于 2017-03-15 10:02:38

我发现问题是一个列名超过32个职位。由于SAS支持最多32的列名,所以查询找不到PRIMARY_ACCOUNT_OF_THIS_CUSTOMER,因为原来的列名是PRIMARY_ACCOUNT_OF_THIS_CUSTOMER__C。

编辑

我发现的另一件事是,MySQL不喜欢指定模式名称或别名。因此,From子句只指定表名,即:'from v_bi_account‘而不是'web_api.v_bi_account’

也不要使用别名,即使用“from v_bi_account”而不是“v_bi_account as v_bi_account”

非常感谢你们的帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42767573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档