我正在开发查询 Oracle 链接服务器并返回值的存储过程。如果我复制屏幕上打印的语句并在 Oracle SQL Developer 上运行,它会正确返回图形。
但是当我将那个作为链接查询运行时,它返回错误的数字。我完全迷路了。
DECLARE @MDX NVARCHAR(MAX)
DECLARE @stmt NVARCHAR(MAX)
SET @MDX = dbo.fnCrseReviewDiversityDataStarts(117)
Set @stmt = 'SELECT * FROM OpenQuery(ORA_Link, ''' + REPLACE(@MDX, '''', '''''') + ''')'
PRINT @MDX
EXEC (@stmt)
请忽略上述 SQL 语句。我只是直接使用了以下sql,它不起作用。我发现months_between 函数在OracleServer 中不起作用。
SELECT * FROM OpenQuery(ORA_LINK, 'select t2.s_studentreference "Student reference",
to_char(t3.e_start,''YYYY'') "Start",
t1.p_dob,
''31-Aug-''||to_char(t3.e_start,''YYYY'') "StartDate",
months_between(t1.p_dob,''31-Aug-''||to_char(t3.e_start,''YYYY'')) "DifferenceMonths"
from capd_student t2,capd_person t1,capd_moduleenrolment t3
where t2.s_id(+)=t1.p_id and (t3.e_student=t1.p_id) and (t3.e_reference=to_char(1109315))
and t3.e_status = ''L'''
);