LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (April 2010, week 1)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 5 Apr 2010 13:09:54 -0400
Reply-To:     JKR <jayakumarreddy@GMAIL.COM>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         JKR <jayakumarreddy@GMAIL.COM>
Subject:      Creating a DBMS Table using EXECUTE statement in Pass through

Hello All i am trying to create a SQL server DBMS table within SAS and fill it with obs from SAS Dataset. I have set up the ODBC connections correctly and this is the script i run.

PROC SQL; CONNECT TO ODBC (DATABASE=BRSDATA); CREATE TABLE sql.UPDATE_OPSF_POS_2010 as SELECT * FROM sqlpass.FINAL_HOSPITAL_DATA; DISCONNECT FROM ODBC; quit;

but i could not change the datatypes in SQL server. It says i do not have the privileges. I wanted to Know if the GRANT option in EXECUTE statement might help me change the datatypes in SQL Server if i added that in the script. I also tried the Create table in Execute statement like the following but it shows an error

PROC SQL; CONNECT TO ODBC (DATABASE=BRSDATA); SELECT * FROM sqlpass.FINAL_HOSPITAL_DATA; EXECUTE(create table sql.UPDATE2_OPSF_POS_2010 (HO_NUM CHAR(6)not null, HO_EFF_BEGIN smalldatetime not null, HO_EFF_END smalldatetime not null, HO_IMP_BEGIN smalldatetime not null, HO_IMP_END smalldatetime not null,

HO_RURAL_STATUS CHAR(1) null, HO_STATE CHAR(2) null, HO_ZIP CHAR(5) null, HO_PLUS_FOUR CHAR(4) null, HO_TELEPHONE CHAR(10) null, HO_COUNTY CHAR(3) null, HO_CAH CHAR(1) null, HO_NAME VARCHAR(62) null, HO_ADDRESS VARCHAR(50) null, HO_CITY VARCHAR(30) null,

HO_BRS_LOC_ID_1 int null,

HO_BRS_LOC_ID_2 int null, HO_NPI CHAR(10)null, GEO_CBSA CHAR(5)null, WI_CBSA CHAR(5)null

PROVIDER_TYPE CHAR(2) null)) BY ODBC;

DISCONNECT FROM ODBC; quit;

Thanks in advance

It says the following in log

4961 PROC SQL; 4962 CONNECT TO ODBC (DATABASE=BRSDATA); 4963 /** CREATE TABLE sql.UPDATE_OPSF_POS_2010 as**/ 4964 SELECT * FROM sqlpass.FINAL_HOSPITAL_DATA; 4965 ** EXECUTE(grant select on sql.UPDATE_OPSF_POS_2010) by ODBC; 4966 EXECUTE(create table sql.UPDATE2_OPSF_POS_2010 (HO_NUM CHAR(6)not null, 4967 HO_EFF_BEGIN smalldatetime not null, 4968 HO_EFF_END smalldatetime not null, 4969 HO_IMP_BEGIN smalldatetime not null, 4970 HO_IMP_END smalldatetime not null, 4971 HO_RURAL_STATUS CHAR(1) null, 4972 HO_STATE CHAR(2) null, 4973 HO_ZIP CHAR(5) null, 4974 HO_PLUS_FOUR CHAR(4) null, 4975 HO_TELEPHONE CHAR(10) null, 4976 HO_COUNTY CHAR(3) null, 4977 HO_CAH CHAR(1) null, 4978 HO_NAME VARCHAR(62) null, 4979 HO_ADDRESS VARCHAR(50) null, 4980 HO_CITY VARCHAR(30) null, 4981 HO_BRS_LOC_ID_1 int null, 4982 HO_BRS_LOC_ID_2 int null, 4983 HO_NPI CHAR(10)null, 4984 GEO_CBSA CHAR(5)null, 4985 WI_CBSA CHAR(5)null 4986 'PROVIDER_TYPE' CHAR(2) null)) BY ODBC; ERROR: CLI execute error: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'PROVIDER_TYPE'. 4987 4988 DISCONNECT FROM ODBC;

What am i doing wrong?

Thanks For your help

JKR


Back to: Top of message | Previous page | Main SAS-L page