BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
mklybor
Calcite | Level 5

figured this out, needed to re-validate the workspace server

JBailey
Barite | Level 11

I am glad you were able to sort-it-out. It gets a <airquote>complicated</airquote> sometimes. If you need help in the future, don't hesitate to contact us.

JBailey
Barite | Level 11

Hi Mklbor,

The SAS/ACCESS Interface to Vertica is ODBC-based. The ODBC driver is included with the SAS/ACCESS engine. <-- I was wrong about this. I had to install the Vertica client (basically the ODBC driver) in order to get this to work. We, SAS, don't ship the ODBC driver with the SAS/ACCESS engine.

If you have any questions, please don't hesitate to ask.

Best wishes,

Jeff

SAS/ACCESS Product Manager

Message was edited - mea culpa by: Jeff Bailey

Nidhikhetrapal
Calcite | Level 5

Can someoen please confirm  is Update/Insert/delete still not supported with SAS ODBC for Vertica ??

Is SAS/ACCESS for Verica free product or there is separate pricing for it ??

JBailey
Barite | Level 11

Hi Nidhikhetrapal,

SAS/ACCESS to Vertica provides a great deal of value - it is not free.

Keep in mind, you must have a PRIMARY KEY defined on a vertica table in order to UPDATE and DELETE using SAS/ACCESS to Vertica. You may want to review the documentation.

SAS/ACCESS(R) 9.4 for Relational Databases: Reference, Fifth Edition

Here is some code...

libname myvert vertica server=myvertica database=test user=myuser password=mypasswd;

libname odbcvert odbc prompt;

data myvert.test (dbtype=(x="integer not null, primary key(x)"));

   do x = 1 to 1000;

      y=x; z=x; output;

   end;

run;

INSERT on a non-empty table test...

63   proc sql;

63 !           /* insert using ACCESS to Vertica */

64      insert into myvert.test values (1112,1112,1112);

NOTE: 1 row was inserted into MYVERT.test.

65   quit;

NOTE: PROCEDURE SQL used (Total process time):

      real time           0.09 seconds

      cpu time            0.00 seconds

66   proc sql;

66 !           /* insert using ACCESS to ODBC */

67      insert into odbcvert.test values (1113,1113,1113);

ERROR: CLI prepare error: [Vertica][ODBC] (10280) Invalid attribute value.

SQL statement: SELECT * FROM test.

68   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.00 seconds

INSERT on a non-empty table works with ACCESS to Vertica and fails with ACCESS to ODBC.

UPDATE Test...

99   proc sql;
99 !           /* update using ACCESS to Vertica */
100     update myvert.test set y=2111 where x=1112;
NOTE: 1 row was updated in MYVERT.test.

101  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.11 seconds
      cpu time            0.04 seconds


102  proc sql;
102!           /* update using ACCESS to ODBC */
103     update odbcvert.test set y=9999 where x=1;
ERROR: CLI prepare error: [Vertica][ODBC] (10280) Invalid attribute value.
SQL statement: SELECT * FROM test.
104  quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.02 seconds
      cpu time            0.01 seconds

UPDATE works with ACCESS to Vertica and fails with ACCESS to ODBC.

DELETE Test...

105  proc sql;
105!           /* update using ACCESS to Vertica */
106     delete from myvert.test where x=1112;
NOTE: 1 row was deleted from MYVERT.test.

107  quit;
NOTE: PROCEDURE SQL used (Total process time):
      real time           0.11 seconds
      cpu time            0.01 seconds


108  proc sql;
108!           /* update using ACCESS to ODBC */
109     delete from odbcvert.test where x=1;
ERROR: CLI prepare error: [Vertica][ODBC] (10280) Invalid attribute value.
SQL statement: SELECT * FROM test.
110  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.01 seconds

DELETE works with ACCESS to Vertica and fails with ACCESS to ODBC.

Best wishes,

Jeff

Nidhikhetrapal
Calcite | Level 5

Thanks

2 quick questions

1) Whats the ball park pricing for SAS/Access to vertica

2) Can I create a table using it or just insert/update/delete on a a table . Our SAS code creates a lot of temporary tables so was wondering how that would work

JBailey
Barite | Level 11

My pleasure.

1) I don't know about pricing. You may want to contact your SAS account executive.

2) You can do INSERTs on a new/empty table with both ACCESS engines.

Nidhikhetrapal
Calcite | Level 5

Thanks but can i create a new table through SAS  ?

JBailey
Barite | Level 11

Yes

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 23 replies
  • 7481 views
  • 1 like
  • 8 in conversation