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

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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
  • 9339 views
  • 1 like
  • 8 in conversation