由于NOEXEC选项,未执行声明

时间:2016-05-09 13:23:21

标签: sas proc-sql

即使在proc sql中我也没有使用noexex,那么为什么会出现错误。 在hive上执行相同的sql查询,它给出了正确的结果,没有语法错误。

NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
    58         disconnect from odbc;
NOTE: Statement not executed due to NOEXEC option.

"

    proc sql ;
    connect to odbc (dsn=inventory user=ashu password='');  
    create table libname.test_table as select 
    c0  format=11.,
    c1  format=$30. length=30,
    c2  format=11.,
    c3  format=11.2
    from connection to odbc
    (SELECT c0,c1,c2,c3
    FROM test_table 
    limit 10;);
    disconnect from odbc; 
    quit ;

@superfluous @Joe完成相同的日志

    1          ;*';*";*/;quit;run;
    2          OPTIONS PAGENO=MIN;
    3          %LET _CLIENTTASKLABEL='Program';
    4          %LET _CLIENTPROJECTPATH='C:\Users\goibibp-sas-admin\Desktop\In_Goibibo Reports\ingoibibo_inclusion.egp';
    5          %LET _CLIENTPROJECTNAME='ingoibibo_inclusion.egp';
    6          %LET _SASPROGRAMFILE=;
    7          
    8          ODS _ALL_ CLOSE;
    9          OPTIONS DEV=ACTIVEX;
    10         GOPTIONS XPIXELS=0 YPIXELS=0;
    11         FILENAME EGSR TEMP;
    12         ODS tagsets.sasreport13(ID=EGSR) FILE=EGSR
    13             STYLE=HtmlBlue
    14             STYLESHEET=(URL="file:///C:/Program%20Files/SASHome/SASEnterpriseGuide/7.1/Styles/HtmlBlue.css")
    15             NOGTITLE
    16             NOGFOOTNOTE
    17             GPATH=&sasworklocation
    18             ENCODING=UTF8
    19             options(rolap="on")
    20         ;
    NOTE: Writing TAGSETS.SASREPORT13(EGSR) Body file: EGSR
    21         
    22         GOPTIONS ACCESSIBLE;
    23         libname inibibo '/sasdata/sasdemo1/ingoibibo';
    NOTE: Libref INIBIBO was successfully assigned as follows: 
          Engine:        V9 
          Physical Name: /sasdata/sasdemo1/ingoibibo
    24         
    25         
    26         proc sql;

        27         connect to odbc (dsn=inventory user=goibibo password=XX);
        ERROR: CLI error trying to establish connection: [unixODBC][DSI] The error message HardyHiveError could not be found in the en-US 
               locale. Check that /en-US/SimbaHiveODBCMessages.xml exists.
        NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
        28         create table inibibo.ingoibibo_inclusion as select
        29         id   format=11.,
        30         inclusionname    format=$50. length=50,
        31         displayname  format=$50. length=50,
        32         rateplan_id  format=11.,
        33         inclusion_status format=$20. length=20,
        34         rateplan_status  format=$20. length=20
        35         from connection to odbc
        36         (SELECT inc.id, inc.inclusionname, inc.displayname, ri.rateplan_id,
        37         (CASE WHEN  inc.isactive = true THEN 'Active Inclusion' WHEN  inc.isactive = false THEN 'Non Active Inclusion' END ) as
        37       ! inclusion_status,
        38         (CASE WHEN ri.inclusions_id = inc.id THEN 'With rate Plan'
        39         WHEN  ri.inclusions_id  IS NULL THEN 'Without rate Plan' END) as rateplan_status
        40         FROM goibibo_inventory.hotels_inclusions inc
        41         LEFT JOIN goibibo_inventory.hotels_rateinclusions ri ON (ri.inclusions_id = inc.id ););
        NOTE: Statement not executed due to NOEXEC option.
        42         disconnect from odbc;
        NOTE: Statement not executed due to NOEXEC option.
        43         quit ;
        NOTE: The SAS System stopped processing this step because of errors.
        NOTE: PROCEDURE SQL used (Total process time):
              real time           0.01 seconds
              cpu time            0.02 seconds


2                                                          The SAS System                                  16:29 Monday, May 9, 2016

44         /* creating index on exiting table
45         for more detail http://support.sas.com/documentation/cdl/en/sqlproc/62086/HTML/default/viewer.htm#a001395386.htm*/
46         /*proc sql;
47         create index createdon on inibibo.ingoibibo_hotel_booking(createdon);
48         quit;
49         */
50         

    51         /* remove table from LasR server if exist */
    52         %macro lasrDeletedIfExists(lib,name);
    53         %if %sysfunc(exist(&lib..&name.)) %then %do;
    54          proc datasets library=&lib. nolist;
    55          delete &name.;
    56          quit;
    57         %end;
    58         %mend;
    59         
    60         /* Load data in LasR */
    61         /* inTable : reference of datasource table (lib.table) */
    62         /* lasRTable : reference of target table in lasR server (lib.table) */
    63         /* lasrLabel : label to use for the lasr Table (users description) */
    64         %macro loadDataInLasR(inTable,lasRTable,lasrLabel);
    65          proc options option=MEMSIZE;run;
    66          data VALIBLA.&lasRTable (label=&lasrLabel);set inibibo.&inTable;run;
    67         %mend;
    68         
    69         /* Refresh metadata for the selected lasR table */
    70         %macro updateMetadataForLasrTable(lasrLibref,mdsTargetFolder,lasrTableName);
    71         proc metalib;
    72              omr (LIBURI="SASLibrary?@libref='&lasrLibref'" );
    73              /*no more used : update_rule=(delete);*/
    74              report(type=summary);
    75              folder="&mdsTargetFolder";
    76              select=("&lasrTableName");
    77         run;
    78         %put PROC METALIB returned &SYSRC.;
    79         %mend;
    80         
    81       


