0

我有一个试图通过 BCS 连接的 Oracle 数据库。

有一个 SQL Server 作为查看 Oracle 数据的通道。

Oracle 中表的 PK 键是 NUMBER(7)。

从 SQL Server 中选择视图时,我可以非常快速地点击一条记录。但是,当尝试通过 SPD 创建读取项目操作时,它会将 PK 默认为小数。结果,SP 在执行读取项目操作时将其转换为我在 Profiler 中找到的此调用:

exec sp_executesql N'SELECT [RECORD_CODE] , [PAGETITLE] , [PROJECT_CODE] , [CONTENT_DATA] FROM [dbo].[CONTENT_MAN_CONTENT_MAIN] WHERE [RECORD_CODE] = @RECORD_CODE',N'@RECORD_CODE decimal(5,0)',@RECORD_CODE=19258

这种转换为小数会导致对数据进行全面扫描,这意味着读取操作屏幕非常慢。

那么,为什么会有这样的问题: 1. 是否可以将外部内容类型中的数据类型更改为整数?2. 如果没有,我还有什么其他选择?

如果可以使用 BCS,我无法更改表结构并且宁愿不构建服务。

4

1 回答 1

0

我将过程更改为使用存储过程而不是直接选择,因此我现在可以更好地控制数据类型的转换。

我现在能够获得一条记录并直接从 Oracle 进行 PK。

于 2018-12-27T16:08:51.577 回答