从 SQL 服务器对 Oracle 数据库执行存储过程时出现问题

Issue with executing stored procedure against Oracle database from SQL Server

我有以下代码,它针对 Oracle 数据库运行开放式查询。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[DHLDeliveries]
AS
BEGIN
    SET NOCOUNT ON;

    SELECT * 
    INTO #DHLDeliveries
    FROM openquery([MaginusOMS],
            'Select
                 TO_DATE(TO_CHAR(TO_DATE(''19700101'',''yyyymmdd'') + + (FLOOR(ph.change_date/24/60/60)))) as date1,
                 pro.tariff_code as ItemHScode,
                 ''1000001'' AS ProcedureCode,
                pro.long_description_1 as ItemDescription,
                ph.weight + 0.2 as GrossWeight,
                ph.weight as NetWeight,
                Si.net_price as ItemUnitPrice,
                pro.product_code as ItemSKU,
                si.despatched_qty as ItemQuantity
            from 
                despatch_header dc
                left join additional_charge ac on dc.despatch_num = ac.despatch_num
                left join sales_header sh on ac.sales_document_num = sh.sales_document_num and ac.order_type = sh.order_type
                inner join sales_item si on sh.sales_document_num = si.sales_document_num
                left join package_header ph on dc.despatch_num = ph.despatch_num
                left join product pro on si.product_code = pro.product_code
            where ph.carrier_code in (''DHLGBL'',''DHLPKT'') and ph.change_date =''07-NOV-2020''
      ');
      
      SELECT * 
      FROM #DHLDeliveries

      DROP TABLE #DHLDeliveries
END

但是当我执行它时,我得到这个错误...

OLE DB provider "OraOLEDB.Oracle" for linked server "MaginusOMS" returned message
ORA-01722: invalid number". OLE DB provider "OraOLEDB.Oracle" for linked server "MaginusOMS" returned message
"ORA-01722: invalid number".

Msg 7320, Level 16, State 2, Procedure dbo.DHLDeliveries, Line 16 [Batch Start Line 2]
Cannot execute the query

感谢任何帮助。

错误是由于在查询中使用不正确的语法导致类型不匹配。