82         
83         /* Access the LASR library */
84         LIBNAME VALIBLA SASIOLA  TAG=HPS  PORT=11001 HOST="nmclbi01.nm.ibibo.com"
84       ! SIGNER="http://nmclbi01.nm.ibibo.com:7080/SASLASRAuthorization" ;
NOTE: Libref VALIBLA was successfully assigned as follows: 
      Engine:        SASIOLA 
      Physical Name: SAS LASR Analytic Server engine on local host, port 10011
85         
86         /* remove table from memory if loaded in lasr server
87         * Param1 : LASR libref
88         * Param2 : LASR table name
89         */
90         
91         %lasrDeletedIfExists(VALIBLA, ingoibibo_inclusion);



NOTE: Deleting VALIBLA.INGOIBIBO_INCLUSION (memtype=DATA).
NOTE: The table HPS.INGOIBIBO_INCLUSION has been removed from the SAS LASR Analytic Server.
NOTE: PROCEDURE DATASETS used (Total process time):
3                                                          The SAS System                                  16:29 Monday, May 9, 2016

      real time           0.70 seconds
      cpu time            0.03 seconds


92         
93         
94         /* Load data in LasR
95         * Param1 : local table to read
96         * Param2 : LASR table to push (write) in LASR server
97         * Param3 : Label to use for user description on the table
98         */
99         %let etls_endtime = %sysfunc(datetime(), datetime20.);
100        
101        %loadDataInLasR(ingoibibo_inclusion,ingoibibo_inclusion,Loaded on &etls_endtime.);

    SAS (r) Proprietary Software Release 9.4  TS1M3

 MEMSIZE=96745808640
                   Specifies the limit on the amount of virtual memory that can be used during a SAS session.
NOTE: PROCEDURE OPTIONS used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds



NOTE: There were 45690 observations read from the data set INIBIBO.INGOIBIBO_INCLUSION.
NOTE: The data set VALIBLA.INGOIBIBO_INCLUSION has 45690 observations and 6 variables.
NOTE: DATA statement used (Total process time):
      real time           1.58 seconds
      cpu time            0.05 seconds


102        
103        
104        /* Update metadata for the selected lasr table
105        * Param1 : LASR library libref
106        * Param2 : Target metadata server folder
107        * Param3 : LASR table name (only the table name, no libref)
108        */

    109        %updateMetadataForLasrTable(VALIBLA,/Shared Data/SAS Visual Analytics/Public/LASR,ingoibibo_inclusion);

NOTE: A total of 1 tables were analyzed for library "Visual Analytics LASR".
NOTE: Metadata for 1 tables was updated.
NOTE: Metadata for 0 tables was added.
NOTE: Metadata for 0 tables matched the data sources.
NOTE: 0 tables listed in the SELECT or EXCLUDE statement were not found in either the metadata or the data source.
NOTE: 0 other tables were not processed due to error or UPDATE_RULE.
NOTE: PROCEDURE METALIB used (Total process time):
      real time           1.96 seconds
      cpu time            0.11 seconds


    PROC METALIB returned 0
    110        
    111        
    112        GOPTIONS NOACCESSIBLE;
    113        %LET _CLIENTTASKLABEL=;
    114        %LET _CLIENTPROJECTPATH=;

4                                                          The SAS System                                  16:29 Monday, May 9, 2016

115        %LET _CLIENTPROJECTNAME=;
116        %LET _SASPROGRAMFILE=;
117        
118        ;*';*";*/;quit;run;
119        ODS _ALL_ CLOSE;
120        
121        
122        QUIT; RUN;

现在我在所有报告中都面临同样的问题。在今天之前,所有报告都在没有错误的情况下运行,但在所有报告中突然出现错误

2 个答案:

答案 0 :(得分:1)

NOEXEC在前面的步骤中发现错误时,会设置

PROC SQL。然后它不会执行任何进一步的代码行,但它会检查它们的语法。

在这种情况下,您需要进一步查看日志以查看发生了什么 - 连接尝试失败或选择查询失败。

答案 1 :(得分:0)

在proc sql查询中提到相同提及db名称的解决方案,如dbname.tablename,它将运行时出错。

proc sql ;
connect to odbc (dsn=inventory user=ashu password='');  
create table libname.test_table as select 
c0  format=11.,
c1  format=$30. length=30,
c2  format=11.,
c3  format=11.2
from connection to odbc
(SELECT c0,c1,c2,c3
FROM db_name.test_table
limit 10;);
disconnect from odbc; 
quit ;