0

Even in proc sql I'm not using noexex then again why getting error. same sql query in executed on hive and it give correct result no syntax error.

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 complete log for same

    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;

Now I face same issue in all reports. before today all reports are running without error but suddenly error reflecting in all reports

Ashutosh SIngh
  • 931
  • 3
  • 13
  • 26
  • A similar question was asked in the past: https://communities.sas.com/t5/SAS-Procedures/Connect-to-Oracle-from-SAS/td-p/89876 and it was recommended that you try putting quotes around your username and password. Does that help? – Sean May 09 '16 at 13:39
  • @superfluous That would make sense if the error was after the `connect to` statement, but given it's after the actual SQL query, doesn't sound like the problem (though worth looking in the log). – Joe May 09 '16 at 19:22

2 Answers2

1

NOEXEC is set when PROC SQL sees an error in an earlier step. It will then not execute any further lines of code, but it will check their syntax.

In this case, you'll need to look further up the log to see what's happened - either the connection attempt failed, or the select query failed.

Joe
  • 62,789
  • 6
  • 49
  • 67
  • same proc sql query is giving correct result on Hive this error come only in new programs in same way I create my previous programs. – Ashutosh SIngh May 09 '16 at 18:54
  • Something happened before this note to set an error. I can't tell you what, unfortunately. Based on the location, it wasn't with the connection string itself, but with the query. Look at the line immediately before what you posted - it should be an error message. – Joe May 09 '16 at 19:21
0

Solution for same mention db name in proc sql query like dbname.tablename it will run with out error.

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 ;
Ashutosh SIngh
  • 931
  • 3
  • 13
  • 26
  • So what changed to break it? Did you have that dbname set as the default in your ODBC connection, and then remove it as the default? – Robert Penridge Aug 18 '16 at 14:17