2017-10-10 9 views
0

Je reçois le message suivant et je ne trouve pas ce qui ne va pas. J'ai besoin d'aide pour revoir mon code.SSMS: Message d'erreur Oracle: expression manquante

erreur MSG:

fournisseur OLE DB "OraOLEDB.Oracle" pour le serveur lié "S" message retourné "ORA-00936: expression manquant". Msg 7321, niveau 16, état 2, ligne 1

SELECT * 
FROM OPENQUERY(S, 

'select 
d.Pay_Period_ID, 
d.Start_Date, 
d.End-Date, 
l.LABORLEV2NM "Wrk Labor Acct", 
l.LABORLEV2dsc "Wrk Cost Center", 
l.LABORLEV2NM "Home Acct", 
a.personnum ID, 
A.LASTNM, 
CASE WHEN INSTR(A.FIRSTNM,'''') > 0 THEN TRIM(SUBSTR(A.FIRSTNM,1,INSTR(A.FIRSTNM,''''))) ELSE A.FIRSTNM END firstnm, 
a.PERSONFULLNAME "EmployeeName", 
l.LABORLEV3NM "Job Desc", 
bu.EXTERNAL_KEY "BU", 
k.fte "FTE", 
''Productive'' "Type", 
p.name "PayCode", 
to_char(last_day(add_months(w.adjAPPLYDTM,-1))+1, ''MM/DD/YYYY'') "Month", 
sum(w.DURATIONSECSQTY/60/60) "Hours", 
d.hourly_rate "Fixed Hrly", 
'''' "Dollars", 
CASE WHEN SUBSTR(l.LABORLEV2NM,1,3) = ''350'' THEN ''HMC'' 
WHEN SUBSTR(l.LABORLEV2NM,1,3) = ''351'' THEN ''HHH'' 
WHEN SUBSTR(l.LABORLEV2NM,1,3) = ''352'' THEN ''KAU'' 
END AS "Facility - Worked", 
SUBSTR(l.LABORLEV2NM,4,4) "Worked Dept GL", 
'''' "EMT", 
CONCAT(''FY'',to_char(add_months(w.adjAPPLYDTM, 8), ''YY'')) "FY" 
--to_char(add_months(w.adjAPPLYDTM, 8), ''YY'') fiscal_year 


from a, w, p, l, c, bu, k, d, b 

where 
w.paycodeid = p.paycodeid 
and w.laboracctid = l.laboracctid 
and c.Job_ID = b.Job_ID 
and c.position_number = b.postion_number 
and c.WFC_EMPLOYEE_ID = w.Employeeid 
and b.payroll_id = d.payroll_id 
and b.pay 
and c.bu_id = bu.bu_id 
and c.job_id = k.job_id 
and d.llid = l.laboracctid 
and a.personnum not like ''999%'' 
and a.personnum not like ''987%'' 
and w.employeeid = a.personid 
and a.homelaborlevelnm1 in (''350'', ''351'', ''352'') 
and w.ADJAPPLYDTM >= TO_DATE(''08/01/2017'', ''MM/DD/YYYY'') 
and w.ADJAPPLYDTM < TO_DATE(''09/01/2017'', ''MM/DD/YYYY'') 
and p.name like ''CT%Earned%'' 
') AS CT_Table 
+0

Je vois 2 virgules dans votre clause from près de 'c' – sniperd

+0

Merci. J'ai ajouté la table 'bu' – cmpmd2

+0

Essayez de faire une simple déclaration de table SELECT * FROM _really__et développez jusqu'à ce que vous obteniez l'erreur. Je vois votre serveur 'S' en haut, ce serait un bon moyen de s'assurer que votre serveur lié est correctement configuré et que le problème ne se trouve pas dans la requête elle-même. – sniperd

Répondre

0

Il fonctionne maintenant. Nécessaire les guillemets autour du nom de la colonne "Mois" vs "Mois".