ERROR: ORACLE prepare error: ORA-00936: missing expression
731310Oct 30 2009 — edited Nov 3 2009Hello,
I am required to run "pass-through" Oracle SQL, to extract data from tables into SAS for processing and manipulation. My code (attached) reads and writes (executes) but with zero records to test first. I cannot get past the Prepare Error.
The query is very much like other queries that seem to work, but I cannot get past this prepare error. I have no other access to individauls with adequate knowledge of PL SQL, and as a last stop hoped others in the forum could quickly spot the source of errror.
Thanks very much in advance for any assistance.
Jeff
_______________________________________
1 ;*';*";*/;quit;run;
2 OPTIONS PAGENO=MIN;
3 %LET _CLIENTTASKLABEL=%NRBQUOTE(rx_biplr_v3_2);
4 %LET _EGTASKLABEL=%NRBQUOTE(rx_biplr_v3_2);
5 %LET _CLIENTPROJECTNAME=%NRBQUOTE();
6 %LET _SASPROGRAMFILE=;
7
8 ODS _ALL_ CLOSE;
NOTE: Some of your options or statements may not be supported with the Activex or Java series of devices. Graph defaults for these
drivers may be different from other SAS/GRAPH device drivers. For further information, please contact Technical Support.
9 OPTIONS DEV=ACTIVEX;
10 FILENAME EGHTML TEMP;
NOTE: Writing HTML(EGHTML) Body file: EGHTML
11 ODS HTML(ID=EGHTML) FILE=EGHTML ENCODING='utf-8' STYLE=EGDefault
11 ! STYLESHEET=(URL="file:///C:/Program%20Files/SAS/Shared%20Files/BIClientStyles/EGDefault.css")
11 ! ATTRIBUTES=("CODEBASE"="http://www2.sas.com/codebase/graph/v91/sasgraph.exe") NOGTITLE NOGFOOTNOTE GPATH=&sasworklocation
11 ! ;
12
13 %gaccessible;
14 /********************************************************/
15 * RX_BIPLR_V3.SAS ;
16 /********************************************************/
17
18 dm 'log;clear;out;clear';
19 options linesize =120;
20 Option obs=0 NoReplace;
21
22 ****************************************************************************************;
23 *Date Programmer Reviewed By WHAT WAS DONE;
24 *----- -------------- ------------ -----------------------------------------;
25 *2005 David Boyd Program creation for test population;
26 *;
27 *02/06/2006 Ivon Jones Modified to include total population;
28 *;
29 *07/20/2006 Ivon Jones Identified data elements for exclusion;
30 * or inclusion for consolidation with ;
31 * Robin's report;
32 *;
33 *08/18/2006 Ivon Jones Updated the Specific Therapeutic Classes;
34 * 10-2009 J Shaf - modified to extract actual or potential Bipolar Dx from UBH and Medical Claims;
35 ****************************************************************************************;
36
37
38
39 *%let allclmorgn = ('M','A') ; /* all claims origin code */
40 %let begdate='01SEP2009'd;
41 %let enddate='30SEP2009'd;
42 %let q = %str(%') ;
43
44
45 data _null_ ;
46 call symput('fdos',put(intnx('month',"&begdate"d,-27,'beginning'), date9.) ) ;
47 call symput('ldos',put(intnx('month',"&enddate"d,-0,'ending'), date9.) ) ;
48 run ;
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
2 The SAS System 11:44 Friday, October 30, 2009
cpu time 0.01 seconds
49
50
51
52 **************************************************************;
53 * ??Use the data _null_ step to create a macro variable for the ;
54 * year and month based on the ldos macro variable in the data ;
55 * step above?? ;
56 **************************************************************;
57
58
59 data _null_ ;
60 if month("&ldos"d) < 10
61 then call symput('yr_mo',compress(year("&ldos"d) || '0' || month("&ldos"d) ) ) ;
62 else call symput('yr_mo',compress(year("&ldos"d) || month("&ldos"d) ) ) ;
63 run ;
NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).
61:39 61:64 62:39 62:57
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
64
65 *%put &biplr_dx;
66 %put &begdate ;
'01SEP2009'd
67 %put &enddate ;
'30SEP2009'd
68 %put &fdos ;
01JUN2007
69 %put &ldos ;
30SEP2009
70 %put &q ;
'
71
72
73 libname biplr'/home/jshafi01/projects/adhoc/biplr_dprsn/data';
NOTE: Libref BIPLR was successfully assigned as follows:
Engine: V9
Physical Name: /home/jshafi01/projects/adhoc/biplr_dprsn/data
74 libname rosdwp oracle user="&oracle_user." pass="&oracle_pass." buffsize=32767 path='rosdwp';
NOTE: Libref ROSDWP was successfully assigned as follows:
Engine: ORACLE
Physical Name: rosdwp
75
76 data work.biplr_up_v1;
77 attrib mbr_id length=$26;
78 set biplr.biplr_ubh_med_v1;
79 run;
NOTE: There were 0 observations read from the data set BIPLR.BIPLR_UBH_MED_V1.
NOTE: The data set WORK.BIPLR_UP_V1 has 0 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
3 The SAS System 11:44 Friday, October 30, 2009
cpu time 0.00 seconds
80
81 proc contents;
82 run;
NOTE: PROCEDURE CONTENTS used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
83
84 proc datasets
85 library = rosdwp nolist;
86 delete biplr_up_v1;
87 quit;
NOTE: Deleting ROSDWP.BIPLR_UP_V1 (memtype=DATA).
NOTE: PROCEDURE DATASETS used (Total process time):
real time 3.74 seconds
cpu time 0.03 seconds
88
89 proc datasets
90 library=work nolist;
91 copy out = rosdwp move;
92 select biplr_up_v1 ;
93 quit;
NOTE: Moving WORK.BIPLR_UP_V1 to ROSDWP.BIPLR_UP_V1 (memtype=DATA).
NOTE: SAS variable labels, formats, and lengths are not written to DBMS tables.
NOTE: There were 0 observations read from the data set WORK.BIPLR_UP_V1.
NOTE: The data set ROSDWP.BIPLR_UP_V1 has 0 observations and 1 variables.
NOTE: PROCEDURE DATASETS used (Total process time):
real time 0.32 seconds
cpu time 0.04 seconds
94
95
96
97 *****************************************************************************;
98
99 *execute(commit) by rosdwp
100 ******************************************************************************;
101
102
103 proc SQL noprint ;
104 connect to oracle as rosdwp (user="&oracle_user." password="&oracle_pass" buffsize=32767 path='rosdwp'
104 ! preserve_comments);
105 execute(alter session set nls_date_format = 'ddmonyyyy') by rosdwp;
106 CREATE table biplr_rx as
107 SELECT
108 mrb_id,
109 pcp_spc,
110 rx_date,
4 The SAS System 11:44 Friday, October 30, 2009
111 brand,
112 generic,
113 ahfs_cd,
114 ahfs_dsc,
115 lbl,
116 strngth,
117 unt,
118 spc_tx_cls_cd,
119 spc_tx_cls_dsc,
120 gcn,
121 rx_num,
122 rx_ingrd,
123 rx_paid,
124 rx_cnt,
125 rx_qty,
126 rx_day
127 FROM connection to rosdwp
128 (SELECT
129 mid.UNIQ_MBR_ID as mrb_id,
130 pd.PRVDR_SPCLTY_DESC as pcp_spc,
131 pcf.LAST_SRVC_DT as rx_date,
132 dd.BRAND_NAME as brand,
133 dd.GNRC_NAME as generic,
134 dd.AHFS_THRPTC_CLS_CD as ahfs_cd,
135 dd.AHFS_THRPTC_CLS_DESC as ahfs_dsc,
136 dd.LABEL_NAME as lbl,
137 dd.STRNGTH_NUM as strngth,
138 dd.STRNGTH_UNIT_DESC as unt,
139 dd.SPECF_THRPTC_CLS_CD as spc_tx_cls_cd,
140 dd.SPECF_THRPTC_CLS_DESC as spc_tx_cls_dsc,
141 dd.GCN_NUM as gcn,
142 pcf.PRSCRPTN_NUM as rx_num,
143 SUM(pcf.INGRDNT_AMT) as rx_ingrd,
144 SUM(pcf.PD_AMT) as rx_paid,
145 SUM(pcf.UNIT_SRVC_CNT) as rx_cnt,
146 SUM(pcf.DSPNSD_QTY) as rx_qty,
147 SUM(pcf.DAY_SUPLY_CNT) as rx_day
148 FROM
149 PHRMCY_CLM_FACT pcf,
150 MBR_ID_DMNSN mid,
151 DRUG_DMNSN dd,
152 PRVDR_DMNSN pd,
153 biplr_up_v1
154 WHERE
155 (
156 (biplr_up_v1.mbr_id = MBR_ID_DMNSN.UNIQ_MBR_ID) And
157 (PHRMCY_CLM_FACT.FINL_CLM_KEY = PHRMCY_FINL_CLM_DMNSN.FINL_CLM_KEY) AND
158 (PHRMCY_CLM_FACT.MBR_KEY = MBR_ID_DMNSN.MBR_KEY) And
159 (PHRMCY_CLM_FACT.BNFT_KEY = MBR_BNFT_DMNSN.BNFT_KEY) And
160 (PHRMCY_CLM_FACT.DRUG_KEY = DRUG_DMNSN.DRUG_KEY) And
161 (PHRMCY_FINL_CLM_DMNSN.CLM_ORGN_CD IN ('M','A')) AND
162 (PHRMCY_CLM_FACT.LAST_SRVC_DT BETWEEN between &q.&fdos.&q and &q.&ldos.&q)
163 )
164 Group By
165 mid.UNIQ_MBR_ID ,
166 pd.PRVDR_SPCLTY_DESC ,
167 pcf.LAST_SRVC_DT ,
168 dd.BRAND_NAME ,
5 The SAS System 11:44 Friday, October 30, 2009
169 dd.GNRC_NAME ,
170 dd.AHFS_THRPTC_CLS_CD ,
171 dd.AHFS_THRPTC_CLS_DESC ,
172 dd.LABEL_NAME ,
173 dd.STRNGTH_NUM ,
174 dd.STRNGTH_UNIT_DESC ,
175 dd.SPECF_THRPTC_CLS_CD ,
176 dd.SPECF_THRPTC_CLS_DESC ,
177 dd.GCN_NUM ,
178 pcf.PRSCRPTN_NUM
179 );
ERROR: ORACLE prepare error: ORA-00936: missing expression. SQL statement: SELECT mid.UNIQ_MBR_ID as mrb_id,
pd.PRVDR_SPCLTY_DESC as pcp_spc, pcf.LAST_SRVC_DT as rx_date, dd.BRAND_NAME as brand, dd.GNRC_NAME as generic,
dd.AHFS_THRPTC_CLS_CD as ahfs_cd, dd.AHFS_THRPTC_CLS_DESC as ahfs_dsc, dd.LABEL_NAME as lbl, dd.STRNGTH_NUM as
strngth, dd.STRNGTH_UNIT_DESC as unt, dd.SPECF_THRPTC_CLS_CD as spc_tx_cls_cd, dd.SPECF_THRPTC_CLS_DESC as
spc_tx_cls_dsc, dd.GCN_NUM as gcn, pcf.PRSCRPTN_NUM as rx_num, SUM(pcf.INGRDNT_AMT) as rx_ingrd, SUM(pcf.PD_AMT)
as rx_paid, SUM(pcf.UNIT_SRVC_CNT) as rx_cnt, SUM(pcf.DSPNSD_QTY) as rx_qty, SUM(pcf.DAY_SUPLY_CNT) as rx_day
FROM PHRMCY_CLM_FACT pcf, MBR_ID_DMNSN mid, DRUG_DMNSN dd, PRVDR_DMNSN pd, biplr_up_v1 WHERE (
(biplr_up_v1.mbr_id = MBR_ID_DMNSN.UNIQ_MBR_ID) And (PHRMCY_CLM_FACT.FINL_CLM_KEY =
PHRMCY_FINL_CLM_DMNSN.FINL_CLM_KEY) AND (PHRMCY_CLM_FACT.MBR_KEY = MBR_ID_DMNSN.MBR_KEY) And
(PHRMCY_CLM_FACT.BNFT_KEY = MBR_BNFT_DMNSN.BNFT_KEY) And (PHRMCY_CLM_FACT.DRUG_KEY = DRUG_DMNSN.DRUG_KEY) And
(PHRMCY_FINL_CLM_DMNSN.CLM_ORGN_CD IN ('M','A')) AND (PHRMCY_CLM_FACT.LAST_SRVC_DT BETWEEN between '01JUN2007'
and '30SEP2009') ) Group By mid.UNIQ_MBR_ID , pd.PRVDR_SPCLTY_DESC , pcf.LAST_SRVC_DT , dd.BRAND_NAME ,
dd.GNRC_NAME , dd.AHFS_THRPTC_CLS_CD , dd.AHFS_THRPTC_CLS_DESC , dd.LABEL_NAME , dd.STRNGTH_NUM ,
dd.STRNGTH_UNIT_DESC , dd.SPECF_THRPTC_CLS_CD , dd.SPECF_THRPTC_CLS_DESC , dd.GCN_NUM , pcf.PRSCRPTN_NUM.
NOTE: PROC SQL set option NOEXEC and will continue to check the syntax of statements.
180 execute (drop table biplr_up_v1) by rosdwp;
NOTE: Statement not executed due to NOEXEC option.
181 disconnect from rosdwp;
NOTE: Statement not executed due to NOEXEC option.
182 quit;
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE SQL used (Total process time):
real time 0.14 seconds
cpu time 0.03 seconds
183
184