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
Je vois 2 virgules dans votre clause from près de 'c' – sniperd
Merci. J'ai ajouté la table 'bu' – cmpmd2
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